Skip to content

Commit 6ead93c

Browse files
committed
DM: some usb host fixes (still not working)
1 parent b8042c4 commit 6ead93c

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

cores/arduino/USB/samd21_host.c

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -115,11 +115,12 @@ void UHD_Init(void)
115115

116116

117117
/* Load Pad Calibration */
118-
#if defined(__SAMD51__) //TODO: verify the right address
119-
pad_transn = (*((uint32_t *)(NVMCTRL_CBW4) // Non-Volatile Memory Controller
118+
#if defined(__SAMD51__)
119+
pad_transn = (*((uint32_t *)(NVMCTRL_SW0) // Non-Volatile Memory Controller
120120
#else
121121
pad_transn = (*((uint32_t *)(NVMCTRL_OTP4) // Non-Volatile Memory Controller
122122
#endif
123+
123124
+ (NVM_USB_PAD_TRANSN_POS / 32))
124125
>> (NVM_USB_PAD_TRANSN_POS % 32))
125126
& ((1 << NVM_USB_PAD_TRANSN_SIZE) - 1);
@@ -131,8 +132,8 @@ void UHD_Init(void)
131132

132133
USB->HOST.PADCAL.bit.TRANSN = pad_transn;
133134

134-
#if defined(__SAMD51__) //TODO: verify the right address
135-
pad_transp = (*((uint32_t *)(NVMCTRL_CBW4)
135+
#if defined(__SAMD51__)
136+
pad_transp = (*((uint32_t *)(NVMCTRL_SW0)
136137
#else
137138
pad_transp = (*((uint32_t *)(NVMCTRL_OTP4)
138139
#endif
@@ -147,8 +148,8 @@ void UHD_Init(void)
147148

148149
USB->HOST.PADCAL.bit.TRANSP = pad_transp;
149150

150-
#if defined(__SAMD51__) //TODO: verify the right address
151-
pad_trim = (*((uint32_t *)(NVMCTRL_CBW4)
151+
#if defined(__SAMD51__)
152+
pad_trim = (*((uint32_t *)(NVMCTRL_SW0)
152153
#else
153154
pad_trim = (*((uint32_t *)(NVMCTRL_OTP4)
154155
#endif
@@ -190,9 +191,16 @@ void UHD_Init(void)
190191
USB->HOST.CTRLB.bit.VBUSOK = 1;
191192

192193
// Configure interrupts
193-
#if defined(__SAMD51__) //TODO: verify the right interrupts
194+
#if defined(__SAMD51__)
194195
NVIC_SetPriority((IRQn_Type)USB_0_IRQn, 0UL);
196+
NVIC_SetPriority((IRQn_Type)USB_1_IRQn, 0UL);
197+
NVIC_SetPriority((IRQn_Type)USB_2_IRQn, 0UL);
198+
NVIC_SetPriority((IRQn_Type)USB_3_IRQn, 0UL);
199+
195200
NVIC_EnableIRQ((IRQn_Type)USB_0_IRQn);
201+
NVIC_EnableIRQ((IRQn_Type)USB_1_IRQn);
202+
NVIC_EnableIRQ((IRQn_Type)USB_2_IRQn);
203+
NVIC_EnableIRQ((IRQn_Type)USB_3_IRQn);
196204
#else
197205
NVIC_SetPriority((IRQn_Type)USB_IRQn, 0UL);
198206
NVIC_EnableIRQ((IRQn_Type)USB_IRQn);

variants/metro_m4/variant.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ const PinDescription g_APinDescription[]=
150150

151151
// 31..33 - USB
152152
// --------------------
153-
{ PORTB, 7, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB Host enable
153+
{ PORTB, 7, PIO_COM, PIN_ATTR_DIGITAL, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB Host enable
154154
{ PORTA, 24, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DM
155155
{ PORTA, 25, PIO_COM, PIN_ATTR_NONE, No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_NONE }, // USB/DP
156156

0 commit comments

Comments
 (0)