|  | # 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" | 
|  |  | 
|  | source "samples/subsys/usb/usb_pid.Kconfig" | 
|  |  | 
|  | 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 "Enable composite device driver" | 
|  | help | 
|  | Enable composite USB device driver. | 
|  |  | 
|  | 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 "Enable Start of Frame processing in events" | 
|  | default y if (USB_DEVICE_AUDIO && NRFX_USBD) | 
|  |  | 
|  | config USB_DEVICE_BOS | 
|  | bool "Enable USB Binary Device Object Store (BOS)" | 
|  |  | 
|  | config USB_DEVICE_OS_DESC | 
|  | bool "Enable 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 | 
|  | 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. | 
|  |  | 
|  | source "subsys/usb/class/Kconfig" | 
|  |  | 
|  | endif # USB_DEVICE_STACK |