1 /* 2 * Copyright (c) 2024, sakumisu 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 #include "fsl_device_registers.h" 7 #include "fsl_power.h" 8 #include "usbh_core.h" 9 10 #if defined(CONFIG_USB_EHCI_WITH_OHCI) 11 #error "lpc does not have ehci" 12 #endif 13 usb_hc_low_level_init(struct usbh_bus * bus)14void usb_hc_low_level_init(struct usbh_bus *bus) 15 { 16 #if ((defined FSL_FEATURE_SOC_SYSMPU_COUNT) && (FSL_FEATURE_SOC_SYSMPU_COUNT)) 17 SYSMPU_Enable(SYSMPU, 0); 18 #endif /* FSL_FEATURE_SOC_SYSMPU_COUNT */ 19 20 NVIC_ClearPendingIRQ(USB0_IRQn); 21 NVIC_ClearPendingIRQ(USB0_NEEDCLK_IRQn); 22 23 POWER_DisablePD(kPDRUNCFG_PD_USB0_PHY); /*< Turn on USB0 Phy */ 24 25 RESET_PeripheralReset(kUSB0D_RST_SHIFT_RSTn); 26 RESET_PeripheralReset(kUSB0HSL_RST_SHIFT_RSTn); 27 RESET_PeripheralReset(kUSB0HMR_RST_SHIFT_RSTn); 28 29 CLOCK_EnableUsbfs0HostClock(kCLOCK_UsbfsSrcPll1, 48000000U); 30 31 NVIC_SetPriority(USB0_IRQn, 3); 32 EnableIRQ(USB0_IRQn); 33 } 34 35 usb_hc_low_level_deinit(struct usbh_bus * bus)36void usb_hc_low_level_deinit(struct usbh_bus *bus) 37 { 38 DisableIRQ(USB0_IRQn); 39 } 40 USB0_IRQHandler(void)41void USB0_IRQHandler(void) 42 { 43 extern void USBH_IRQHandler(uint8_t busid); 44 USBH_IRQHandler(0); 45 }