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 @@
@@ -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