| # USB device stack configuration options |
| |
| # Copyright (c) 2016 Wind River Systems, Inc. |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| menuconfig USB_DEVICE_STACK |
| bool "USB Device Support" |
| select USB_DEVICE_DRIVER |
| select HWINFO |
| help |
| Enable USB device stack. |
| |
| if USB_DEVICE_STACK |
| |
| module = USB_DEVICE |
| module-str = usb device |
| source "subsys/logging/Kconfig.template.log_config" |
| |
| config USB_DEVICE_VID |
| hex "USB Vendor ID" |
| default 0x2FE3 |
| help |
| USB device vendor ID. MUST be configured by vendor. |
| |
| config USB_DEVICE_PID |
| hex "USB Product ID" |
| default 0x0100 |
| help |
| USB device product ID. MUST be configured by vendor. |
| |
| config USB_DEVICE_MANUFACTURER |
| string "USB manufacturer name" |
| default "ZEPHYR" |
| help |
| USB device Manufacturer string. MUST be configured by vendor. |
| |
| config USB_DEVICE_PRODUCT |
| string "USB product name" |
| default "USB-DEV" |
| help |
| USB device Product string. MUST be configured by vendor. |
| |
| config USB_DEVICE_SN |
| string "USB device Serial Number String" |
| default "0123456789ABCDEF" |
| help |
| Placeholder for USB device Serial Number String. |
| Serial Number String will be derived from |
| Hardware Information Driver (HWINFO). |
| |
| config USB_COMPOSITE_DEVICE |
| bool "Use Interface Association Descriptor code triple" |
| help |
| This option modifies the code triple in the device descriptor |
| to signal that one of the functions has two or more interfaces and |
| uses the Interface Association Descriptor. |
| |
| config USB_MAX_NUM_TRANSFERS |
| int "Set number of USB transfer data buffers" |
| range 1 32 |
| default 4 |
| help |
| Allocates buffers used for parallel transfers. Increase this number |
| according to USB devices count. |
| |
| config USB_DEVICE_BLUETOOTH_BIG_BUF |
| bool |
| # Hidden option to simplify bluetooth buffer requirement |
| # TODO: Add BUF reserve in H4 mode and ISO? |
| default y if BT_BUF_ACL_RX_SIZE > 123 # 4 byte header |
| default y if BT_BUF_ACL_TX_SIZE > 123 # 4 byte header |
| default y if BT_BUF_EVT_RX_SIZE > 125 # 2 byte header |
| default y if BT_BUF_CMD_TX_SIZE > 124 # 3 byte header |
| |
| config USB_REQUEST_BUFFER_SIZE |
| int "Set buffer size for Standard, Class and Vendor request handlers" |
| range 64 512 if USB_DEVICE_NETWORK_RNDIS |
| range 8 65536 |
| default 256 if USB_DEVICE_NETWORK_RNDIS |
| default 266 if (USB_DEVICE_BLUETOOTH && USB_DEVICE_BLUETOOTH_BIG_BUF) |
| default 1024 if USB_DEVICE_LOOPBACK |
| default 128 |
| |
| config USB_MAX_ALT_SETTING |
| int "Size of the array where alternate settings are stored" |
| range 0 16 |
| default 8 |
| help |
| Size of the array where alternate settings are stored. |
| Should not be smaller than the number of interfaces. |
| |
| config USB_NUMOF_EP_WRITE_RETRIES |
| int "Number of endpoint write retries" |
| default 3 |
| help |
| Number of endpoint write retries. |
| |
| config USB_DEVICE_SOF |
| bool "Start of Frame processing in events" |
| default y if (USB_DEVICE_AUDIO && NRF_USBD_COMMON) |
| |
| config USB_DEVICE_BOS |
| bool "USB Binary Device Object Store (BOS)" |
| |
| config USB_DEVICE_OS_DESC |
| bool "MS OS Descriptors support" |
| |
| config USB_SELF_POWERED |
| bool "Set Self-powered characteristic" |
| default y |
| help |
| Set Self-powered characteristic in bmAttributes to indicate |
| self powered USB device. |
| |
| config USB_MAX_POWER |
| int "Set bMaxPower value" |
| default 50 |
| range 0 250 |
| help |
| Set bMaxPower value in the Standard Configuration Descriptor, |
| the result is 2mA times the value provided. |
| |
| config USB_WORKQUEUE |
| bool "Use a dedicate work queue in the USB subsystem" |
| default y if USB_CDC_ACM |
| help |
| This option provides a dedicated work queue that is used for |
| all offloaded operations initiated by the USB subsystem. |
| This prevents deadlock situations where tasks on the system |
| workqueue inadvertently initiate operations that block, such |
| as UART transmission on CDC-ACM, preventing the system work |
| queue from making progress on the USB tasks that would |
| release the task. |
| |
| Without this the system work queue is used for all USB |
| offloaded transfers. |
| |
| config USB_WORKQUEUE_STACK_SIZE |
| int "USB workqueue stack size" |
| depends on USB_WORKQUEUE |
| default 4096 if COVERAGE_GCOV |
| default 1024 |
| |
| config USB_WORKQUEUE_PRIORITY |
| int "USB workqueue priority" |
| depends on USB_WORKQUEUE |
| default -2 if COOP_ENABLED && !PREEMPT_ENABLED |
| default 0 if !COOP_ENABLED |
| default -1 |
| help |
| By default, USB work queue priority is the lowest cooperative |
| priority. This means that any work handler, once started, won't |
| be preempted by any other thread until finished. |
| |
| config USB_DEVICE_INITIALIZE_AT_BOOT |
| bool "Initialize USB device support at boot" |
| depends on USB_CDC_ACM |
| help |
| Use CDC ACM UART as backend for console, shell, or logging. |
| |
| source "subsys/usb/device/class/Kconfig" |
| |
| endif # USB_DEVICE_STACK |