# Kconfig - 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 stack"
	depends on USB_DEVICE_DRIVER || ARCH_POSIX
	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 serial number"
	default "ABCDEF012345" if USB_MASS_STORAGE
	default "0.01"
	help
	  USB device SerialNumber string. MUST be configured by vendor.

config USB_COMPOSITE_DEVICE
	bool "Enable composite device driver"
	depends on USB
	help
	  Enable composite USB device driver.

config USB_REQUEST_BUFFER_SIZE
	int "Set buffer size for Standard, Class and Vendor request handlers"
	range 256 65536 if USB_DEVICE_NETWORK_RNDIS
	range 8 65536
	default 256 if USB_DEVICE_NETWORK_RNDIS
	default 1024 if USB_DEVICE_LOOPBACK
	default 128

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"

config USB_DEVICE_REMOTE_WAKEUP
	bool "Enable support for remote wakeup"
	help
	  This option requires USBD peripheral driver to also support remote wakeup.

config USB_DEVICE_BOS
	bool "Enable USB Binary Device Object Store (BOS)"

config USB_DEVICE_OS_DESC
	bool "Enable MS OS Descriptors support"

menuconfig USB_VBUS_GPIO
	bool "Control VBUS via GPIO pin"
	depends on GPIO
	help
	  The USB VBUS signal is connected via a GPIO pin.

if USB_VBUS_GPIO

config USB_VBUS_GPIO_DEV_NAME
	string "GPIO Device"
	default "GPIO_0"
	help
	  The device name of the GPIO device to which the USB_VBUS_EN signal is
	  connected.

config USB_VBUS_GPIO_PIN_NUM
	int "GPIO pin number"
	default 0
	help
	  The number of the GPIO pin to which the USB_VBUS_EN signal is
	  connected.

endif # USB_VBUS_GPIO

source "subsys/usb/class/Kconfig"

endif # USB_DEVICE_STACK
