#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#

menuconfig IOEXPANDER
	bool "IO Expander Support"
	default n
	---help---
		This directory holds implementations of IO expander drivers.
		See include/nuttx/discrete/ioexpander.h for registration information.

if IOEXPANDER

config IOEXPANDER_PCA9555
	bool "PCA9555 I2C IO expander"
	default n
	select I2C
	---help---
		Enable support for the NXP PCA9555 IO Expander

if IOEXPANDER_PCA9555

config PCA9555_MULTIPLE
	bool "Multiple PCA9555 Devices"
	default n
	---help---
		Can be defined to support multiple PCA9555 devices on board.

config PCA9555_INT_ENABLE
	bool "Enable PCA9555 Interrupt Support"
	default n
	select IOEXPANDER_INT_ENABLE
	---help---
		Enable driver interrupt functionality

endif # IOEXPANDER_PCA9555

config IOEXPANDER_INT_ENABLE
	bool
	default y if PCA9555_INT_ENABLE
	---help---
		This is the global INT supported flag for io expanders

config IOEXPANDER_MULTIPIN
	bool "Support multi-pin access routines"
	default n
	---help---
		This settings enable the definition of routines for
		optimized simultaneous access to multiple pins.

endif # IOEXPANDER

config USERLED
	bool "LED driver"
	default n
	depends on ARCH_HAVE_LEDS
	---help---
		Enable standard user LED upper half driver.

if USERLED

config USERLED_LOWER
	bool "Generic Lower Half LED Driver"
	default n
	---help---
		If the board supports the standard LED interfaces as
		defined in include/nuttx/board.h header file, then this
		standard LED lower half driver might be usable.

		In order for this generic driver to be usable:

		1. The board implementation must provide the LED
		   interfaces as defined in include/nuttx/board.h
		2. The board.h header file must provide the definition
		   BOARD_NLEDS, and
		3. The board.h header file must not include any other
		   header files that are not accessibble in this context
		   (such as those in arch/<arch>/src/<chip>) UNLESS those
		   inclusions are conditioned on __KERNEL__.  button_lower.c
		   will undefine __KERNEL__ before included board.h.

		If your board does not meet these requirements, then the
		userled_lower.c file can still be copied to your your
		board src/ directory and modified for your specific board
		requirements.

endif # USERLED
