Commit Graph

16 Commits

Author SHA1 Message Date
Nicholas Chin 0f284c3025 driver/ioexpander: adds driver for the PCA9538 I2C ioexpander 2020-02-19 11:53:08 -06:00
Xiang Xiao 71a6244198 drivers/ioexpander: Support multiple registrations of GPIO signal events. 2018-11-08 08:29:22 -06:00
zhuyanlin 459d9f2851 Squashed commit of the following:
driver/ioexpander:  Add gpio_pin_unregister function to GPIO driver
  driver/ioexpander:  Add pinset struct to GPIO driver for interrupt pins larger than 64
  driver/ioexpander:  Initialize pintype/inttype when registering ioexpander device
  driver/ioexpander:  Add SETPINTYPE ioctl command to the GPIO driver
2018-08-27 09:25:11 -06:00
Sebastien Lorquet 1182702b80 drivers/ioexpander: The IRQ subsystem now supports passing a void * parameter to IRQ handlers. Use that method to support multiple pc9555 devices, by passing a pointer to the device to the board defined irq handler. Now the CONFIG_ for multiple PCA devices just allocates device structures dynamically instead of statically when not enabled.
The same interrupt handler is entered with the device structure parameter in all situations,
multiple or single PCA. One should still be careful if multiple PCA devices share the same IRQ.
2017-10-19 08:10:40 -06:00
Gregory Nutt 778a8131bf SIM: Add a simulated I/O Expander driver 2016-08-03 09:44:48 -06:00
Gregory Nutt d47aa75669 Add PCF8574 I/O Expander driver. Some cleanup also of other expander drivers. 2016-08-01 11:10:11 -06:00
Gregory Nutt 6090f69bfd Add a GPIO lower-half driver that can be used to register a GPIO character driver for accessing pins on an I/O expander. 2016-08-01 08:43:10 -06:00
Gregory Nutt c0b83cb4b4 First (untested) cut at a TCA64XX I/O Expander driver leverages from Project Ara 2016-07-31 19:52:44 -06:00
Gregory Nutt 5f9ee79298 I/O Expander: Remove hard-coded PCA9555 fields from ioexpander.h definitons. Add support for an attach() method that may be used when any subset of pin interrupts occur.
PCA9555 Driver:  Replace the signalling logic with a simple callback using the new definitons of ioexpander.h.  This repartitioning of functionality is necessary because (1) the I/O expander driver is the lower-lower part of any driver that uses GPIOs (include the GPIO driver itself) and should not be interacting directly with the much higher level application layer.  And (2) in order to be compatible with the GPIO driver (and any arbitrary upper half driver), the PCA9555 should not directly signal, but should call back into the upper half.  The upper half driver that interacts directly with the application is the appropriate place to be generating signal.
2016-07-31 11:09:47 -06:00
Michael Spahlinger 3d5e690977 Shadow-Mode: The output- and configuration registers of the IO-Expander
are held in the microcontrollers memory and only written to the IO-Expander.
 This reduces bus traffic and is more error-proof than the normal read-
 modify-write operation.

 Retry Mode: If enabled and an error occurs while writing to the IO-Expander the
 current transmission is automatically repeated once.
2016-06-27 08:11:54 -06:00
Gregory Nutt ae19ca45e0 drivrs/ioexpander: Add support for a very simple GPIO drivers. It supports only pre-conrigured input and output pins and only basic input and output operations. 2016-06-24 09:43:49 -06:00
Gregory Nutt f74fbecf52 PCA9555 I/O expander: Fix an error in addressing noted by Stefan Kolb; convert to use I2C_TRANSFER instead of I2C_WRITEREAD which is not thread safe 2016-01-26 07:59:36 -06:00
Gregory Nutt 8ab93fdf98 Change name of drivers/discrete back to drivers/ioexpander 2015-12-15 08:40:34 -06:00
Gregory Nutt cbb78071b3 Rename ioexpander/ directories to discrete/ 2015-11-01 13:14:48 -06:00
Sebastien Lorquet 9c9b6162d8 PCA9555: Extend interface to include methods for reading more than one bit at a time. From Sébastien Lorquet. 2015-07-10 10:33:07 -06:00
Sebastien Lorquet b947002d6a This commit adds:
-headers in nuttx/ioexpander to define the "generic" ioexpander framework
-files in drivers/ioexpander for the implementation of the NXP PCA9555 framework
-bindings in drivers/Kconfig and drivers/Makefile

From Sebastien Lorquet
2015-07-09 08:27:07 -06:00