18
18
19
19
#if defined(TARGET_KL25Z) | defined(TARGET_KL43Z) | defined(TARGET_KL46Z) | defined(TARGET_K20D50M) | defined(TARGET_K64F) | defined(TARGET_K22F) | defined(TARGET_TEENSY3_1)
20
20
21
+ #if defined(TARGET_KSDK2_MCUS)
22
+ #include " fsl_common.h"
23
+ #endif
21
24
#include " USBHAL.h"
22
25
23
26
USBHAL * USBHAL::instance;
@@ -65,7 +68,8 @@ typedef struct BDT {
65
68
// there are:
66
69
// * 16 bidirectionnal endpt -> 32 physical endpt
67
70
// * as there are ODD and EVEN buffer -> 32*2 bdt
68
- __attribute__ ((__aligned__(512 ))) BDT bdt[NUMBER_OF_PHYSICAL_ENDPOINTS * 2];
71
+ MBED_ALIGN (512 ) BDT bdt[NUMBER_OF_PHYSICAL_ENDPOINTS * 2]; // 512 bytes aligned!
72
+
69
73
uint8_t * endpoint_buffer[(NUMBER_OF_PHYSICAL_ENDPOINTS - 2 ) * 2 ];
70
74
uint8_t * endpoint_buffer_iso[2 *2 ];
71
75
@@ -86,7 +90,7 @@ USBHAL::USBHAL(void) {
86
90
// Disable IRQ
87
91
NVIC_DisableIRQ (USB0_IRQn);
88
92
89
- #if defined(TARGET_K64F )
93
+ #if ( defined(FSL_FEATURE_SOC_MPU_COUNT) && (FSL_FEATURE_SOC_MPU_COUNT > 0U) )
90
94
MPU->CESR =0 ;
91
95
#endif
92
96
// fill in callback array
@@ -121,18 +125,9 @@ USBHAL::USBHAL(void) {
121
125
epCallback[28 ] = &USBHAL::EP15_OUT_callback;
122
126
epCallback[29 ] = &USBHAL::EP15_IN_callback;
123
127
124
- #if defined(TARGET_KL43Z)
128
+ #if defined(TARGET_KL43Z) || defined(TARGET_K22F) || defined(TARGET_K64F)
125
129
// enable USBFS clock
126
- SIM->SCGC4 |= SIM_SCGC4_USBFS_MASK;
127
-
128
- // enable the IRC48M clock
129
- USB0->CLK_RECOVER_IRC_EN |= USB_CLK_RECOVER_IRC_EN_IRC_EN_MASK;
130
-
131
- // enable the USB clock recovery tuning
132
- USB0->CLK_RECOVER_CTRL |= USB_CLK_RECOVER_CTRL_CLOCK_RECOVER_EN_MASK;
133
-
134
- // choose usb src clock
135
- SIM->SOPT2 |= SIM_SOPT2_USBSRC_MASK;
130
+ CLOCK_EnableUsbfs0Clock (kCLOCK_UsbSrcIrc48M , 48000000U );
136
131
#else
137
132
// choose usb src as PLL
138
133
SIM->SOPT2 &= ~SIM_SOPT2_PLLFLLSEL_MASK;
@@ -148,10 +143,6 @@ USBHAL::USBHAL(void) {
148
143
NVIC_EnableIRQ (USB0_IRQn);
149
144
150
145
// USB Module Configuration
151
- // Reset USB Module
152
- USB0->USBTRC0 |= USB_USBTRC0_USBRESET_MASK;
153
- while (USB0->USBTRC0 & USB_USBTRC0_USBRESET_MASK);
154
-
155
146
// Set BDT Base Register
156
147
USB0->BDTPAGE1 = (uint8_t )((uint32_t )bdt>>8 );
157
148
USB0->BDTPAGE2 = (uint8_t )((uint32_t )bdt>>16 );
0 commit comments