# Kconfig - USB class drivers configuration options

#
# Copyright (c) 2016 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#

if USB_DEVICE_STACK

config USB_CDC_ACM
	bool
	prompt "USB CDC ACM Device Class Driver"
	default n
	help
	USB CDC ACM device class driver

config CDC_ACM_PORT_NAME
	string "CDC ACM class device driver port name"
	depends on USB_CDC_ACM
	default "CDC_ACM"
	help
	Port name through which CDC ACM class device driver is accessed

config CDC_ACM_INT_EP_ADDR
	hex
	depends on USB_CDC_ACM
	default 0x85
	range 0x81 0x8f
	help
	CDC ACM class interrupt endpoint address

config CDC_ACM_IN_EP_ADDR
	hex
	depends on USB_CDC_ACM
	default 0x84
	range 0x81 0x8f
	help
	CDC ACM class IN endpoint address

config CDC_ACM_OUT_EP_ADDR
	hex
	depends on USB_CDC_ACM
	default 0x03
	range 0x01 0x0f
	help
	CDC ACM class OUT endpoint address

config CDC_ACM_INTERRUPT_EP_MPS
	int
	depends on USB_CDC_ACM
	default 16
	help
	CDC ACM class interrupt IN endpoint size

config CDC_ACM_BULK_EP_MPS
	int
	depends on USB_CDC_ACM
	default 64
	help
	CDC ACM class bulk endpoints size

config SYS_LOG_USB_CDC_ACM_LEVEL
	int
	prompt "USB CDC ACM device class driver log level"
	depends on USB_CDC_ACM && SYS_LOG
	default 0
	help
	Sets log level for USB CDC ACM device class driver

	Levels are:

	- 0 OFF, do not write

	- 1 ERROR, only write SYS_LOG_ERR

	- 2 WARNING, write SYS_LOG_WRN in addition to previous level

	- 3 INFO, write SYS_LOG_INF in addition to previous levels

	- 4 DEBUG, write SYS_LOG_DBG in addition to previous levels

config USB_MASS_STORAGE
	bool
	prompt "USB Mass Storage Device Class Driver"
	select DISK_ACCESS
	default n
	help
	USB Mass Storage device class driver

config MASS_STORAGE_IN_EP_ADDR
	hex
	depends on USB_MASS_STORAGE
	default 0x82
	range 0x81 0x8f
	help
	Mass storage device class IN endpoint address

config MASS_STORAGE_OUT_EP_ADDR
	hex
	depends on USB_MASS_STORAGE
	default 0x01
	range 0x01 0x0f
	help
	Mass storage device class OUT endpoint address

config MASS_STORAGE_BULK_EP_MPS
	int
	depends on USB_MASS_STORAGE
	default 64
	range 8 64
	help
	Mass storage device class bulk endpoints size

config SYS_LOG_USB_MASS_STORAGE_LEVEL
	int
	prompt "USB Mass Storage device class driver log level"
	depends on USB_MASS_STORAGE && SYS_LOG
	default 0
	help
	Sets log level for USB Mass Storage device class driver

	Levels are:

	- 0 OFF, do not write

	- 1 ERROR, only write SYS_LOG_ERR

	- 2 WARNING, write SYS_LOG_WRN in addition to previous level

	- 3 INFO, write SYS_LOG_INF in addition to previous levels

	- 4 DEBUG, write SYS_LOG_DBG in addition to previous levels

endif # CONFIG_USB_DEVICE_STACK
