Commit Graph

12 Commits

Author SHA1 Message Date
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 91b1006d42 I/O Expander Interface: Add argument to interrupt callback. Add a method to detach the interrupt. 2016-08-01 07:26:04 -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 cea3854dea PCA5555: Add logic to make the driver thread safe. Problem noted by Stefan Kolb. 2016-02-03 12:39:11 -06:00
Gregory Nutt 10000841a8 The I2C_TRANSFER method is no longer optional 2016-01-31 14:16:05 -06:00
Gregory Nutt 3a781a2d3f Remove I2C slave methods from I2C master interface; rename i2c_dev_s to i2c_master_s. 2016-01-30 08:36:47 -06:00
Gregory Nutt ceb415204e Move include/nuttx/i2c.h to include/nuttx/i2c/i2c_master.h 2016-01-30 08:00:16 -06:00
Gregory Nutt d4a53ee131 I2C: Eliminate the I2C_WRITEREAD method 2016-01-26 10:26:16 -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 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