| # |
| # 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_RPMSG |
| bool "IO expander RPMSG server and client" |
| depends on RPMSG |
| default n |
| select IOEXPANDER_INT_ENABLE |
| ---help--- |
| This settings enable ioexpander RPMSG server and client. |
| |
| if IOEXPANDER_RPMSG |
| |
| config IOEXPANDER_RPMSG_INT_NCALLBACKS |
| int "number of ioexpander RPMSG interrupt callbacks" |
| default 32 |
| ---help--- |
| This set the IO expander number in interrupt callbacks. |
| |
| endif # IOEXPANDER_RPMSG |
| |
| config IOEXPANDER_DUMMY |
| bool "Simulated I/O Expander" |
| default n |
| select IOEXPANDER_INT_ENABLE |
| ---help--- |
| Build a simple, simulated I/O Expander chip simulation (for testing |
| purposes only). |
| |
| if IOEXPANDER_DUMMY |
| |
| config IOEXPANDER_DUMMY_INT_NCALLBACKS |
| int "Max number of interrupt callbacks" |
| default 4 |
| ---help--- |
| This is the maximum number of interrupt callbacks supported |
| |
| config IOEXPANDER_DUMMY_INT_POLLDELAY |
| int "Interrupt poll delay (used)" |
| default 500000 |
| ---help--- |
| This microsecond delay defines the polling rate for missed interrupts. |
| |
| endif # IOEXPANDER_DUMMY |
| |
| config IOEXPANDER_ICJX |
| bool "iC-JX SPI IO expander" |
| default n |
| depends on SPI |
| ---help--- |
| Enable support for the iC-JX expander from iC-Haus GmbH manufacturer. |
| SPI peripheral is used for the communication. |
| |
| if IOEXPANDER_ICJX |
| |
| config ICJX_MULTIPLE |
| bool "Multiple iC-JX Devices" |
| default n |
| ---help--- |
| Can be defined to support multiple iC-JX devices on board. |
| |
| config ICJX_INT_ENABLE |
| bool "Enable iC-JX Interrupt Support" |
| default n |
| select IOEXPANDER_INT_ENABLE |
| ---help--- |
| Enable driver interrupt functionality |
| |
| endif # IOEXPANDER_ICJX |
| |
| config IOEXPANDER_ISO1H812G |
| bool "ISO1H812G SPI IO expander" |
| default n |
| depends on SPI |
| ---help--- |
| Enable support for the ISO1H812G SPI IO expander. |
| |
| if IOEXPANDER_ISO1H812G |
| |
| config ISO1H812G_MULTIPLE |
| bool "Multiple ISO1H812G Devices" |
| default n |
| ---help--- |
| Can be defined to support multiple ISO1H812G devices on board. |
| |
| endif # IOEXPANDER_ISO1H812G |
| |
| config IOEXPANDER_ISO1I813T |
| bool "ISO1I813T SPI IO expander" |
| default n |
| depends on SPI |
| ---help--- |
| Enable support for the ISO1I813T SPI IO expander. |
| |
| if IOEXPANDER_ISO1I813T |
| |
| config ISO1I813T_MULTIPLE |
| bool "Multiple ISO1I813T Devices" |
| default n |
| ---help--- |
| Can be defined to support multiple ISO1I813T devices on board. |
| |
| endif # IOEXPANDER_ISO1I813T |
| |
| config IOEXPANDER_MCP23X08 |
| bool "MCP23008/MCP23S08 I2C/SPI IO expander" |
| default n |
| depends on I2C |
| ---help--- |
| Enable support for the MCP23008/MCP23S08 IO Expander |
| |
| if IOEXPANDER_MCP23X08 |
| |
| config MCP23X08_MULTIPLE |
| bool "Multiple MCP23x08 Devices" |
| default n |
| ---help--- |
| Can be defined to support multiple MCP23x08 devices on board. |
| |
| config MCP23X08_INT_ENABLE |
| bool "Enable MCP23x08 Interrupt Support" |
| default n |
| select IOEXPANDER_INT_ENABLE |
| ---help--- |
| Enable driver interrupt functionality |
| |
| config MCP23X08_INT_NCALLBACKS |
| int "Max number of interrupt callbacks" |
| default 4 |
| depends on MCP23X08_INT_ENABLE |
| ---help--- |
| This is the maximum number of interrupt callbacks supported |
| |
| config MCP23X08_INT_POLL |
| bool "Enable interrupt poll" |
| default n |
| ---help--- |
| Enable polling for missed interrupts. |
| |
| config MCP23X08_INT_POLLDELAY |
| int "Interrupt poll delay (used)" |
| default 500000 |
| depends on MCP23X08_INT_POLL |
| ---help--- |
| This microsecond delay defines the polling rate for missed interrupts. |
| |
| endif # IOEXPANDER_MCP23X08 |
| |
| 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_MIRROR |
| bool "Enable MCP23x17 Interrupt Mirror" |
| default n |
| select MCP23X17_INT_ENABLE |
| ---help--- |
| Enable driver interrupt mirror 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_PCA9557 |
| bool "PCA9557 I2C IO expander" |
| default n |
| depends on I2C |
| ---help--- |
| Enable support for the NXP PCA9557 IO Expander |
| |
| if IOEXPANDER_PCA9557 |
| |
| config PCA9557_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 PCA9557_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_PCA9557 |
| |
| 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_PCF8575 |
| bool "PCF8575 I2C IO expander" |
| default n |
| depends on I2C |
| ---help--- |
| Enable support for 16 bit PCF8575 IO Expander. Software driver |
| interrupt is currently not supported therefore decated HW interrupt |
| pin should be used. |
| |
| if IOEXPANDER_PCF8575 |
| |
| config PCF8575_MULTIPLE |
| bool "Multiple PCF8575 Devices" |
| default n |
| ---help--- |
| Can be defined to support multiple PCF8575 devices on board. |
| |
| endif # IOEXPANDER_PCF8575 |
| |
| config IOEXPANDER_SX1509 |
| bool "SX1509 I2C IO expander" |
| default n |
| depends on I2C |
| ---help--- |
| Enable support for the SX1509 IO Expander |
| |
| if IOEXPANDER_SX1509 |
| |
| config SX1509_MULTIPLE |
| bool "Multiple SX1509 Devices" |
| default n |
| ---help--- |
| Can be defined to support multiple SX1509 devices on board. |
| |
| config SX1509_INT_ENABLE |
| bool "Enable SX1509 Interrupt Support" |
| default n |
| select IOEXPANDER_INT_ENABLE |
| ---help--- |
| Enable driver interrupt functionality |
| |
| config SX1509_LED_ENABLE |
| bool "Enable SX1509 LED Support" |
| default n |
| select IOEXPANDER_LED_ENABLE |
| ---help--- |
| Enable driver LED functionality |
| |
| config SX1509_INT_NCALLBACKS |
| int "Max number of interrupt callbacks" |
| default 4 |
| depends on SX1509_INT_ENABLE |
| ---help--- |
| This is the maximum number of interrupt callbacks supported |
| |
| config SX1509_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_SX1509 |
| |
| config IOEXPANDER_AW9523B |
| bool "AW9523B I2C IO expander" |
| default n |
| depends on I2C |
| ---help--- |
| Enable support for the Awinic AW9523B IO Expander |
| |
| if IOEXPANDER_AW9523B |
| |
| config AW9523B_MULTIPLE |
| bool "Multiple AW9523B Devices" |
| default n |
| ---help--- |
| Can be defined to support multiple AW9523B devices on board. |
| |
| config AW9523B_LED_ENABLE |
| bool "Enable AW9523B LED Support" |
| default y |
| ---help--- |
| Enable driver LED functionality |
| |
| config AW9523B_INT_ENABLE |
| bool "Enable AW9523B Interrupt Support" |
| default n |
| select IOEXPANDER_INT_ENABLE |
| ---help--- |
| Enable driver interrupt functionality |
| |
| config AW9523B_INT_NCALLBACKS |
| int "Max number of interrupt callbacks" |
| default 4 |
| depends on AW9523B_INT_ENABLE |
| ---help--- |
| This is the maximum number of interrupt callbacks supported |
| |
| config AW9523B_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 AW9523B_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_AW9523B |
| |
| config IOEXPANDER_INT_ENABLE |
| bool |
| default n |
| ---help--- |
| This is the global INT supported flag for io expanders |
| |
| config IOEXPANDER_LED_ENABLE |
| bool |
| default n |
| select USERLED |
| ---help--- |
| This is the global LED 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_NPOLLWAITERS |
| int "Max number of polls" |
| default 1 |
| depends on DEV_GPIO |
| ---help--- |
| The maximum number of polls that can be registered with the GPIO |
| driver |
| |
| config DEV_GPIO_NSIGNALS |
| int "Max number of signals" |
| default 1 |
| depends on DEV_GPIO && !DISABLE_ALL_SIGNALS |
| ---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 |