File tree 7 files changed +806
-14
lines changed
src/portable/microchip/samd
7 files changed +806
-14
lines changed Original file line number Diff line number Diff line change 60
60
// Forward USB interrupt events to TinyUSB IRQ Handler
61
61
//--------------------------------------------------------------------+
62
62
void USB_Handler (void ) {
63
+ #if CFG_TUD_ENABLED
63
64
tud_int_handler (0 );
65
+ #endif
66
+
67
+ #if CFG_TUH_ENABLED && !(defined(CFG_TUH_MAX3421 ) && CFG_TUH_MAX3421 )
68
+ tuh_int_handler (0 );
69
+ #endif
64
70
}
65
71
66
72
//--------------------------------------------------------------------+
@@ -140,8 +146,14 @@ void board_init(void) {
140
146
gpio_set_pin_function (PIN_PA19 , PINMUX_PA19F_TCC0_WO3 );
141
147
_gclk_enable_channel (TCC0_GCLK_ID , GCLK_CLKCTRL_GEN_GCLK0_Val );
142
148
143
- #if CFG_TUH_ENABLED && defined(CFG_TUH_MAX3421 ) && CFG_TUH_MAX3421
144
- max3421_init ();
149
+ #if CFG_TUH_ENABLED
150
+ #if defined(CFG_TUH_MAX3421 ) && CFG_TUH_MAX3421
151
+ max3421_init ();
152
+ #else
153
+ // VBUS Power
154
+ gpio_set_pin_direction (PIN_PA28 , GPIO_DIRECTION_OUT );
155
+ gpio_set_pin_level (PIN_PA28 , true);
156
+ #endif
145
157
#endif
146
158
}
147
159
Original file line number Diff line number Diff line change @@ -94,6 +94,7 @@ function(family_configure_example TARGET RTOS)
94
94
family_add_tinyusb(${TARGET} OPT_MCU_SAMD21 ${RTOS} )
95
95
target_sources (${TARGET} -tinyusb PUBLIC
96
96
${TOP} /src/portable/microchip/samd/dcd_samd.c
97
+ ${TOP} /src/portable/microchip/samd/hcd_samd.c
97
98
)
98
99
target_link_libraries (${TARGET} -tinyusb PUBLIC board_${BOARD} )
99
100
Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ LDFLAGS_GCC += -specs=nosys.specs -specs=nano.specs
20
20
21
21
SRC_C += \
22
22
src/portable/microchip/samd/dcd_samd.c \
23
+ src/portable/microchip/samd/hcd_samd.c \
23
24
${SDK_DIR}/gcc/gcc/startup_samd21.c \
24
25
${SDK_DIR}/gcc/system_samd21.c \
25
26
${SDK_DIR}/hpl/gclk/hpl_gclk.c \
Original file line number Diff line number Diff line change 56
56
//--------------------------------------------------------------------+
57
57
// Forward USB interrupt events to TinyUSB IRQ Handler
58
58
//--------------------------------------------------------------------+
59
- void USB_0_Handler (void ) {
59
+ TU_ATTR_ALWAYS_INLINE inline void USB_Any_Handler (void )
60
+ {
61
+ #if CFG_TUD_ENABLED
60
62
tud_int_handler (0 );
61
- }
63
+ #endif
62
64
63
- void USB_1_Handler (void ) {
64
- tud_int_handler (0 );
65
+ #if CFG_TUH_ENABLED && !CFG_TUH_MAX3421
66
+ tuh_int_handler (0 );
67
+ #endif
65
68
}
66
69
67
- void USB_2_Handler (void ) {
68
- tud_int_handler (0 );
69
- }
70
+ void USB_0_Handler (void ) { USB_Any_Handler (); }
70
71
71
- void USB_3_Handler (void ) {
72
- tud_int_handler (0 );
73
- }
72
+ void USB_1_Handler (void ) { USB_Any_Handler (); }
73
+
74
+ void USB_2_Handler (void ) { USB_Any_Handler (); }
75
+
76
+ void USB_3_Handler (void ) { USB_Any_Handler (); }
74
77
75
78
//--------------------------------------------------------------------+
76
79
// Implementation
@@ -136,8 +139,14 @@ void board_init(void) {
136
139
gpio_set_pin_function (PIN_PA24 , PINMUX_PA24H_USB_DM );
137
140
gpio_set_pin_function (PIN_PA25 , PINMUX_PA25H_USB_DP );
138
141
139
- #if CFG_TUH_ENABLED && CFG_TUH_MAX3421
140
- max3421_init ();
142
+ #if CFG_TUH_ENABLED
143
+ #if defined(CFG_TUH_MAX3421 ) && CFG_TUH_MAX3421
144
+ max3421_init ();
145
+ #else
146
+ // VBUS Power
147
+ gpio_set_pin_direction (PIN_PA28 , GPIO_DIRECTION_OUT );
148
+ gpio_set_pin_level (PIN_PA28 , true);
149
+ #endif
141
150
#endif
142
151
}
143
152
Original file line number Diff line number Diff line change @@ -93,6 +93,7 @@ function(family_configure_example TARGET RTOS)
93
93
family_add_tinyusb(${TARGET} OPT_MCU_SAMD51 ${RTOS} )
94
94
target_sources (${TARGET} -tinyusb PUBLIC
95
95
${TOP} /src/portable/microchip/samd/dcd_samd.c
96
+ ${TOP} /src/portable/microchip/samd/hcd_samd.c
96
97
)
97
98
target_link_libraries (${TARGET} -tinyusb PUBLIC board_${BOARD} )
98
99
Original file line number Diff line number Diff line change @@ -16,6 +16,7 @@ LDFLAGS_GCC += -specs=nosys.specs -specs=nano.specs
16
16
17
17
SRC_C += \
18
18
src/portable/microchip/samd/dcd_samd.c \
19
+ src/portable/microchip/samd/hcd_samd.c \
19
20
hw/mcu/microchip/samd51/gcc/gcc/startup_samd51.c \
20
21
hw/mcu/microchip/samd51/gcc/system_samd51.c \
21
22
hw/mcu/microchip/samd51/hpl/gclk/hpl_gclk.c \
You can’t perform that action at this time.
0 commit comments