blob: ff3b169e66a512dcc0c23fa15ace179423d26668 [file] [log] [blame]
# Copyright (c) 2023 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
config UDC_DWC2
bool "DWC2 USB device controller driver"
default y
depends on DT_HAS_SNPS_DWC2_ENABLED
select UDC_DRIVER_HAS_HIGH_SPEED_SUPPORT
select NRFS if NRFS_HAS_VBUS_DETECTOR_SERVICE
select NRFS_VBUS_DETECTOR_SERVICE_ENABLED if NRFS_HAS_VBUS_DETECTOR_SERVICE
select EVENTS
help
DWC2 USB device controller driver.
if UDC_DWC2
config UDC_DWC2_DMA
bool "DWC2 USB DMA support"
default y
help
Enable Buffer DMA if DWC2 USB controller supports Internal DMA.
config UDC_DWC2_HIBERNATION
bool "DWC2 USB Hibernation support"
default y
help
Enable Hibernation if DWC2 USB controller supports hibernation.
config UDC_DWC2_PTI
bool "DWC2 USB Periodic Transfer Interrupt"
help
Ignore frame number when scheduling isochronous endpoints. Use this
when isochronous transfers should finish only after receiving token
(IN or OUT) from host. In Periodic Transfer Interrupt, DWC2 driver is
not automatically retiring transfers if host does not issue token
during microframe. Enable to reduce isochronous endpoint CPU overhead.
config UDC_DWC2_STACK_SIZE
int "UDC DWC2 driver internal thread stack size"
default 512
help
DWC2 driver internal thread stack size.
config UDC_DWC2_THREAD_PRIORITY
int "UDC DWC2 driver thread priority"
default 8
help
DWC2 driver thread priority.
config UDC_DWC2_USBHS_VBUS_READY_TIMEOUT
int "UDC DWC2 USBHS VBUS ready event timeout in ms"
depends on SOC_SERIES_NRF54HX || SOC_SERIES_NRF54LX || SOC_SERIES_NRF92X
default 0
help
UDC DWC2 USBHS VBUS ready event timeout. If the VBUS is not ready
and the Nordic USBHS controller is used, the udc_enable() is
blocked for this amount of time. Set it to zero to wait forever.
endif # UDC_DWC2