# 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"

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 0x100
	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_COMPOSITE_BUFFER_SIZE
	int "Set buffer size for Class Handler"
	depends on USB_COMPOSITE_DEVICE
	default 256 if USB_DEVICE_NETWORK_RNDIS
	default 64

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
