zephyr/drivers/usb/device
Daniel DeGrasse 19829ace7d drivers: usb: usb_dc_kinetis: reconfigure USB endpoint 0 after reset
Per Kinetis USB reference manual, when USB reset interrupt is asserted,
the driver should configure and enable the default USB control endpoint
0. Generally, when the reset interrupt is asserted, endpoint 0 is
already configured so the driver only needs to reenable it.

However, when usb_dc_detach is called and the module is reset, all endpoint
configuration will be reset. Thus, we need to manually configure USB
endpoint 0 when a USB reset interrupt is received, or the USB driver
will not function correctly after usb_dc_detach has been called.

Additionally, do not zero out all BDT entries in the usb_dc_reset
function. BDT entries are zeroed when an endpoint is configured, and
clearing BDT buffer pointers during device reset will cause a memory
leak.

Fixes #58407

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2023-05-31 10:25:36 +01:00
..
CMakeLists.txt ITE: drivers/usb/device: Add USB Device Controller Support 2023-05-26 12:40:18 +02:00
Kconfig drivers: usb_dc_mcux: Add Pinctrl defines 2023-05-26 17:53:37 -04:00
usb_dc_dw_stm32.h drivers: usb_dc_dw: add support for STM32F4 SoC family 2023-05-10 20:07:04 +09:00
usb_dc_dw.c drivers: usb_dc_dw: add support for STM32F4 SoC family 2023-05-10 20:07:04 +09:00
usb_dc_it82xx2.c ITE: drivers/usb/device: Add USB Device Controller Support 2023-05-26 12:40:18 +02:00
usb_dc_kinetis.c drivers: usb: usb_dc_kinetis: reconfigure USB endpoint 0 after reset 2023-05-31 10:25:36 +01:00
usb_dc_mcux.c drivers: usb_dc_mcux: Use CONFIG_USB_DC_NXP_LPCIP3511 define 2023-05-26 17:53:37 -04:00
usb_dc_native_posix_adapt.c
usb_dc_native_posix_adapt.h
usb_dc_native_posix.c drivers: usb_dc_native_posix: Allow endpoint disable after detach 2022-11-25 20:02:42 +01:00
usb_dc_nrfx.c drivers: usb_dc_nrfx: Enable SOF interrupts only when needed 2023-05-05 13:37:47 +02:00
usb_dc_rpi_pico.c init: remove the need for a dummy device pointer in SYS_INIT functions 2023-04-12 14:28:07 +00:00
usb_dc_sam0.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
usb_dc_sam_usbc.c barriers: Move __DSB() to the new API 2023-05-24 13:13:57 -04:00
usb_dc_sam_usbhs.c barriers: Move __DSB() to the new API 2023-05-24 13:13:57 -04:00
usb_dc_smartbond.c drivers: usb_device: Add USB driver for smartbond 2023-05-26 10:19:15 +02:00
usb_dc_stm32.c treewide: Update clock control API usage 2023-04-05 10:55:46 +02:00
usb_dw_registers.h drivers: usb_dc_dw: add definition for GHWCFG1..4 registers 2023-05-10 20:07:04 +09:00