#
# Copyright (c) 2019 Henrik Brix Andersen <henrik@brixandersen.dk>
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig HT16K33
	bool "HT16K33 LED driver"
	depends on (I2C && HAS_DTS_I2C)
	help
	  Enable LED driver for HT16K33.

	  The HT16K33 is a memory mapping, multifunction LED
	  controller driver. The controller supports up to 128 LEDs
	  (up to 16 rows and 8 commons).

config HT16K33_KEYSCAN
	bool "Enable keyscan support"
	depends on (HT16K33 && GPIO)
	select GPIO_HT16K33
	help
	  Enable keyscan child device support in the HT16K33 LED
	  driver.

	  The keyscan functionality itself is handled by the
	  HT16K33 GPIO driver.

if HT16K33_KEYSCAN

config HT16K33_KEYSCAN_IRQ_THREAD_STACK_SIZE
	int "Stack size for keyscan interrupt request handler thread"
	default 400
	help
	  Size of the stack used for internal thread for keyscan
	  interrupt processing.

config HT16K33_KEYSCAN_IRQ_THREAD_PRIO
	int "Priority for keyscan interrupt request handler thread"
	default 2
	help
	  Priority level for internal thread for keyscan interrupt
	  processing.

config HT16K33_KEYSCAN_DEBOUNCE_MSEC
	int "Keyscan debounce interval in milliseconds"
	default 50
	range 20 1000
	help
	  Keyscan debounce interval in milliseconds.

config HT16K33_KEYSCAN_POLL_MSEC
	int "Keyscan poll interval in milliseconds"
	default 200
	range 20 10000
	help
	  Keyscan poll interval in milliseconds. Polling is only used
	  if no interrupt line is present.

endif #HT16K33_KEYSCAN
