diff options
| author | hydevcode <[email protected]> | 2025-02-26 20:23:49 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-02-26 20:23:49 +0800 |
| commit | 6d8d8884dec0b4502fb6e2d4c464b9ab1bb94aec (patch) | |
| tree | f2f20c52ec4b5e7d5c93cb229a7f69aeeb0d1877 /components | |
| parent | 7086f4c80925583dfd654585c40f09e93b8684b5 (diff) | |
[bsp][nxp] add cherryusb config for mcxa156 (#10041)
[bsp][nxp] add cherryusb config for mcxa156 and add ci.attachconfig
Diffstat (limited to 'components')
| -rw-r--r-- | components/drivers/usb/cherryusb/port/kinetis/README.md | 2 | ||||
| -rw-r--r-- | components/drivers/usb/cherryusb/port/kinetis/usb_glue_mcx.c | 18 |
2 files changed, 15 insertions, 5 deletions
diff --git a/components/drivers/usb/cherryusb/port/kinetis/README.md b/components/drivers/usb/cherryusb/port/kinetis/README.md index f51c9a677e..b91b4608cd 100644 --- a/components/drivers/usb/cherryusb/port/kinetis/README.md +++ b/components/drivers/usb/cherryusb/port/kinetis/README.md @@ -10,7 +10,7 @@ Modify USB_NOCACHE_RAM_SECTION #define USB_NOCACHE_RAM_SECTION __attribute__((section(".NonCacheable"))) ``` -- MCXC444/MCXA153 (device only) +- MCXC444/MCXA153/MCXA156 (device only) - MCXN947 ### MM32 diff --git a/components/drivers/usb/cherryusb/port/kinetis/usb_glue_mcx.c b/components/drivers/usb/cherryusb/port/kinetis/usb_glue_mcx.c index 44607794f5..bdd03314d3 100644 --- a/components/drivers/usb/cherryusb/port/kinetis/usb_glue_mcx.c +++ b/components/drivers/usb/cherryusb/port/kinetis/usb_glue_mcx.c @@ -32,6 +32,13 @@ void USB_ClockInit(void) CLOCK_EnableClock(kCLOCK_Usb0Fs); CLOCK_EnableUsbfsClock(); } +#elif defined(MCXA156_H_) +#define USBD_IRQ USB0_IRQHandler +void USB_ClockInit(void) +{ + RESET_PeripheralReset(kUSB0_RST_SHIFT_RSTn); + CLOCK_EnableUsbfsClock(); +} #else #error "Unsupported MCU with Kinetis IP" #endif @@ -49,15 +56,14 @@ void usb_dc_low_level_init(uint8_t busid) uint8_t irqNumber; uint8_t usbDeviceKhciIrq[] = USB_IRQS; - irqNumber = usbDeviceKhciIrq[0]; + irqNumber = usbDeviceKhciIrq[0]; /* Install isr, set priority, and enable IRQ. */ 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) - ; + while (USB_OTG_DEV->USBTRC0 & USB_USBTRC0_USBRESET_MASK); USB_OTG_DEV->USBTRC0 |= USB_USBTRC0_VREGIN_STS(1); /* software must set this bit to 1 */ USB_OTG_DEV->USBCTRL = 0; @@ -67,7 +73,11 @@ void usb_dc_low_level_init(uint8_t busid) void usb_dc_low_level_deinit(uint8_t busid) { USB_OTG_DEV->CONTROL &= ~USB_CONTROL_DPPULLUPNONOTG_MASK; - DisableIRQ((IRQn_Type)USB0_FS_IRQn); + #if defined(MCXN947_CM33_CORE0_H_) + DisableIRQ((IRQn_Type)USB0_FS_IRQn); + #else + DisableIRQ((IRQn_Type)USB0_IRQn); + #endif } void usbd_kinetis_delay_ms(uint8_t ms) |
