@@ -391,9 +391,344 @@ static inline void s3c_hsotg_create_debug(struct dwc2_hsotg *hsotg) {}
391
391
392
392
/* s3c_hsotg_delete_debug is removed as cleanup in done in dwc2_debugfs_exit */
393
393
394
+ #define dump_register (nm ) \
395
+ { \
396
+ .name = #nm, \
397
+ .offset = nm, \
398
+ }
399
+
400
+ static const struct debugfs_reg32 dwc2_regs [] = {
401
+ /*
402
+ * Accessing registers like this can trigger mode mismatch interrupt.
403
+ * However, according to dwc2 databook, the register access, in this
404
+ * case, is completed on the processor bus but is ignored by the core
405
+ * and does not affect its operation.
406
+ */
407
+ dump_register (GOTGCTL ),
408
+ dump_register (GOTGINT ),
409
+ dump_register (GAHBCFG ),
410
+ dump_register (GUSBCFG ),
411
+ dump_register (GRSTCTL ),
412
+ dump_register (GINTSTS ),
413
+ dump_register (GINTMSK ),
414
+ dump_register (GRXSTSR ),
415
+ dump_register (GRXSTSP ),
416
+ dump_register (GRXFSIZ ),
417
+ dump_register (GNPTXFSIZ ),
418
+ dump_register (GNPTXSTS ),
419
+ dump_register (GI2CCTL ),
420
+ dump_register (GPVNDCTL ),
421
+ dump_register (GGPIO ),
422
+ dump_register (GUID ),
423
+ dump_register (GSNPSID ),
424
+ dump_register (GHWCFG1 ),
425
+ dump_register (GHWCFG2 ),
426
+ dump_register (GHWCFG3 ),
427
+ dump_register (GHWCFG4 ),
428
+ dump_register (GLPMCFG ),
429
+ dump_register (GPWRDN ),
430
+ dump_register (GDFIFOCFG ),
431
+ dump_register (ADPCTL ),
432
+ dump_register (HPTXFSIZ ),
433
+ dump_register (DPTXFSIZN (1 )),
434
+ dump_register (DPTXFSIZN (2 )),
435
+ dump_register (DPTXFSIZN (3 )),
436
+ dump_register (DPTXFSIZN (4 )),
437
+ dump_register (DPTXFSIZN (5 )),
438
+ dump_register (DPTXFSIZN (6 )),
439
+ dump_register (DPTXFSIZN (7 )),
440
+ dump_register (DPTXFSIZN (8 )),
441
+ dump_register (DPTXFSIZN (9 )),
442
+ dump_register (DPTXFSIZN (10 )),
443
+ dump_register (DPTXFSIZN (11 )),
444
+ dump_register (DPTXFSIZN (12 )),
445
+ dump_register (DPTXFSIZN (13 )),
446
+ dump_register (DPTXFSIZN (14 )),
447
+ dump_register (DPTXFSIZN (15 )),
448
+ dump_register (DCFG ),
449
+ dump_register (DCTL ),
450
+ dump_register (DSTS ),
451
+ dump_register (DIEPMSK ),
452
+ dump_register (DOEPMSK ),
453
+ dump_register (DAINT ),
454
+ dump_register (DAINTMSK ),
455
+ dump_register (DTKNQR1 ),
456
+ dump_register (DTKNQR2 ),
457
+ dump_register (DTKNQR3 ),
458
+ dump_register (DTKNQR4 ),
459
+ dump_register (DVBUSDIS ),
460
+ dump_register (DVBUSPULSE ),
461
+ dump_register (DIEPCTL (0 )),
462
+ dump_register (DIEPCTL (1 )),
463
+ dump_register (DIEPCTL (2 )),
464
+ dump_register (DIEPCTL (3 )),
465
+ dump_register (DIEPCTL (4 )),
466
+ dump_register (DIEPCTL (5 )),
467
+ dump_register (DIEPCTL (6 )),
468
+ dump_register (DIEPCTL (7 )),
469
+ dump_register (DIEPCTL (8 )),
470
+ dump_register (DIEPCTL (9 )),
471
+ dump_register (DIEPCTL (10 )),
472
+ dump_register (DIEPCTL (11 )),
473
+ dump_register (DIEPCTL (12 )),
474
+ dump_register (DIEPCTL (13 )),
475
+ dump_register (DIEPCTL (14 )),
476
+ dump_register (DIEPCTL (15 )),
477
+ dump_register (DOEPCTL (0 )),
478
+ dump_register (DOEPCTL (1 )),
479
+ dump_register (DOEPCTL (2 )),
480
+ dump_register (DOEPCTL (3 )),
481
+ dump_register (DOEPCTL (4 )),
482
+ dump_register (DOEPCTL (5 )),
483
+ dump_register (DOEPCTL (6 )),
484
+ dump_register (DOEPCTL (7 )),
485
+ dump_register (DOEPCTL (8 )),
486
+ dump_register (DOEPCTL (9 )),
487
+ dump_register (DOEPCTL (10 )),
488
+ dump_register (DOEPCTL (11 )),
489
+ dump_register (DOEPCTL (12 )),
490
+ dump_register (DOEPCTL (13 )),
491
+ dump_register (DOEPCTL (14 )),
492
+ dump_register (DOEPCTL (15 )),
493
+ dump_register (DIEPINT (0 )),
494
+ dump_register (DIEPINT (1 )),
495
+ dump_register (DIEPINT (2 )),
496
+ dump_register (DIEPINT (3 )),
497
+ dump_register (DIEPINT (4 )),
498
+ dump_register (DIEPINT (5 )),
499
+ dump_register (DIEPINT (6 )),
500
+ dump_register (DIEPINT (7 )),
501
+ dump_register (DIEPINT (8 )),
502
+ dump_register (DIEPINT (9 )),
503
+ dump_register (DIEPINT (10 )),
504
+ dump_register (DIEPINT (11 )),
505
+ dump_register (DIEPINT (12 )),
506
+ dump_register (DIEPINT (13 )),
507
+ dump_register (DIEPINT (14 )),
508
+ dump_register (DIEPINT (15 )),
509
+ dump_register (DOEPINT (0 )),
510
+ dump_register (DOEPINT (1 )),
511
+ dump_register (DOEPINT (2 )),
512
+ dump_register (DOEPINT (3 )),
513
+ dump_register (DOEPINT (4 )),
514
+ dump_register (DOEPINT (5 )),
515
+ dump_register (DOEPINT (6 )),
516
+ dump_register (DOEPINT (7 )),
517
+ dump_register (DOEPINT (8 )),
518
+ dump_register (DOEPINT (9 )),
519
+ dump_register (DOEPINT (10 )),
520
+ dump_register (DOEPINT (11 )),
521
+ dump_register (DOEPINT (12 )),
522
+ dump_register (DOEPINT (13 )),
523
+ dump_register (DOEPINT (14 )),
524
+ dump_register (DOEPINT (15 )),
525
+ dump_register (DIEPTSIZ (0 )),
526
+ dump_register (DIEPTSIZ (1 )),
527
+ dump_register (DIEPTSIZ (2 )),
528
+ dump_register (DIEPTSIZ (3 )),
529
+ dump_register (DIEPTSIZ (4 )),
530
+ dump_register (DIEPTSIZ (5 )),
531
+ dump_register (DIEPTSIZ (6 )),
532
+ dump_register (DIEPTSIZ (7 )),
533
+ dump_register (DIEPTSIZ (8 )),
534
+ dump_register (DIEPTSIZ (9 )),
535
+ dump_register (DIEPTSIZ (10 )),
536
+ dump_register (DIEPTSIZ (11 )),
537
+ dump_register (DIEPTSIZ (12 )),
538
+ dump_register (DIEPTSIZ (13 )),
539
+ dump_register (DIEPTSIZ (14 )),
540
+ dump_register (DIEPTSIZ (15 )),
541
+ dump_register (DOEPTSIZ (0 )),
542
+ dump_register (DOEPTSIZ (1 )),
543
+ dump_register (DOEPTSIZ (2 )),
544
+ dump_register (DOEPTSIZ (3 )),
545
+ dump_register (DOEPTSIZ (4 )),
546
+ dump_register (DOEPTSIZ (5 )),
547
+ dump_register (DOEPTSIZ (6 )),
548
+ dump_register (DOEPTSIZ (7 )),
549
+ dump_register (DOEPTSIZ (8 )),
550
+ dump_register (DOEPTSIZ (9 )),
551
+ dump_register (DOEPTSIZ (10 )),
552
+ dump_register (DOEPTSIZ (11 )),
553
+ dump_register (DOEPTSIZ (12 )),
554
+ dump_register (DOEPTSIZ (13 )),
555
+ dump_register (DOEPTSIZ (14 )),
556
+ dump_register (DOEPTSIZ (15 )),
557
+ dump_register (DIEPDMA (0 )),
558
+ dump_register (DIEPDMA (1 )),
559
+ dump_register (DIEPDMA (2 )),
560
+ dump_register (DIEPDMA (3 )),
561
+ dump_register (DIEPDMA (4 )),
562
+ dump_register (DIEPDMA (5 )),
563
+ dump_register (DIEPDMA (6 )),
564
+ dump_register (DIEPDMA (7 )),
565
+ dump_register (DIEPDMA (8 )),
566
+ dump_register (DIEPDMA (9 )),
567
+ dump_register (DIEPDMA (10 )),
568
+ dump_register (DIEPDMA (11 )),
569
+ dump_register (DIEPDMA (12 )),
570
+ dump_register (DIEPDMA (13 )),
571
+ dump_register (DIEPDMA (14 )),
572
+ dump_register (DIEPDMA (15 )),
573
+ dump_register (DOEPDMA (0 )),
574
+ dump_register (DOEPDMA (1 )),
575
+ dump_register (DOEPDMA (2 )),
576
+ dump_register (DOEPDMA (3 )),
577
+ dump_register (DOEPDMA (4 )),
578
+ dump_register (DOEPDMA (5 )),
579
+ dump_register (DOEPDMA (6 )),
580
+ dump_register (DOEPDMA (7 )),
581
+ dump_register (DOEPDMA (8 )),
582
+ dump_register (DOEPDMA (9 )),
583
+ dump_register (DOEPDMA (10 )),
584
+ dump_register (DOEPDMA (11 )),
585
+ dump_register (DOEPDMA (12 )),
586
+ dump_register (DOEPDMA (13 )),
587
+ dump_register (DOEPDMA (14 )),
588
+ dump_register (DOEPDMA (15 )),
589
+ dump_register (DTXFSTS (0 )),
590
+ dump_register (DTXFSTS (1 )),
591
+ dump_register (DTXFSTS (2 )),
592
+ dump_register (DTXFSTS (3 )),
593
+ dump_register (DTXFSTS (4 )),
594
+ dump_register (DTXFSTS (5 )),
595
+ dump_register (DTXFSTS (6 )),
596
+ dump_register (DTXFSTS (7 )),
597
+ dump_register (DTXFSTS (8 )),
598
+ dump_register (DTXFSTS (9 )),
599
+ dump_register (DTXFSTS (10 )),
600
+ dump_register (DTXFSTS (11 )),
601
+ dump_register (DTXFSTS (12 )),
602
+ dump_register (DTXFSTS (13 )),
603
+ dump_register (DTXFSTS (14 )),
604
+ dump_register (DTXFSTS (15 )),
605
+ dump_register (PCGCTL ),
606
+ dump_register (HCFG ),
607
+ dump_register (HFIR ),
608
+ dump_register (HFNUM ),
609
+ dump_register (HPTXSTS ),
610
+ dump_register (HAINT ),
611
+ dump_register (HAINTMSK ),
612
+ dump_register (HFLBADDR ),
613
+ dump_register (HPRT0 ),
614
+ dump_register (HCCHAR (0 )),
615
+ dump_register (HCCHAR (1 )),
616
+ dump_register (HCCHAR (2 )),
617
+ dump_register (HCCHAR (3 )),
618
+ dump_register (HCCHAR (4 )),
619
+ dump_register (HCCHAR (5 )),
620
+ dump_register (HCCHAR (6 )),
621
+ dump_register (HCCHAR (7 )),
622
+ dump_register (HCCHAR (8 )),
623
+ dump_register (HCCHAR (9 )),
624
+ dump_register (HCCHAR (10 )),
625
+ dump_register (HCCHAR (11 )),
626
+ dump_register (HCCHAR (12 )),
627
+ dump_register (HCCHAR (13 )),
628
+ dump_register (HCCHAR (14 )),
629
+ dump_register (HCCHAR (15 )),
630
+ dump_register (HCSPLT (0 )),
631
+ dump_register (HCSPLT (1 )),
632
+ dump_register (HCSPLT (2 )),
633
+ dump_register (HCSPLT (3 )),
634
+ dump_register (HCSPLT (4 )),
635
+ dump_register (HCSPLT (5 )),
636
+ dump_register (HCSPLT (6 )),
637
+ dump_register (HCSPLT (7 )),
638
+ dump_register (HCSPLT (8 )),
639
+ dump_register (HCSPLT (9 )),
640
+ dump_register (HCSPLT (10 )),
641
+ dump_register (HCSPLT (11 )),
642
+ dump_register (HCSPLT (12 )),
643
+ dump_register (HCSPLT (13 )),
644
+ dump_register (HCSPLT (14 )),
645
+ dump_register (HCSPLT (15 )),
646
+ dump_register (HCINT (0 )),
647
+ dump_register (HCINT (1 )),
648
+ dump_register (HCINT (2 )),
649
+ dump_register (HCINT (3 )),
650
+ dump_register (HCINT (4 )),
651
+ dump_register (HCINT (5 )),
652
+ dump_register (HCINT (6 )),
653
+ dump_register (HCINT (7 )),
654
+ dump_register (HCINT (8 )),
655
+ dump_register (HCINT (9 )),
656
+ dump_register (HCINT (10 )),
657
+ dump_register (HCINT (11 )),
658
+ dump_register (HCINT (12 )),
659
+ dump_register (HCINT (13 )),
660
+ dump_register (HCINT (14 )),
661
+ dump_register (HCINT (15 )),
662
+ dump_register (HCINTMSK (0 )),
663
+ dump_register (HCINTMSK (1 )),
664
+ dump_register (HCINTMSK (2 )),
665
+ dump_register (HCINTMSK (3 )),
666
+ dump_register (HCINTMSK (4 )),
667
+ dump_register (HCINTMSK (5 )),
668
+ dump_register (HCINTMSK (6 )),
669
+ dump_register (HCINTMSK (7 )),
670
+ dump_register (HCINTMSK (8 )),
671
+ dump_register (HCINTMSK (9 )),
672
+ dump_register (HCINTMSK (10 )),
673
+ dump_register (HCINTMSK (11 )),
674
+ dump_register (HCINTMSK (12 )),
675
+ dump_register (HCINTMSK (13 )),
676
+ dump_register (HCINTMSK (14 )),
677
+ dump_register (HCINTMSK (15 )),
678
+ dump_register (HCTSIZ (0 )),
679
+ dump_register (HCTSIZ (1 )),
680
+ dump_register (HCTSIZ (2 )),
681
+ dump_register (HCTSIZ (3 )),
682
+ dump_register (HCTSIZ (4 )),
683
+ dump_register (HCTSIZ (5 )),
684
+ dump_register (HCTSIZ (6 )),
685
+ dump_register (HCTSIZ (7 )),
686
+ dump_register (HCTSIZ (8 )),
687
+ dump_register (HCTSIZ (9 )),
688
+ dump_register (HCTSIZ (10 )),
689
+ dump_register (HCTSIZ (11 )),
690
+ dump_register (HCTSIZ (12 )),
691
+ dump_register (HCTSIZ (13 )),
692
+ dump_register (HCTSIZ (14 )),
693
+ dump_register (HCTSIZ (15 )),
694
+ dump_register (HCDMA (0 )),
695
+ dump_register (HCDMA (1 )),
696
+ dump_register (HCDMA (2 )),
697
+ dump_register (HCDMA (3 )),
698
+ dump_register (HCDMA (4 )),
699
+ dump_register (HCDMA (5 )),
700
+ dump_register (HCDMA (6 )),
701
+ dump_register (HCDMA (7 )),
702
+ dump_register (HCDMA (8 )),
703
+ dump_register (HCDMA (9 )),
704
+ dump_register (HCDMA (10 )),
705
+ dump_register (HCDMA (11 )),
706
+ dump_register (HCDMA (12 )),
707
+ dump_register (HCDMA (13 )),
708
+ dump_register (HCDMA (14 )),
709
+ dump_register (HCDMA (15 )),
710
+ dump_register (HCDMAB (0 )),
711
+ dump_register (HCDMAB (1 )),
712
+ dump_register (HCDMAB (2 )),
713
+ dump_register (HCDMAB (3 )),
714
+ dump_register (HCDMAB (4 )),
715
+ dump_register (HCDMAB (5 )),
716
+ dump_register (HCDMAB (6 )),
717
+ dump_register (HCDMAB (7 )),
718
+ dump_register (HCDMAB (8 )),
719
+ dump_register (HCDMAB (9 )),
720
+ dump_register (HCDMAB (10 )),
721
+ dump_register (HCDMAB (11 )),
722
+ dump_register (HCDMAB (12 )),
723
+ dump_register (HCDMAB (13 )),
724
+ dump_register (HCDMAB (14 )),
725
+ dump_register (HCDMAB (15 )),
726
+ };
727
+
394
728
int dwc2_debugfs_init (struct dwc2_hsotg * hsotg )
395
729
{
396
730
int ret ;
731
+ struct dentry * file ;
397
732
398
733
hsotg -> debug_root = debugfs_create_dir (dev_name (hsotg -> dev ), NULL );
399
734
if (!hsotg -> debug_root ) {
@@ -403,6 +738,28 @@ int dwc2_debugfs_init(struct dwc2_hsotg *hsotg)
403
738
404
739
/* Add gadget debugfs nodes */
405
740
s3c_hsotg_create_debug (hsotg );
741
+
742
+ hsotg -> regset = devm_kzalloc (hsotg -> dev , sizeof (* hsotg -> regset ),
743
+ GFP_KERNEL );
744
+ if (!hsotg -> regset ) {
745
+ ret = - ENOMEM ;
746
+ goto err1 ;
747
+ }
748
+
749
+ hsotg -> regset -> regs = dwc2_regs ;
750
+ hsotg -> regset -> nregs = ARRAY_SIZE (dwc2_regs );
751
+ hsotg -> regset -> base = hsotg -> regs ;
752
+
753
+ file = debugfs_create_regset32 ("regdump" , S_IRUGO , hsotg -> debug_root ,
754
+ hsotg -> regset );
755
+ if (!file ) {
756
+ ret = - ENOMEM ;
757
+ goto err1 ;
758
+ }
759
+
760
+ return 0 ;
761
+ err1 :
762
+ debugfs_remove_recursive (hsotg -> debug_root );
406
763
err0 :
407
764
return ret ;
408
765
}
0 commit comments