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

menu "IO Expander/GPIO Support"

config IOEXPANDER
	bool "Enable IO Expander Support"
	default n
	---help---
		This directory holds implementations of IO expander drivers.
		See include/nuttx/ioexpander/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
	depends on EXPERIMENTAL
	---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.

config IOEXPANDER_SHADOW_MODE
	bool "Use Shadow Mode instead of Read-Modify-Write Operations"
	default n
	---help---
		This setting enables a mode where the output and pin
		configuration registers are held in RAM.
		With this for example we do not need to read back the
		output-register every time we want to change one pin.
		We do instead change the bit in the internal register
		and then just write this register to the IO-Expander.
		This reduces bus traffic and eliminates the problem of
		EMC-caused toggling of output pins.

config IOEXPANDER_RETRY
	bool "Retry to send commands and data at I2C communication errors"
	default n
	---help---
		Retry to send commands and data if a I2C-communication
		error occurs (eg. caused by EMC).

endif # IOEXPANDER

config DEV_GPIO
	bool "GPIO driver"
	default n
	---help---
		Enables a simple GPIO input/output driver to support application-
		space testing of hardware.

endmenu # IO Expander/GPIO Support
