# 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
	select USB_DEVICE_REMOTE_WAKEUP
	help
	  nRF52840 USB Device Controller Driver

config USB_NRFX_EVT_QUEUE_SIZE
	int "USBD event queue size"
	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_KINETIS
	bool "Kinetis USB Device Controller Driver"
	select USB_DEVICE_DRIVER
	help
	  Kinetis 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
