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

menuconfig USB_HOST_STACK
	bool "USB host stack [EXPERIMENTAL]"
	select EXPERIMENTAL
	select UHC_DRIVER
	help
	  New experimental USB host stack.

if USB_HOST_STACK

module = USBH
module-str = usbh
source "subsys/logging/Kconfig.template.log_config"

config USBH_USB_DEVICE_MAX
	int "Maximum number of USB devices supported."
	default 4
	range 2 127
	help
	  Maximum number of USB devices supported for all controllers.

config USBH_USB_DEVICE_HEAP
	int "Memory used to cache device descriptors"
	default 1024
	range 256 16384
	help
	  Memory used to cache device descriptors.

config USBH_SHELL
	bool "USB host shell"
	depends on SHELL
	help
	  Shell commands for USB host support.

config USBH_INIT_PRIO
	int
	default 90
	help
	  USB host thread initialization priority level.

config USBH_STACK_SIZE
	int "USB host stack thread stack size"
	default 1024
	help
	  USB host stack thread stack size in bytes.

config USBH_MAX_UHC_MSG
	int "Maximum number of UHC events"
	default 10
	help
	  Maximum number of USB host controller events that can be queued.

rsource "Kconfig.usbip"

endif # USB_HOST_STACK
