zephyr/drivers/usb
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
..
bc12 emul: pi3usb9201: Add charging mode support 2023-05-08 09:57:56 +02:00
device drivers: usb: usb_dc_kinetis: reconfigure USB endpoint 0 after reset 2023-05-31 10:25:36 +01:00
udc drivers: udc: add USB device controller driver skeleton 2023-05-17 12:26:48 +02:00
uhc drivers: kconfig: unify menuconfig title strings 2023-03-28 15:06:06 +02:00
uvb iterable_sections: move to specific header 2023-05-22 10:42:30 +02:00
CMakeLists.txt bc12: API and 1st driver implementation. 2023-03-30 17:34:36 -04:00
Kconfig bc12: API and 1st driver implementation. 2023-03-30 17:34:36 -04:00