# Copyright (c) 2022 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: Apache-2.0

menuconfig USB_DEVICE_STACK_NEXT
	bool "New USB device stack [EXPERIMENTAL]"
	select EXPERIMENTAL
	select UDC_DRIVER
	select HWINFO
	help
	  New experimental USB device stack.

if USB_DEVICE_STACK_NEXT

module = USBD
module-str = usbd
source "subsys/logging/Kconfig.template.log_config"

config USBD_SHELL
	bool "USB device shell"
	default y
	depends on SHELL
	help
	  Enable USB device shell.

config USBD_THREAD_INIT_PRIO
	int
	default 90
	help
	  USB device thread initialization priority level.

config USBD_THREAD_STACK_SIZE
	int "USB device stack thread stack size"
	default 1024
	help
	  USB device stack thread stack size in bytes.

config USBD_MAX_UDC_MSG
	int "Maximum number of UDC events"
	default 10
	help
	  Maximum number of USB device controller events that can be queued.

rsource "class/Kconfig"

endif # USB_DEVICE_STACK_NEXT
