The UDC driver for this beautiful USB controller is mostly rewritten from scratch. USB Pad Calibration and clock handling are copied from the usb_dc_sam0 driver. The driver uses multipacket transfers for all endpoints except the OUT control endpoint. The OUT control endpoint has a buffer that is always mapped to the endpoint buffer register so that it always has a valid buffer. The driver provides up to 7 IN and 7 OUT endpoints that support any type of transfer. Double buffering is not used, for the possible case of isochronous transfers some changes would be required in the future. Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
24 lines
1.2 KiB
CMake
24 lines
1.2 KiB
CMake
# Copyright (c) 2021 Nordic Semiconductor ASA
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
zephyr_library()
|
|
|
|
zephyr_library_sources(udc_common.c)
|
|
zephyr_library_include_directories(${ZEPHYR_BASE}/drivers/usb/common/)
|
|
|
|
zephyr_library_sources_ifdef(CONFIG_UDC_DWC2 udc_dwc2.c)
|
|
zephyr_library_sources_ifdef(CONFIG_UDC_NRF udc_nrf.c)
|
|
zephyr_library_sources_ifdef(CONFIG_UDC_KINETIS udc_kinetis.c)
|
|
zephyr_library_sources_ifdef(CONFIG_UDC_SKELETON udc_skeleton.c)
|
|
zephyr_library_sources_ifdef(CONFIG_UDC_VIRTUAL udc_virtual.c)
|
|
zephyr_library_sources_ifdef(CONFIG_UDC_SMARTBOND udc_smartbond.c)
|
|
zephyr_library_sources_ifdef(CONFIG_UDC_STM32 udc_stm32.c)
|
|
zephyr_library_sources_ifdef(CONFIG_UDC_IT82XX2 udc_it82xx2.c)
|
|
zephyr_library_sources_ifdef(CONFIG_UDC_NXP_EHCI udc_mcux_ehci.c)
|
|
zephyr_library_sources_ifdef(CONFIG_UDC_NXP_IP3511 udc_mcux_ip3511.c)
|
|
zephyr_library_sources_ifdef(CONFIG_UDC_NUMAKER udc_numaker.c)
|
|
zephyr_library_sources_ifdef(CONFIG_UDC_RPI_PICO udc_rpi_pico.c)
|
|
zephyr_library_sources_ifdef(CONFIG_UDC_AMBIQ udc_ambiq.c)
|
|
zephyr_library_sources_ifdef(CONFIG_UDC_RENESAS_RA udc_renesas_ra.c)
|
|
zephyr_library_sources_ifdef(CONFIG_UDC_MAX32 udc_max32.c)
|
|
zephyr_library_sources_ifdef(CONFIG_UDC_SAM0 udc_sam0.c)
|