Commit Graph

33 Commits

Author SHA1 Message Date
dongjiuzhu1
1bad603fe7 drivers/gpio: save memory if dont support signal
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2024-09-15 11:29:55 +08:00
Michal Lenc
a1f5fd4e72 icjx: use iC-JX interrupt config instead of the general one
There might be multiple expanders, one with interrupt used and other
without. This commit fixes initial incorrect interrupt design by
introducing ICJX_INT_ENABLE config option.

Also fixes naming of ICJX_MULTIPLE option.

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
2024-05-09 23:43:56 +08:00
Bowen Wang
169f47beec rpmsg: make all the rpmsg services deponds on RPMSG
After decoupled the rpmsg and rptun, all the rpmsg service should
depends on the RPMSG.

Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com>
2024-02-18 04:09:34 -08:00
Michal Lenc
22110b3b83 ioexpander: add support for iC-JX expander
This commit adds basic support for iC-JX expander in SPI mode. The
expander is functional and supports both input and output pins. Further
expander functionalities (filtering, adc, interrupt support) are not
yet implemented.

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
2024-01-23 17:15:25 -03:00
raiden00pl
b565e28da3 Kconfigs: rename {Rpmsg|rpmsg} to RPMGS 2023-10-28 13:58:56 +08:00
Alan Carvalho de Assis
4b67e23049 mcp23008 Initial support 2023-09-08 01:33:12 +08:00
Michal Lenc
b005f844f5 ioexpander: add support for ISO1I813T expander
This commit adds basic support for electrically isolated 8 bit expander.
The expander communicates with the MCU via SPI interface. Both single
and multiple pin read are supported.

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
2023-08-29 17:35:59 +08:00
Michal Lenc
fa63ef69c9 ioexpander: add support for ISO1H812G expander
This commit adds support for galvanic isolated ISO1H812G SPI expander.
Both single pin and multiple pin writes are supported.

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
2023-08-29 10:31:40 +08:00
Michal Lenc
bf90361895 ioexpander: add support for pcf8575 expander
This adds support for 16 bit io expander pcf8575. The driver is basically
the same as for pcf8574 however it is for 16 bits instead of 8 bits. Since
pcf8575 and pcf8574 can be both used on the same i2c bus the driver for
pcf8575 is implemented in a different file to reduce the code size
and complexity and to have less if statements in the driver.

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
2023-08-03 06:52:27 -07:00
raiden00pl
dc608de144 drivers/ioexpander: add support for SX1509
SX1509 from Semtech is GPIO expander with LED driver and keypad engine.
For now, the keypad engine is not supported.
2023-06-27 14:44:00 -03:00
jturnsek
97b4900c59 Bug fixes and improved interrupt support for mcp23x17 driver 2023-03-06 08:40:33 +08:00
Xiang Xiao
9785d6606c openamp: Change the dependence from OPENAMP to RPTUN
since all rpmsg driver need the extension api exposed by rptun driver

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-04-05 10:05:41 +03:00
Xiang Xiao
bbf5511e3a arch/sim: Move the dummy ioe driver to drivers/ioexpender
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-01-09 11:06:06 +08:00
chao.an
3fceaf10a9 drivers/ioexpander: fix the kconfig warning
drivers/ioexpander/Kconfig:28:

warning:
config symbol 'IOEXPANDER_RPMSG_INT_NCALLBACKS' uses select, but is not boolean or tristate

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-01-07 09:37:07 +01:00
Xiang Xiao
8dc2ce7995 ioexpander/rpmsg: Select IOEXPANDER_INT_ENABLE instead depend on it
follow other similiar drivers

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-01-06 22:20:38 +01:00
zhuyanlin
e43e1423d6 driver/ioexpander: add ioe_rpmsg server and client
N/A

Signed-off-by: zhuyanlin <zhuyanlin1@xiaomi.com>
2021-12-16 01:29:24 -06:00
Alan C. Assis
4c74f46afe Add basic support for MCP23017 I/O Expander 2021-05-16 12:48:52 -05:00
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