@@ -147,11 +147,45 @@ BUILD_ASSERT(sizeof(struct usb_dwc2_reg) == 0x0D00);
147
147
148
148
/* AHB configuration register */
149
149
#define USB_DWC2_GAHBCFG 0x0008UL
150
+ #define USB_DWC2_GAHBCFG_LOA_EOP_WORD_POS 27UL
151
+ #define USB_DWC2_GAHBCFG_LOA_EOP_WORD_MASK (0x3UL << USB_DWC2_GAHBCFG_LOA_EOP_WORD_POS)
152
+ #define USB_DWC2_GAHBCFG_LOA_EOP_WORD_ONE 1
153
+ #define USB_DWC2_GAHBCFG_LOA_EOP_WORD_TWO 2
154
+ #define USB_DWC2_GAHBCFG_LOA_EOP_BYTE_POS 25UL
155
+ #define USB_DWC2_GAHBCFG_LOA_EOP_BYTE_MASK (0x3UL << USB_DWC2_GAHBCFG_LOA_EOP_BYTE_POS)
156
+ #define USB_DWC2_GAHBCFG_LOA_EOP_BYTE_ONE 1
157
+ #define USB_DWC2_GAHBCFG_LOA_EOP_BYTE_TWO 2
158
+ #define USB_DWC2_GAHBCFG_INVDESCENDIANESS_POS 24UL
159
+ #define USB_DWC2_GAHBCFG_INVDESCENDIANESS BIT(USB_DWC2_GAHBCFG_INVDESCENDIANESS_POS)
160
+ #define USB_DWC2_GAHBCFG_AHBSINGLE_POS 23UL
161
+ #define USB_DWC2_GAHBCFG_AHBSINGLE BIT(USB_DWC2_GAHBCFG_AHBSINGLE_POS)
162
+ #define USB_DWC2_GAHBCFG_NOTIALLDMAWRIT_POS 22UL
163
+ #define USB_DWC2_GAHBCFG_NOTIALLDMAWRIT BIT(USB_DWC2_GAHBCFG_NOTIALLDMAWRIT_POS)
164
+ #define USB_DWC2_GAHBCFG_REMMEMSUPP_POS 21UL
165
+ #define USB_DWC2_GAHBCFG_REMMEMSUPP BIT(USB_DWC2_GAHBCFG_REMMEMSUPP_POS)
166
+ #define USB_DWC2_GAHBCFG_PTXFEMPLVL_POS 8UL
167
+ #define USB_DWC2_GAHBCFG_PTXFEMPLVL BIT(USB_DWC2_GAHBCFG_PTXFEMPLVL_POS)
168
+ #define USB_DWC2_GAHBCFG_NPTXFEMPLVL_POS 7UL
169
+ #define USB_DWC2_GAHBCFG_NPTXFEMPLVL BIT(USB_DWC2_GAHBCFG_NPTXFEMPLVL_POS)
150
170
#define USB_DWC2_GAHBCFG_DMAEN_POS 5UL
151
171
#define USB_DWC2_GAHBCFG_DMAEN BIT(USB_DWC2_GAHBCFG_DMAEN_POS)
172
+ #define USB_DWC2_GAHBCFG_HBSTLEN_POS 1UL
173
+ #define USB_DWC2_GAHBCFG_HBSTLEN_MASK (0xFUL << USB_DWC2_GAHBCFG_HBSTLEN_POS)
174
+ #define USB_DWC2_GAHBCFG_HBSTLEN_SINGLE 0
175
+ #define USB_DWC2_GAHBCFG_HBSTLEN_INCR 1
176
+ #define USB_DWC2_GAHBCFG_HBSTLEN_INCR4 3
177
+ #define USB_DWC2_GAHBCFG_HBSTLEN_INCR8 5
178
+ #define USB_DWC2_GAHBCFG_HBSTLEN_INCR16 7
152
179
#define USB_DWC2_GAHBCFG_GLBINTRMASK_POS 0UL
153
180
#define USB_DWC2_GAHBCFG_GLBINTRMASK BIT(USB_DWC2_GAHBCFG_GLBINTRMASK_POS)
154
181
182
+ USB_DWC2_SET_FIELD_DEFINE (gahbcfg_loa_eop_word , GAHBCFG_LOA_EOP_WORD )
183
+ USB_DWC2_SET_FIELD_DEFINE (gahbcfg_loa_eop_byte , GAHBCFG_LOA_EOP_BYTE )
184
+ USB_DWC2_SET_FIELD_DEFINE (gahbcfg_hbstlen , GAHBCFG_HBSTLEN )
185
+ USB_DWC2_GET_FIELD_DEFINE (gahbcfg_loa_eop_word , GAHBCFG_LOA_EOP_WORD )
186
+ USB_DWC2_GET_FIELD_DEFINE (gahbcfg_loa_eop_byte , GAHBCFG_LOA_EOP_BYTE )
187
+ USB_DWC2_GET_FIELD_DEFINE (gahbcfg_hbstlen , GAHBCFG_HBSTLEN )
188
+
155
189
/* USB configuration register */
156
190
#define USB_DWC2_GUSBCFG 0x000CUL
157
191
#define USB_DWC2_GUSBCFG_FORCEDEVMODE_POS 30UL
@@ -411,6 +445,18 @@ USB_DWC2_GET_FIELD_DEFINE(ghwcfg4_numctleps, GHWCFG4_NUMCTLEPS)
411
445
USB_DWC2_GET_FIELD_DEFINE (ghwcfg4_phydatawidth , GHWCFG4_PHYDATAWIDTH )
412
446
USB_DWC2_GET_FIELD_DEFINE (ghwcfg4_numdevperioeps , GHWCFG4_NUMDEVPERIOEPS )
413
447
448
+ /* GDFIFOCFG register */
449
+ #define USB_DWC2_GDFIFOCFG 0x005CUL
450
+ #define USB_DWC2_GDFIFOCFG_EPINFOBASEADDR_POS 16UL
451
+ #define USB_DWC2_GDFIFOCFG_EPINFOBASEADDR_MASK (0xFFFFUL << USB_DWC2_GDFIFOCFG_EPINFOBASEADDR_POS)
452
+ #define USB_DWC2_GDFIFOCFG_GDFIFOCFG_POS 0UL
453
+ #define USB_DWC2_GDFIFOCFG_GDFIFOCFG_MASK (0xFFFFUL << USB_DWC2_GDFIFOCFG_GDFIFOCFG_POS)
454
+
455
+ USB_DWC2_GET_FIELD_DEFINE (gdfifocfg_epinfobaseaddr , GDFIFOCFG_EPINFOBASEADDR )
456
+ USB_DWC2_GET_FIELD_DEFINE (gdfifocfg_gdfifocfg , GDFIFOCFG_GDFIFOCFG )
457
+ USB_DWC2_SET_FIELD_DEFINE (gdfifocfg_epinfobaseaddr , GDFIFOCFG_EPINFOBASEADDR )
458
+ USB_DWC2_SET_FIELD_DEFINE (gdfifocfg_gdfifocfg , GDFIFOCFG_GDFIFOCFG )
459
+
414
460
/* Device IN endpoint transmit FIFO size register */
415
461
#define USB_DWC2_DIEPTXF1 0x0104UL
416
462
#define USB_DWC2_DIEPTXF_INEPNTXFDEP_POS 16UL
@@ -425,16 +471,56 @@ USB_DWC2_SET_FIELD_DEFINE(dieptxf_inepntxfstaddr, DIEPTXF_INEPNTXFSTADDR)
425
471
426
472
/* Device configuration registers */
427
473
#define USB_DWC2_DCFG 0x0800UL
474
+ #define USB_DWC2_DCFG_RESVALID_POS 26UL
475
+ #define USB_DWC2_DCFG_RESVALID_MASK (0x3FUL << USB_DWC2_DCFG_RESVALID_POS)
476
+ #define USB_DWC2_DCFG_PERSCHINTVL_POS 24UL
477
+ #define USB_DWC2_DCFG_PERSCHINTVL_MASK (0x3UL << USB_DWC2_DCFG_PERSCHINTVL_POS)
478
+ #define USB_DWC2_DCFG_PERSCHINTVL_MF25 0
479
+ #define USB_DWC2_DCFG_PERSCHINTVL_MF50 1
480
+ #define USB_DWC2_DCFG_PERSCHINTVL_MF75 2
481
+ #define USB_DWC2_DCFG_PERSCHINTVL_RESERVED 3
482
+ #define USB_DWC2_DCFG_DESCDMA_POS 23UL
483
+ #define USB_DWC2_DCFG_DESCDMA BIT(USB_DWC2_DCFG_DESCDMA_POS)
484
+ #define USB_DWC2_DCFG_EPMISCNT_POS 18UL
485
+ #define USB_DWC2_DCFG_EPMISCNT_MASK (0x1FUL << USB_DWC2_DCFG_EPMISCNT_POS)
486
+ #define USB_DWC2_DCFG_IPGISOCSUPT_POS 17UL
487
+ #define USB_DWC2_DCFG_IPGISOCSUPT BIT(USB_DWC2_DCFG_IPGISOCSUPT_POS)
488
+ #define USB_DWC2_DCFG_ERRATICINTMSK_POS 15UL
489
+ #define USB_DWC2_DCFG_ERRATICINTMSK BIT(USB_DWC2_DCFG_ERRATICINTMSK_POS)
490
+ #define USB_DWC2_DCFG_XCVRDLY_POS 14UL
491
+ #define USB_DWC2_DCFG_XCVRDLY BIT(USB_DWC2_DCFG_XCVRDLY_POS)
492
+ #define USB_DWC2_DCFG_ENDEVOUTNAK_POS 13UL
493
+ #define USB_DWC2_DCFG_ENDEVOUTNAK BIT(USB_DWC2_DCFG_ENDEVOUTNAK_POS)
494
+ #define USB_DWC2_DCFG_PERFRINT_POS 11UL
495
+ #define USB_DWC2_DCFG_PERFRINT_MASK (0x3UL << USB_DWC2_DCFG_PERFRINT_POS)
496
+ #define USB_DWC2_DCFG_PERFRINT_EOPF80 0
497
+ #define USB_DWC2_DCFG_PERFRINT_EOPF85 1
498
+ #define USB_DWC2_DCFG_PERFRINT_EOPF90 2
499
+ #define USB_DWC2_DCFG_PERFRINT_EOPF95 3
428
500
#define USB_DWC2_DCFG_DEVADDR_POS 4UL
429
501
#define USB_DWC2_DCFG_DEVADDR_MASK (0x7FUL << USB_DWC2_DCFG_DEVADDR_POS)
502
+ #define USB_DWC2_DCFG_ENA32KHZSUSP_POS 3UL
503
+ #define USB_DWC2_DCFG_ENA32KHZSUSP BIT(USB_DWC2_DCFG_ENA32KHZSUSP_POS)
504
+ #define USB_DWC2_DCFG_NZSTSOUTHSHK_POS 2UL
505
+ #define USB_DWC2_DCFG_NZSTSOUTHSHK BIT(USB_DWC2_DCFG_NZSTSOUTHSHK_POS)
430
506
#define USB_DWC2_DCFG_DEVSPD_POS 0UL
431
507
#define USB_DWC2_DCFG_DEVSPD_MASK (0x03UL << USB_DWC2_DCFG_DEVSPD_POS)
432
508
#define USB_DWC2_DCFG_DEVSPD_USBHS20 0
433
509
#define USB_DWC2_DCFG_DEVSPD_USBFS20 1
434
510
#define USB_DWC2_DCFG_DEVSPD_USBLS116 2
435
511
#define USB_DWC2_DCFG_DEVSPD_USBFS1148 3
436
512
513
+ USB_DWC2_SET_FIELD_DEFINE (dcfg_resvalid , DCFG_RESVALID )
514
+ USB_DWC2_SET_FIELD_DEFINE (dcfg_perschintvl , DCFG_PERSCHINTVL )
515
+ USB_DWC2_SET_FIELD_DEFINE (dcfg_epmiscnt , DCFG_EPMISCNT )
516
+ USB_DWC2_SET_FIELD_DEFINE (dcfg_perfrint , DCFG_PERFRINT )
437
517
USB_DWC2_SET_FIELD_DEFINE (dcfg_devaddr , DCFG_DEVADDR )
518
+ USB_DWC2_SET_FIELD_DEFINE (dcfg_devspd , DCFG_DEVSPD )
519
+ USB_DWC2_GET_FIELD_DEFINE (dcfg_resvalid , DCFG_RESVALID )
520
+ USB_DWC2_GET_FIELD_DEFINE (dcfg_perschintvl , DCFG_PERSCHINTVL )
521
+ USB_DWC2_GET_FIELD_DEFINE (dcfg_epmiscnt , DCFG_EPMISCNT )
522
+ USB_DWC2_GET_FIELD_DEFINE (dcfg_perfrint , DCFG_PERFRINT )
523
+ USB_DWC2_GET_FIELD_DEFINE (dcfg_devaddr , DCFG_DEVADDR )
438
524
USB_DWC2_GET_FIELD_DEFINE (dcfg_devspd , DCFG_DEVSPD )
439
525
440
526
/* Device control register */
@@ -494,6 +580,34 @@ USB_DWC2_GET_FIELD_DEFINE(dsts_enumspd, DSTS_ENUMSPD)
494
580
#define USB_DWC2_DAINT_OUTEPINT (ep_num ) BIT(16UL + ep_num)
495
581
#define USB_DWC2_DAINT_INEPINT (ep_num ) BIT(ep_num)
496
582
583
+ /* Device threshold control register */
584
+ #define USB_DWC2_DTHRCTL 0x0830UL
585
+ #define USB_DWC2_DTHRCTL_ARBPRKEN_POS 27UL
586
+ #define USB_DWC2_DTHRCTL_ARBPRKEN BIT(USB_DWC2_DTHRCTL_ARBPRKEN_POS)
587
+ #define USB_DWC2_DTHRCTL_RXTHRLEN_POS 17UL
588
+ #define USB_DWC2_DTHRCTL_RXTHRLEN_MASK (0x1FFUL << USB_DWC2_DTHRCTL_RXTHRLEN_POS)
589
+ #define USB_DWC2_DTHRCTL_RXTHREN_POS 16UL
590
+ #define USB_DWC2_DTHRCTL_RXTHREN BIT(USB_DWC2_DTHRCTL_RXTHREN_POS)
591
+ #define USB_DWC2_DTHRCTL_AHBTHRRATIO_POS 11UL
592
+ #define USB_DWC2_DTHRCTL_AHBTHRRATIO_MASK (0x3UL << USB_DWC2_DTHRCTL_AHBTHRRATIO_POS)
593
+ #define USB_DWC2_DTHRCTL_AHBTHRRATIO_THRESZERO 0
594
+ #define USB_DWC2_DTHRCTL_AHBTHRRATIO_THRESONE 1
595
+ #define USB_DWC2_DTHRCTL_AHBTHRRATIO_THRESTWO 2
596
+ #define USB_DWC2_DTHRCTL_AHBTHRRATIO_THRESTHREE 3
597
+ #define USB_DWC2_DTHRCTL_TXTHRLEN_POS 2UL
598
+ #define USB_DWC2_DTHRCTL_TXTHRLEN_MASK (0x1FFUL << USB_DWC2_DTHRCTL_TXTHRLEN_POS)
599
+ #define USB_DWC2_DTHRCTL_ISOTHREN_POS 1UL
600
+ #define USB_DWC2_DTHRCTL_ISOTHREN BIT(USB_DWC2_DTHRCTL_ISOTHREN_POS)
601
+ #define USB_DWC2_DTHRCTL_NONISOTHREN_POS 0UL
602
+ #define USB_DWC2_DTHRCTL_NONISOTHREN BIT(USB_DWC2_DTHRCTL_NONISOTHREN_POS)
603
+
604
+ USB_DWC2_GET_FIELD_DEFINE (dthrctl_rxthrlen , DTHRCTL_RXTHRLEN )
605
+ USB_DWC2_GET_FIELD_DEFINE (dthrctl_ahbthrratio , DTHRCTL_AHBTHRRATIO )
606
+ USB_DWC2_GET_FIELD_DEFINE (dthrctl_txthrlen , DTHRCTL_TXTHRLEN )
607
+ USB_DWC2_SET_FIELD_DEFINE (dthrctl_rxthrlen , DTHRCTL_RXTHRLEN )
608
+ USB_DWC2_SET_FIELD_DEFINE (dthrctl_ahbthrratio , DTHRCTL_AHBTHRRATIO )
609
+ USB_DWC2_SET_FIELD_DEFINE (dthrctl_txthrlen , DTHRCTL_TXTHRLEN )
610
+
497
611
/*
498
612
* Device IN/OUT endpoint control register
499
613
* IN endpoint offsets 0x0900 + (0x20 * n), n = 0 .. x,
@@ -648,6 +762,8 @@ USB_DWC2_GET_FIELD_DEFINE(dieptsiz0_xfersize, DEPTSIZ0_XFERSIZE)
648
762
649
763
USB_DWC2_GET_FIELD_DEFINE (deptsizn_pktcnt , DEPTSIZN_PKTCNT )
650
764
USB_DWC2_GET_FIELD_DEFINE (deptsizn_xfersize , DEPTSIZN_XFERSIZE )
765
+ USB_DWC2_SET_FIELD_DEFINE (deptsizn_pktcnt , DEPTSIZN_PKTCNT )
766
+ USB_DWC2_SET_FIELD_DEFINE (deptsizn_xfersize , DEPTSIZN_XFERSIZE )
651
767
652
768
/*
653
769
* Device IN/OUT endpoint transfer size register
0 commit comments