32
32
#define USE_SOF 0
33
33
34
34
#if CFG_TUD_ENABLED && (CFG_TUSB_MCU == OPT_MCU_RX63X || CFG_TUSB_MCU == OPT_MCU_RX65X || CFG_TUSB_MCU == OPT_MCU_RX72N || \
35
- CFG_TUSB_MCU == OPT_MCU_RAXXX )
35
+ CFG_TUSB_MCU == OPT_MCU_RAXXX )
36
36
37
37
#include "device/dcd.h"
38
38
#include "link_type.h"
@@ -245,7 +245,7 @@ static bool pipe0_xfer_in(void)
245
245
}
246
246
}
247
247
if (len < mps )
248
- LINK_REG -> CFIFOCTR = USB_FIFOCTR_BVAL ;
248
+ LINK_REG -> CFIFOCTR = LINK_REG_CFIFOCTR_BVAL_Msk ;
249
249
pipe -> remaining = rem - len ;
250
250
return false;
251
251
}
@@ -268,7 +268,7 @@ static bool pipe0_xfer_out(void)
268
268
}
269
269
}
270
270
if (len < mps )
271
- LINK_REG -> CFIFOCTR = USB_FIFOCTR_BCLR ;
271
+ LINK_REG -> CFIFOCTR = LINK_REG_CFIFOCTR_BCLR_Msk ;
272
272
pipe -> remaining = rem - len ;
273
273
if ((len < mps ) || (rem == len )) {
274
274
pipe -> buf = NULL ;
@@ -287,7 +287,7 @@ static bool pipe_xfer_in(unsigned num)
287
287
return true;
288
288
}
289
289
290
- LINK_REG -> D0FIFOSEL = num | USB_FIFOSEL_MBW_16 | (TU_BYTE_ORDER == TU_BIG_ENDIAN ? USB_FIFOSEL_BIGEND : 0 );
290
+ LINK_REG -> D0FIFOSEL = num | LINK_REG_FIFOSEL_MBW_16BIT | (TU_BYTE_ORDER == TU_BIG_ENDIAN ? LINK_REG_FIFOSEL_BIGEND : 0 );
291
291
const unsigned mps = edpt_max_packet_size (num );
292
292
pipe_wait_for_ready (num );
293
293
const unsigned len = TU_MIN (rem , mps );
@@ -301,7 +301,7 @@ static bool pipe_xfer_in(unsigned num)
301
301
}
302
302
}
303
303
if (len < mps )
304
- LINK_REG -> D0FIFOCTR = USB_FIFOCTR_BVAL ;
304
+ LINK_REG -> D0FIFOCTR = LINK_REG_CFIFOCTR_BVAL_Msk ;
305
305
LINK_REG -> D0FIFOSEL = 0 ;
306
306
while (LINK_REG -> D0FIFOSEL_b .CURPIPE ) continue ; /* if CURPIPE bits changes, check written value */
307
307
pipe -> remaining = rem - len ;
@@ -313,7 +313,7 @@ static bool pipe_xfer_out(unsigned num)
313
313
pipe_state_t * pipe = & _dcd .pipe [num ];
314
314
const unsigned rem = pipe -> remaining ;
315
315
316
- LINK_REG -> D0FIFOSEL = num | USB_FIFOSEL_MBW_8 ;
316
+ LINK_REG -> D0FIFOSEL = num | LINK_REG_FIFOSEL_MBW_8BIT ;
317
317
const unsigned mps = edpt_max_packet_size (num );
318
318
pipe_wait_for_ready (num );
319
319
const unsigned vld = LINK_REG -> D0FIFOCTR_b .DTLN ;
@@ -328,7 +328,7 @@ static bool pipe_xfer_out(unsigned num)
328
328
}
329
329
}
330
330
if (len < mps )
331
- LINK_REG -> D0FIFOCTR = USB_FIFOCTR_BCLR ;
331
+ LINK_REG -> D0FIFOCTR = LINK_REG_CFIFOCTR_BCLR_Msk ;
332
332
LINK_REG -> D0FIFOSEL = 0 ;
333
333
while (LINK_REG -> D0FIFOSEL_b .CURPIPE ) ; /* if CURPIPE bits changes, check written value */
334
334
pipe -> remaining = rem - len ;
@@ -342,21 +342,21 @@ static bool pipe_xfer_out(unsigned num)
342
342
static void process_setup_packet (uint8_t rhport )
343
343
{
344
344
uint16_t setup_packet [4 ];
345
- if (0 == (LINK_REG -> INTSTS0 & USB_IS0_VALID )) return ;
346
- LINK_REG -> CFIFOCTR = USB_FIFOCTR_BCLR ;
345
+ if (0 == (LINK_REG -> INTSTS0 & LINK_REG_INTSTS0_VALID_Msk )) return ;
346
+ LINK_REG -> CFIFOCTR = LINK_REG_CFIFOCTR_BCLR_Msk ;
347
347
setup_packet [0 ] = tu_le16toh (LINK_REG -> USBREQ );
348
348
setup_packet [1 ] = LINK_REG -> USBVAL ;
349
349
setup_packet [2 ] = LINK_REG -> USBINDX ;
350
350
setup_packet [3 ] = LINK_REG -> USBLENG ;
351
- LINK_REG -> INTSTS0 = ~USB_IS0_VALID ;
351
+ LINK_REG -> INTSTS0 = ~(( uint16_t ) LINK_REG_INTSTS0_VALID_Msk ) ;
352
352
dcd_event_setup_received (rhport , (const uint8_t * )& setup_packet [0 ], true);
353
353
}
354
354
355
355
static void process_status_completion (uint8_t rhport )
356
356
{
357
357
uint8_t ep_addr ;
358
358
/* Check the data stage direction */
359
- if (LINK_REG -> CFIFOSEL & USB_FIFOSEL_TX ) {
359
+ if (LINK_REG -> CFIFOSEL & LINK_REG_CFIFOSEL_ISEL_WRITE ) {
360
360
/* IN transfer. */
361
361
ep_addr = tu_edpt_addr (0 , TUSB_DIR_IN );
362
362
} else {
@@ -370,12 +370,12 @@ static bool process_pipe0_xfer(int buffer_type, uint8_t ep_addr, void* buffer, u
370
370
{
371
371
/* configure fifo direction and access unit settings */
372
372
if (ep_addr ) { /* IN, 2 bytes */
373
- LINK_REG -> CFIFOSEL =
374
- USB_FIFOSEL_TX | USB_FIFOSEL_MBW_16 | (TU_BYTE_ORDER == TU_BIG_ENDIAN ? USB_FIFOSEL_BIGEND : 0 );
375
- while (!(LINK_REG -> CFIFOSEL & USB_FIFOSEL_TX )) ;
373
+ LINK_REG -> CFIFOSEL = LINK_REG_CFIFOSEL_ISEL_WRITE | LINK_REG_FIFOSEL_MBW_16BIT |
374
+ (TU_BYTE_ORDER == TU_BIG_ENDIAN ? LINK_REG_FIFOSEL_BIGEND : 0 );
375
+ while (!(LINK_REG -> CFIFOSEL & LINK_REG_CFIFOSEL_ISEL_WRITE )) ;
376
376
} else { /* OUT, a byte */
377
- LINK_REG -> CFIFOSEL = USB_FIFOSEL_MBW_8 ;
378
- while (LINK_REG -> CFIFOSEL & USB_FIFOSEL_TX ) ;
377
+ LINK_REG -> CFIFOSEL = LINK_REG_FIFOSEL_MBW_8BIT ;
378
+ while (LINK_REG -> CFIFOSEL & LINK_REG_CFIFOSEL_ISEL_WRITE ) ;
379
379
}
380
380
381
381
pipe_state_t * pipe = & _dcd .pipe [0 ];
@@ -388,11 +388,11 @@ static bool process_pipe0_xfer(int buffer_type, uint8_t ep_addr, void* buffer, u
388
388
TU_ASSERT (LINK_REG -> DCPCTR_b .BSTS && (LINK_REG -> USBREQ & 0x80 ));
389
389
pipe0_xfer_in ();
390
390
}
391
- LINK_REG -> DCPCTR = USB_PIPECTR_PID_BUF ;
391
+ LINK_REG -> DCPCTR = LINK_REG_PIPE_CTR_PID_BUF ;
392
392
} else {
393
393
/* ZLP */
394
394
pipe -> buf = NULL ;
395
- LINK_REG -> DCPCTR = USB_PIPECTR_CCPL | USB_PIPECTR_PID_BUF ;
395
+ LINK_REG -> DCPCTR = LINK_REG_DCPCTR_CCPL_Msk | LINK_REG_PIPE_CTR_PID_BUF ;
396
396
}
397
397
return true;
398
398
}
@@ -416,7 +416,7 @@ static bool process_pipe_xfer(int buffer_type, uint8_t ep_addr, void* buffer, ui
416
416
} else { /* ZLP */
417
417
LINK_REG -> D0FIFOSEL = num ;
418
418
pipe_wait_for_ready (num );
419
- LINK_REG -> D0FIFOCTR = USB_FIFOCTR_BVAL ;
419
+ LINK_REG -> D0FIFOCTR = LINK_REG_CFIFOCTR_BVAL_Msk ;
420
420
LINK_REG -> D0FIFOSEL = 0 ;
421
421
while (LINK_REG -> D0FIFOSEL_b .CURPIPE ) ; /* if CURPIPE bits changes, check written value */
422
422
}
@@ -429,11 +429,11 @@ static bool process_pipe_xfer(int buffer_type, uint8_t ep_addr, void* buffer, ui
429
429
if (pt ) {
430
430
const unsigned mps = edpt_max_packet_size (num );
431
431
volatile uint16_t * ctr = get_pipectr (num );
432
- if (* ctr & 0x3 ) * ctr = USB_PIPECTR_PID_NAK ;
432
+ if (* ctr & 0x3 ) * ctr = LINK_REG_PIPE_CTR_PID_NAK ;
433
433
pt -> TRE = TU_BIT (8 );
434
434
pt -> TRN = (total_bytes + mps - 1 ) / mps ;
435
435
pt -> TRENB = 1 ;
436
- * ctr = USB_PIPECTR_PID_BUF ;
436
+ * ctr = LINK_REG_PIPE_CTR_PID_BUF ;
437
437
}
438
438
}
439
439
// TU_LOG1("X %x %d %d\r\n", ep_addr, total_bytes, buffer_type);
@@ -487,7 +487,7 @@ static void process_bus_reset(uint8_t rhport)
487
487
{
488
488
LINK_REG -> BEMPENB = 1 ;
489
489
LINK_REG -> BRDYENB = 1 ;
490
- LINK_REG -> CFIFOCTR = USB_FIFOCTR_BCLR ;
490
+ LINK_REG -> CFIFOCTR = LINK_REG_CFIFOCTR_BCLR_Msk ;
491
491
LINK_REG -> D0FIFOSEL = 0 ;
492
492
while (LINK_REG -> D0FIFOSEL_b .CURPIPE ) ; /* if CURPIPE bits changes, check written value */
493
493
LINK_REG -> D1FIFOSEL = 0 ;
@@ -497,7 +497,7 @@ static void process_bus_reset(uint8_t rhport)
497
497
for (int i = 1 ; i <= 5 ; ++ i ) {
498
498
LINK_REG -> PIPESEL = i ;
499
499
LINK_REG -> PIPECFG = 0 ;
500
- * ctr = USB_PIPECTR_ACLRM ;
500
+ * ctr = LINK_REG_PIPE_CTR_ACLRM_Msk ;
501
501
* ctr = 0 ;
502
502
++ ctr ;
503
503
* tre = TU_BIT (8 );
@@ -506,7 +506,7 @@ static void process_bus_reset(uint8_t rhport)
506
506
for (int i = 6 ; i <= 9 ; ++ i ) {
507
507
LINK_REG -> PIPESEL = i ;
508
508
LINK_REG -> PIPECFG = 0 ;
509
- * ctr = USB_PIPECTR_ACLRM ;
509
+ * ctr = LINK_REG_PIPE_CTR_ACLRM_Msk ;
510
510
* ctr = 0 ;
511
511
++ ctr ;
512
512
}
@@ -553,8 +553,9 @@ void dcd_init(uint8_t rhport)
553
553
554
554
/* Setup default control pipe */
555
555
LINK_REG -> DCPMAXP_b .MXPS = 64 ;
556
- LINK_REG -> INTENB0 = USB_IS0_VBINT | USB_IS0_BRDY | USB_IS0_BEMP | USB_IS0_DVST | USB_IS0_CTRT |
557
- (USE_SOF ? USB_IS0_SOFR : 0 ) | USB_IS0_RESM ;
556
+ LINK_REG -> INTENB0 = LINK_REG_INTSTS0_VBINT_Msk | LINK_REG_INTSTS0_BRDY_Msk | LINK_REG_INTSTS0_BEMP_Msk |
557
+ LINK_REG_INTSTS0_DVST_Msk | LINK_REG_INTSTS0_CTRT_Msk | (USE_SOF ? LINK_REG_INTSTS0_SOFR_Msk : 0 ) |
558
+ LINK_REG_INTSTS0_RESM_Msk ;
558
559
LINK_REG -> BEMPENB = 1 ;
559
560
LINK_REG -> BRDYENB = 1 ;
560
561
@@ -633,21 +634,21 @@ bool dcd_edpt_open(uint8_t rhport, tusb_desc_endpoint_t const * ep_desc)
633
634
LINK_REG -> PIPESEL = num ;
634
635
LINK_REG -> PIPEMAXP = mps ;
635
636
volatile uint16_t * ctr = get_pipectr (num );
636
- * ctr = USB_PIPECTR_ACLRM | USB_PIPECTR_SQCLR ;
637
+ * ctr = LINK_REG_PIPE_CTR_ACLRM_Msk | LINK_REG_PIPE_CTR_SQCLR_Msk ;
637
638
* ctr = 0 ;
638
639
unsigned cfg = (dir << 4 ) | epn ;
639
640
if (xfer == TUSB_XFER_BULK ) {
640
- cfg |= (USB_PIPECFG_BULK | USB_PIPECFG_SHTNAK | USB_PIPECFG_DBLB );
641
+ cfg |= (LINK_REG_PIPECFG_TYPE_BULK | LINK_REG_PIPECFG_SHTNAK_Msk | LINK_REG_PIPECFG_DBLB_Msk );
641
642
} else if (xfer == TUSB_XFER_INTERRUPT ) {
642
- cfg |= USB_PIPECFG_INT ;
643
+ cfg |= LINK_REG_PIPECFG_TYPE_ISO ;
643
644
} else {
644
- cfg |= (USB_PIPECFG_ISO | USB_PIPECFG_DBLB );
645
+ cfg |= (LINK_REG_PIPECFG_TYPE_INT | LINK_REG_PIPECFG_DBLB_Msk );
645
646
}
646
647
LINK_REG -> PIPECFG = cfg ;
647
648
LINK_REG -> BRDYSTS = 0x1FFu ^ TU_BIT (num );
648
649
LINK_REG -> BRDYENB |= TU_BIT (num );
649
650
if (dir || (xfer != TUSB_XFER_BULK )) {
650
- * ctr = USB_PIPECTR_PID_BUF ;
651
+ * ctr = LINK_REG_PIPE_CTR_PID_BUF ;
651
652
}
652
653
// TU_LOG1("O %d %x %x\r\n", LINK_REG->PIPESEL, LINK_REG->PIPECFG, LINK_REG->PIPEMAXP);
653
654
dcd_int_enable (rhport );
@@ -709,8 +710,8 @@ void dcd_edpt_stall(uint8_t rhport, uint8_t ep_addr)
709
710
if (!ctr ) return ;
710
711
dcd_int_disable (rhport );
711
712
const uint32_t pid = * ctr & 0x3 ;
712
- * ctr = pid | USB_PIPECTR_PID_STALL ;
713
- * ctr = USB_PIPECTR_PID_STALL ;
713
+ * ctr = pid | LINK_REG_PIPE_CTR_PID_STALL ;
714
+ * ctr = LINK_REG_PIPE_CTR_PID_STALL ;
714
715
dcd_int_enable (rhport );
715
716
}
716
717
@@ -719,15 +720,15 @@ void dcd_edpt_clear_stall(uint8_t rhport, uint8_t ep_addr)
719
720
volatile uint16_t * ctr = ep_addr_to_pipectr (rhport , ep_addr );
720
721
if (!ctr ) return ;
721
722
dcd_int_disable (rhport );
722
- * ctr = USB_PIPECTR_SQCLR ;
723
+ * ctr = LINK_REG_PIPE_CTR_SQCLR_Msk ;
723
724
724
725
if (tu_edpt_dir (ep_addr )) { /* IN */
725
- * ctr = USB_PIPECTR_PID_BUF ;
726
+ * ctr = LINK_REG_PIPE_CTR_PID_BUF ;
726
727
} else {
727
728
const unsigned num = _dcd .ep [0 ][tu_edpt_number (ep_addr )];
728
729
LINK_REG -> PIPESEL = num ;
729
730
if (LINK_REG -> PIPECFG_b .TYPE != 1 ) {
730
- * ctr = USB_PIPECTR_PID_BUF ;
731
+ * ctr = LINK_REG_PIPE_CTR_PID_BUF ;
731
732
}
732
733
}
733
734
dcd_int_enable (rhport );
@@ -742,39 +743,40 @@ void dcd_int_handler(uint8_t rhport)
742
743
743
744
unsigned is0 = LINK_REG -> INTSTS0 ;
744
745
/* clear active bits except VALID (don't write 0 to already cleared bits according to the HW manual) */
745
- LINK_REG -> INTSTS0 = ~((USB_IS0_CTRT | USB_IS0_DVST | USB_IS0_SOFR | USB_IS0_RESM | USB_IS0_VBINT ) & is0 ) | USB_IS0_VALID ;
746
- if (is0 & USB_IS0_VBINT ) {
746
+ LINK_REG -> INTSTS0 = ~((LINK_REG_INTSTS0_CTRT_Msk | LINK_REG_INTSTS0_DVST_Msk | LINK_REG_INTSTS0_SOFR_Msk |
747
+ LINK_REG_INTSTS0_RESM_Msk | LINK_REG_INTSTS0_VBINT_Msk ) & is0 ) | LINK_REG_INTSTS0_VALID_Msk ;
748
+ if (is0 & LINK_REG_INTSTS0_VBINT_Msk ) {
747
749
if (LINK_REG -> INTSTS0_b .VBSTS ) {
748
750
dcd_connect (rhport );
749
751
} else {
750
752
dcd_disconnect (rhport );
751
753
}
752
754
}
753
- if (is0 & USB_IS0_RESM ) {
755
+ if (is0 & LINK_REG_INTSTS0_RESM_Msk ) {
754
756
dcd_event_bus_signal (rhport , DCD_EVENT_RESUME , true);
755
757
#if (0 == USE_SOF )
756
758
LINK_REG -> INTENB0_b .SOFE = 0 ;
757
759
#endif
758
760
}
759
- if ((is0 & USB_IS0_SOFR ) && LINK_REG -> INTENB0_b .SOFE ) {
761
+ if ((is0 & LINK_REG_INTSTS0_SOFR_Msk ) && LINK_REG -> INTENB0_b .SOFE ) {
760
762
// USBD will exit suspended mode when SOF event is received
761
763
dcd_event_bus_signal (rhport , DCD_EVENT_SOF , true);
762
764
#if (0 == USE_SOF )
763
765
LINK_REG -> INTENB0_b .SOFE = 0 ;
764
766
#endif
765
767
}
766
- if (is0 & USB_IS0_DVST ) {
767
- switch (is0 & USB_IS0_DVSQ ) {
768
- case USB_IS0_DVSQ_DEF :
768
+ if (is0 & LINK_REG_INTSTS0_DVST_Msk ) {
769
+ switch (is0 & LINK_REG_INTSTS0_DVSQ_Msk ) {
770
+ case LINK_REG_INTSTS0_DVSQ_STATE_DEF :
769
771
process_bus_reset (rhport );
770
772
break ;
771
- case USB_IS0_DVSQ_ADDR :
773
+ case LINK_REG_INTSTS0_DVSQ_STATE_ADDR :
772
774
process_set_address (rhport );
773
775
break ;
774
- case USB_IS0_DVSQ_SUSP0 :
775
- case USB_IS0_DVSQ_SUSP1 :
776
- case USB_IS0_DVSQ_SUSP2 :
777
- case USB_IS0_DVSQ_SUSP3 :
776
+ case LINK_REG_INTSTS0_DVSQ_STATE_SUSP0 :
777
+ case LINK_REG_INTSTS0_DVSQ_STATE_SUSP1 :
778
+ case LINK_REG_INTSTS0_DVSQ_STATE_SUSP2 :
779
+ case LINK_REG_INTSTS0_DVSQ_STATE_SUSP3 :
778
780
dcd_event_bus_signal (rhport , DCD_EVENT_SUSPEND , true);
779
781
#if (0 == USE_SOF )
780
782
LINK_REG -> INTENB0_b .SOFE = 1 ;
@@ -783,23 +785,23 @@ void dcd_int_handler(uint8_t rhport)
783
785
break ;
784
786
}
785
787
}
786
- if (is0 & USB_IS0_CTRT ) {
787
- if (is0 & USB_IS0_CTSQ_SETUP ) {
788
+ if (is0 & LINK_REG_INTSTS0_CTRT_Msk ) {
789
+ if (is0 & LINK_REG_INTSTS0_CTSQ_CTRL_RDATA ) {
788
790
/* A setup packet has been received. */
789
791
process_setup_packet (rhport );
790
- } else if (0 == (is0 & USB_IS0_CTSQ_MSK )) {
792
+ } else if (0 == (is0 & LINK_REG_INTSTS0_CTSQ_Msk )) {
791
793
/* A ZLP has been sent/received. */
792
794
process_status_completion (rhport );
793
795
}
794
796
}
795
- if (is0 & USB_IS0_BEMP ) {
797
+ if (is0 & LINK_REG_INTSTS0_BEMP_Msk ) {
796
798
const unsigned s = LINK_REG -> BEMPSTS ;
797
799
LINK_REG -> BEMPSTS = 0 ;
798
800
if (s & 1 ) {
799
801
process_pipe0_bemp (rhport );
800
802
}
801
803
}
802
- if (is0 & USB_IS0_BRDY ) {
804
+ if (is0 & LINK_REG_INTSTS0_BRDY_Msk ) {
803
805
const unsigned m = LINK_REG -> BRDYENB ;
804
806
unsigned s = LINK_REG -> BRDYSTS & m ;
805
807
/* clear active bits (don't write 0 to already cleared bits according to the HW manual) */
0 commit comments