# # 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_MCP23X17 bool "MCP23017/MCP23S17 I2C/SPI IO expander" default n depends on I2C ---help--- Enable support for the MCP23017/MCP23S17 IO Expander if IOEXPANDER_MCP23X17 config MCP23X17_MULTIPLE bool "Multiple MCP23x17 Devices" default n ---help--- Can be defined to support multiple MCP23x17 devices on board. config MCP23X17_INT_ENABLE bool "Enable MCP23x17 Interrupt Support" default n select IOEXPANDER_INT_ENABLE ---help--- Enable driver interrupt functionality config MCP23X17_INT_NCALLBACKS int "Max number of interrupt callbacks" default 4 depends on MCP23X17_INT_ENABLE ---help--- This is the maximum number of interrupt callbacks supported config MCP23X17_INT_POLL bool "Enable interrupt poll" default n ---help--- Enable polling for missed interrupts. config MCP23X17_INT_POLLDELAY int "Interrupt poll delay (used)" default 500000 depends on MCP23X17_INT_POLL ---help--- This microsecond delay defines the polling rate for missed interrupts. endif # IOEXPANDER_MCP23X17 config IOEXPANDER_PCA9555 bool "PCA9555 I2C IO expander" default n depends on 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 config PCA9555_INT_NCALLBACKS int "Max number of interrupt callbacks" default 4 depends on PCA9555_INT_ENABLE ---help--- This is the maximum number of interrupt callbacks supported config PCA9555_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 PCA9555_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_PCA9555 config IOEXPANDER_PCA9538 bool "PCA9538 I2C IO expander" default n depends on I2C ---help--- Enable support for the NXP PCA9538 IO Expander if IOEXPANDER_PCA9538 config PCA9538_MULTIPLE bool "Multiple PCA9538 Devices" default n ---help--- Can be defined to support multiple PCA9538 devices on board. config PCA9538_INT_ENABLE bool "Enable PCA9538 Interrupt Support" default n select IOEXPANDER_INT_ENABLE ---help--- Enable driver interrupt functionality config PCA9538_INT_NCALLBACKS int "Max number of interrupt callbacks" default 4 depends on PCA9538_INT_ENABLE ---help--- This is the maximum number of interrupt callbacks supported config PCA9538_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 PCA9538_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_PCA9538 config IOEXPANDER_TCA64XX bool "TCA64XX I2C IO expander" default n depends on I2C && EXPERIMENTAL ---help--- Enable support for the TCA64XX IO Expander if IOEXPANDER_TCA64XX config TCA64XX_MULTIPLE bool "Multiple TCA64XX Devices" default n ---help--- Can be defined to support multiple TCA64XX devices on board. config TCA64XX_INT_ENABLE bool "Enable TCA64XX Interrupt Support" default n select IOEXPANDER_INT_ENABLE ---help--- Enable driver interrupt functionality config TCA64XX_INT_NCALLBACKS int "Max number of interrupt callbacks" default 4 depends on TCA64XX_INT_ENABLE ---help--- This is the maximum number of interrupt callbacks supported config TCA64XX_INT_POLL bool "Enable interrupt poll" default n ---help--- Enable polling for missed interrupts. config TCA64XX_INT_POLLDELAY int "Interrupt poll delay (used)" default 500000 depends on TCA64XX_INT_POLL ---help--- This microsecond delay defines the polling rate for missed interrupts. endif # IOEXPANDER_TCA64XX config IOEXPANDER_PCF8574 bool "PCF8574 I2C IO expander" default n depends on I2C && EXPERIMENTAL ---help--- Enable support for the PCF8574 IO Expander if IOEXPANDER_PCF8574 config PCF8574_MULTIPLE bool "Multiple PCF8574 Devices" default n ---help--- Can be defined to support multiple PCF8574 devices on board. config PCF8574_INT_ENABLE bool "Enable PCF8574 Interrupt Support" default n select IOEXPANDER_INT_ENABLE ---help--- Enable driver interrupt functionality config PCF8574_INT_NCALLBACKS int "Max number of interrupt callbacks" default 4 depends on PCF8574_INT_ENABLE ---help--- This is the maximum number of interrupt callbacks supported config PCF8574_INT_POLL bool "Enable interrupt poll" default n ---help--- Enable polling for missed interrupts. config PCF8574_INT_POLLDELAY int "Interrupt poll delay (used)" default 500000 depends on PCF8574_INT_POLL ---help--- This microsecond delay defines the polling rate for missed interrupts. endif # IOEXPANDER_PCF8574 config IOEXPANDER_INT_ENABLE bool default n ---help--- This is the global INT supported flag for io expanders config IOEXPANDER_NPINS int "Number of pins" default 16 ---help--- Maximum number of pins supported per driver. 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 DEV_GPIO bool "GPIO driver" default n ---help--- Enables a simple GPIO input/output driver to support application- space testing of hardware. config DEV_GPIO_NSIGNALS int "Max number of signals" default 1 depends on DEV_GPIO ---help--- The maximum number of signals that can be registered with the GPIO driver config GPIO_LOWER_HALF bool "GPIO Lower Half" default n depends on DEV_GPIO && IOEXPANDER ---help--- Enable support for a lower half driver that provides GPIO driver support for I/O expander pins. if GPIO_LOWER_HALF config GPIO_LOWER_HALF_INTTYPE int "default interrupt type for GPIO_INTERRUPT_PIN pintype" default 14 ---help--- This is the default interrupt type (IOEXPANDER_VAL_BOTH) for GPIO_INTERRUPT_PIN pintype in gplf driver register. endif endmenu # IO Expander/GPIO Support