# Kconfig - USB HID configuration options

#
# Copyright (c) 2018 Intel Corp.
#
# SPDX-License-Identifier: Apache-2.0
#

config USB_DEVICE_HID
	bool "USB Human Interface Device support"
	help
	  Enables USB Human Interface Device support.

if USB_DEVICE_HID

config USB_HID_DEVICE_NAME_0
	string "USB HID first device name"
	default "HID_0"
	help
	  Device name for the first HID Device.

if USB_COMPOSITE_DEVICE

config USB_HID_DEVICE_1
	bool "Enable second USB HID Device"
	help
	  Enable second USB HID Device for composite configuration.

config USB_HID_DEVICE_NAME_1
	string "USB HID second device name"
	depends on USB_HID_DEVICE_1
	default "HID_1"
	help
	  Device name for the second HID Device.

endif # USB_COMPOSITE_DEVICE

config ENABLE_HID_INT_OUT_EP
	bool "Enable USB HID Device Interrupt OUT Endpoint"
	help
	  Enable USB HID Device Interrupt OUT Endpoint.

config HID_INTERRUPT_EP_MPS
	int "USB HID Device Interrupt Endpoint size"
	default 16
	help
	  USB HID Device interrupt endpoint size

config USB_HID_MAX_PAYLOAD_SIZE
	int
	default 64
	help
	  Max allowed payload size over USB HID Class

config USB_HID_POLL_INTERVAL_MS
	int "Polling interval"
	default 9
	help
	  Polling interval in ms selected by the USB HID Device.

config USB_HID_REPORTS
	int "HID reports in the instance"
	default 1
	range 1 256
	help
	  Number of HID reports in the instance.
	  Must be equal or higher than highest report ID (if they are not consecutive).

config USB_HID_BOOT_PROTOCOL
	bool "Enable USB HID Boot Protocol handling"
	help
	  Sets bInterfaceSubClass to 1 and enables Set_Protocol and Get_Protocol
	  requests handling.
	  See Chapter 4.2 of Device Class Definition for Human Interface Devices 1.11
	  for more information.

if USB_HID_BOOT_PROTOCOL

config USB_HID_PROTOCOL_CODE
	int "HID protocol code"
	default 0
	range 0 2
	help
	  Sets bIntefaceProtocol in HID instance.
	  0 = None
	  1 = Keyboard
	  2 = Mouse
	  See Chapter 4.3 of Device Class Definition for Human Interface Devices 1.11
	  for more information.

endif # USB_HID_BOOT_PROTOCOL

endif # USB_DEVICE_HID
