This patch introduces a dedicated work queue for handling the events from ISR (i.e. for notifying the USB device stack, for executing the enpoints callbacks, etc.). The system work queue cannot be used for this purpose as it might be used in applications for scheduling USB transfers and this could lead to a deadlock when the USB device stack would not be notified about certain event because of a system work queue item waiting for a USB transfer to be finished. The FIFO named so far `work_queue` is renamed to `usbd_evt_fifo` to better indicate its purpose and to avoid confusion. Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
120 lines
3.0 KiB
Plaintext
120 lines
3.0 KiB
Plaintext
# Kconfig - USB device configuration options
|
|
|
|
#
|
|
# Copyright (c) 2016 Wind River Systems, Inc.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
if USB
|
|
|
|
config USB_DEVICE_DRIVER
|
|
bool
|
|
|
|
config USB_DW
|
|
bool "Designware USB Device Controller Driver"
|
|
select USB_DEVICE_DRIVER
|
|
help
|
|
Designware USB Device Controller Driver.
|
|
|
|
config USB_DW_IRQ_PRI
|
|
int "DesignWare USB Driver Interrupt priority"
|
|
depends on USB_DW
|
|
help
|
|
USB interrupt priority.
|
|
|
|
config USB_DW_USB_2_0
|
|
bool "DesignWare Controller and PHY support for USB specification 2.0"
|
|
depends on USB_DW
|
|
help
|
|
Indicates whether or not USB specification version 2.0 is supported
|
|
|
|
config USB_DC_STM32
|
|
bool "USB device controller driver for STM32 devices"
|
|
depends on SOC_FAMILY_STM32
|
|
select USB_DEVICE_DRIVER
|
|
select USE_STM32_LL_USB if !SOC_SERIES_STM32F0X && !SOC_SERIES_STM32F3X && !SOC_SERIES_STM32L0X
|
|
select USE_STM32_HAL_PCD
|
|
select USE_STM32_HAL_PCD_EX
|
|
select HAS_DTS_USB
|
|
help
|
|
Enable USB support on the STM32 F0, F1, F2, F3, F4, F7, L0 and L4 family of
|
|
processors.
|
|
|
|
config USB_DC_SAM0
|
|
bool "SAM0 series USB Device Controller driver"
|
|
default y
|
|
depends on SOC_FAMILY_SAM0
|
|
select USB_DEVICE_DRIVER
|
|
help
|
|
SAM0 family USB device controller Driver.
|
|
|
|
config USB_DC_SAM
|
|
bool "SAM series USB HS Device Controller driver"
|
|
depends on SOC_SERIES_SAME70
|
|
select USB_DEVICE_DRIVER
|
|
select HAS_DTS_USB
|
|
help
|
|
SAM family USB HS device controller Driver.
|
|
|
|
menuconfig USB_NRF52840
|
|
bool "Nordic Semiconductor nRF52840 USB Device Controller Driver"
|
|
default y
|
|
depends on SOC_NRF52840
|
|
select USB_DEVICE_DRIVER
|
|
select HAS_DTS_USB
|
|
select NRFX_USBD
|
|
help
|
|
nRF52840 USB Device Controller Driver
|
|
|
|
config USB_NRFX_EVT_QUEUE_SIZE
|
|
int "USBD event queue size"
|
|
range 4 64
|
|
default 32
|
|
depends on USB_NRF52840
|
|
help
|
|
Size of the driver's internal event queue.
|
|
Required size will depend on number of endpoints (class instances) in use.
|
|
|
|
config USB_NRFX_WORK_QUEUE_STACK_SIZE
|
|
int "USBD work queue stack size"
|
|
default 1024
|
|
depends on USB_NRF52840
|
|
help
|
|
Size of the stack for the work queue thread that is used in the driver
|
|
for handling the events from the USBD ISR, i.e. executing endpoint
|
|
callbacks and providing proper notifications to the USB device stack.
|
|
|
|
config USB_KINETIS
|
|
bool "Kinetis USB Device Controller Driver"
|
|
select USB_DEVICE_DRIVER
|
|
help
|
|
Kinetis USB Device Controller Driver.
|
|
|
|
config USB_DC_NXP_EHCI
|
|
bool "Kinetis and RT EHCI USB Device Controller Driver"
|
|
depends on HAS_MCUX_USB_EHCI
|
|
select USB_DEVICE_DRIVER
|
|
select NOCACHE_MEMORY if HAS_MCUX_CACHE
|
|
help
|
|
Kinetis and RT EHCI USB Device Controller Driver.
|
|
|
|
module = USB_DRIVER
|
|
module-str = usb driver
|
|
source "subsys/logging/Kconfig.template.log_config"
|
|
|
|
config USB_DC_STM32_DISCONN_ENABLE
|
|
bool
|
|
depends on USB_DC_STM32
|
|
help
|
|
Say Y if your board uses USB DISCONNECT pin to enable the
|
|
pull-up resistor on USB DP.
|
|
|
|
config USB_NATIVE_POSIX
|
|
bool "Native Posix USB Device Controller Driver"
|
|
select USB_DEVICE_DRIVER
|
|
help
|
|
Native Posix USB Device Controller Driver.
|
|
|
|
endif # USB
|