|
|
@@ -9,12 +9,22 @@
|
|
|
|
|
|
#define USB_OTG_DEV ((KINETIS_MCX_TypeDef *)g_usbdev_bus[busid].reg_base)
|
|
|
|
|
|
-void USB0_FS_IRQHandler(void)
|
|
|
+#if defined(MCXC444_H_)
|
|
|
+#define USBD_IRQ USB0_IRQHandler
|
|
|
+void USB_ClockInit(void)
|
|
|
{
|
|
|
- extern void USBD_IRQHandler(uint8_t busid);
|
|
|
- USBD_IRQHandler(0);
|
|
|
+ SystemCoreClockUpdate();
|
|
|
+ CLOCK_EnableUsbfs0Clock(kCLOCK_UsbSrcIrc48M, 48000000U);
|
|
|
}
|
|
|
-
|
|
|
+#elif defined(MCXA153_H_)
|
|
|
+#define USBD_IRQ USB0_IRQHandler
|
|
|
+void USB_ClockInit(void)
|
|
|
+{
|
|
|
+ RESET_PeripheralReset(kUSB0_RST_SHIFT_RSTn);
|
|
|
+ CLOCK_EnableUsbfsClock();
|
|
|
+}
|
|
|
+#elif defined(MCXN947_CM33_CORE0_H_)
|
|
|
+#define USBD_IRQ USB0_FS_IRQHandler
|
|
|
void USB_ClockInit(void)
|
|
|
{
|
|
|
CLOCK_AttachClk(kCLK_48M_to_USB0);
|
|
|
@@ -22,13 +32,28 @@ void USB_ClockInit(void)
|
|
|
CLOCK_EnableClock(kCLOCK_Usb0Fs);
|
|
|
CLOCK_EnableUsbfsClock();
|
|
|
}
|
|
|
+#else
|
|
|
+#error "Unsupported MCU with Kinetis IP"
|
|
|
+#endif
|
|
|
+
|
|
|
+void USBD_IRQ(void)
|
|
|
+{
|
|
|
+ extern void USBD_IRQHandler(uint8_t busid);
|
|
|
+ USBD_IRQHandler(0);
|
|
|
+}
|
|
|
|
|
|
void usb_dc_low_level_init(uint8_t busid)
|
|
|
{
|
|
|
USB_ClockInit();
|
|
|
+
|
|
|
+ uint8_t irqNumber;
|
|
|
+
|
|
|
+ uint8_t usbDeviceKhciIrq[] = USB_IRQS;
|
|
|
+ irqNumber = usbDeviceKhciIrq[0];
|
|
|
+
|
|
|
/* Install isr, set priority, and enable IRQ. */
|
|
|
- NVIC_SetPriority((IRQn_Type)USB0_FS_IRQn, 3);
|
|
|
- EnableIRQ((IRQn_Type)USB0_FS_IRQn);
|
|
|
+ NVIC_SetPriority((IRQn_Type)irqNumber, 3);
|
|
|
+ EnableIRQ((IRQn_Type)irqNumber);
|
|
|
|
|
|
USB_OTG_DEV->USBTRC0 |= USB_USBTRC0_USBRESET_MASK;
|
|
|
while (USB_OTG_DEV->USBTRC0 & USB_USBTRC0_USBRESET_MASK)
|
|
|
@@ -47,5 +72,4 @@ void usb_dc_low_level_deinit(uint8_t busid)
|
|
|
|
|
|
void usbd_kinetis_delay_ms(uint8_t ms)
|
|
|
{
|
|
|
-
|
|
|
}
|