2015-07-09 15:31:22 +02:00
|
|
|
#
|
|
|
|
# For a description of the syntax of this configuration file,
|
|
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
|
|
|
#
|
|
|
|
|
2016-06-24 17:43:49 +02:00
|
|
|
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
|
|
|
|
|
2021-12-08 05:08:25 +01:00
|
|
|
config IOEXPANDER_RPMSG
|
|
|
|
bool "IO expander rpmsg server and client"
|
2022-04-04 19:06:05 +02:00
|
|
|
depends on RPTUN
|
2021-12-08 05:08:25 +01:00
|
|
|
default n
|
2022-01-07 08:39:29 +01:00
|
|
|
select IOEXPANDER_INT_ENABLE
|
2021-12-08 05:08:25 +01:00
|
|
|
---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
|
|
|
|
|
2022-01-06 14:19:39 +01:00
|
|
|
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
|
|
|
|
|
2021-05-15 20:39:27 +02:00
|
|
|
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
|
|
|
|
|
2023-03-05 18:38:24 +01:00
|
|
|
config MCP23X17_INT_MIRROR
|
|
|
|
bool "Enable MCP23x17 Interrupt Mirror"
|
|
|
|
default n
|
|
|
|
select MCP23X17_INT_ENABLE
|
|
|
|
---help---
|
|
|
|
Enable driver interrupt mirror functionality
|
|
|
|
|
2021-05-15 20:39:27 +02:00
|
|
|
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
|
|
|
|
|
2015-07-09 15:31:22 +02:00
|
|
|
config IOEXPANDER_PCA9555
|
|
|
|
bool "PCA9555 I2C IO expander"
|
|
|
|
default n
|
2016-08-03 17:44:48 +02:00
|
|
|
depends on I2C
|
2015-07-09 15:31:22 +02:00
|
|
|
---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.
|
|
|
|
|
2015-11-17 14:09:43 +01:00
|
|
|
config PCA9555_INT_ENABLE
|
|
|
|
bool "Enable PCA9555 Interrupt Support"
|
|
|
|
default n
|
|
|
|
select IOEXPANDER_INT_ENABLE
|
2015-07-09 15:31:22 +02:00
|
|
|
---help---
|
2015-11-17 14:09:43 +01:00
|
|
|
Enable driver interrupt functionality
|
2015-07-09 15:31:22 +02:00
|
|
|
|
2016-07-31 19:09:02 +02:00
|
|
|
config PCA9555_INT_NCALLBACKS
|
|
|
|
int "Max number of interrupt callbacks"
|
|
|
|
default 4
|
2016-08-01 03:52:44 +02:00
|
|
|
depends on PCA9555_INT_ENABLE
|
2016-07-31 19:09:02 +02:00
|
|
|
---help---
|
|
|
|
This is the maximum number of interrupt callbacks supported
|
|
|
|
|
2016-08-01 19:10:11 +02:00
|
|
|
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).
|
|
|
|
|
2015-07-09 15:31:22 +02:00
|
|
|
endif # IOEXPANDER_PCA9555
|
2015-11-17 14:09:43 +01:00
|
|
|
|
2020-02-19 16:09:52 +01:00
|
|
|
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
|
|
|
|
|
2016-08-01 03:52:44 +02:00
|
|
|
config IOEXPANDER_TCA64XX
|
|
|
|
bool "TCA64XX I2C IO expander"
|
|
|
|
default n
|
2016-08-03 17:44:48 +02:00
|
|
|
depends on I2C && EXPERIMENTAL
|
2016-08-01 03:52:44 +02:00
|
|
|
---help---
|
2016-08-01 19:10:11 +02:00
|
|
|
Enable support for the TCA64XX IO Expander
|
2016-08-01 03:52:44 +02:00
|
|
|
|
|
|
|
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
|
|
|
|
|
2016-08-01 19:10:11 +02:00
|
|
|
config IOEXPANDER_PCF8574
|
|
|
|
bool "PCF8574 I2C IO expander"
|
|
|
|
default n
|
2016-08-03 17:44:48 +02:00
|
|
|
depends on I2C && EXPERIMENTAL
|
2016-08-01 19:10:11 +02:00
|
|
|
---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
|
|
|
|
|
2023-06-24 15:08:27 +02:00
|
|
|
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
|
|
|
|
|
2015-11-17 14:09:43 +01:00
|
|
|
config IOEXPANDER_INT_ENABLE
|
|
|
|
bool
|
2016-08-01 03:52:44 +02:00
|
|
|
default n
|
2015-11-17 14:09:43 +01:00
|
|
|
---help---
|
|
|
|
This is the global INT supported flag for io expanders
|
|
|
|
|
2023-06-24 15:08:27 +02:00
|
|
|
config IOEXPANDER_LED_ENABLE
|
|
|
|
bool
|
|
|
|
default n
|
|
|
|
select USERLED
|
|
|
|
---help---
|
|
|
|
This is the global LED supported flag for io expanders
|
|
|
|
|
2016-07-31 19:09:02 +02:00
|
|
|
config IOEXPANDER_NPINS
|
|
|
|
int "Number of pins"
|
|
|
|
default 16
|
|
|
|
---help---
|
|
|
|
Maximum number of pins supported per driver.
|
|
|
|
|
2015-11-17 14:09:43 +01:00
|
|
|
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.
|
2016-06-24 17:43:49 +02:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2018-11-08 15:29:22 +01:00
|
|
|
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
|
|
|
|
|
2016-08-01 16:43:10 +02:00
|
|
|
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.
|
|
|
|
|
2018-08-27 17:25:11 +02:00
|
|
|
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
|
|
|
|
|
2016-06-24 17:43:49 +02:00
|
|
|
endmenu # IO Expander/GPIO Support
|