Browse Source
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>pull/88757/merge
4 changed files with 1287 additions and 0 deletions
@ -0,0 +1,28 @@ |
|||||||
|
# Copyright (c) 2025 Nordic Semiconductor ASA |
||||||
|
# SPDX-License-Identifier: Apache-2.0 |
||||||
|
|
||||||
|
config UDC_SAM0 |
||||||
|
bool "Driver for SAM0 family USB device controller" |
||||||
|
default y |
||||||
|
depends on DT_HAS_ATMEL_SAM0_USB_ENABLED |
||||||
|
select PINCTRL |
||||||
|
select SYS_MEM_BLOCKS |
||||||
|
select EVENTS |
||||||
|
help |
||||||
|
Driver for SAM0 family USB device controller. |
||||||
|
|
||||||
|
if UDC_SAM0 |
||||||
|
|
||||||
|
config UDC_SAM0_STACK_SIZE |
||||||
|
int "UDC controller driver internal thread stack size" |
||||||
|
default 512 |
||||||
|
help |
||||||
|
Device controller driver internal thread stack size. |
||||||
|
|
||||||
|
config UDC_SAM0_THREAD_PRIORITY |
||||||
|
int "UDC controller driver thread priority" |
||||||
|
default 8 |
||||||
|
help |
||||||
|
Device controller driver thread priority. |
||||||
|
|
||||||
|
endif # UDC_SAM0 |
Loading…
Reference in new issue