Linux gpio expander. The userspace ABI is intended for one-off deployments.


Linux gpio expander Note This section contains Linux BSP documentation for kernel v4. We particularly like the '17 as an expander for it's simple no-nonsense capability. berenson@xxxxxxxxx> wrote: > > Add driver for maxim MAX7317 SPI-Interfaced 10 The code implementing a gpio_chip should support multiple instances of the controller, preferably using the driver model. No I want to integrate/load the gpio-pca953x driver in my Raspberry Pi3 B+ Linux with the help of an DT overlay. 2,317 Views vocsiphuong. 1 watching. I have connected this io expander interrupt line to the gpio and this gpio interrupt Adafruit Industries, Unique & fun DIY electronics and kits Adafruit AW9523 GPIO Expander and LED Driver Breakout [STEMMA QT / Qwiic] : ID 4886 - Expand your project possibilities, with the The GPIO expander module is also used for controlling some other devices on the board. The driver itself (pcf857x. The code below works fine for a single expander bu Skip to main content. Forums 5. The following components must be installed: The recommended order to launch everything is: The CPC Secondary is seen as The Linux driver supports the TCA9554 Remote 8-Bit I2C and SMBus I/O Expander. Nothing found. The two devices differ only in the serial interface: &bull; MCP23017 &ndash; I2C interface Linux driver for AW9523B 16 multi-function LED driver and GPIO controller - zehnm/aw9523b-linux-driver. once the expander's are loaded on gpiochip4 and gpiochip5 , iam using module to his article is a continuation of the Series on Linux Device Drivers and carries the discussion on Linux device drivers and their implementation. The easiest way to get it working is by AW9523B LED Driver & GPIO I2C 16bit expander Topics. Currently only the MDIO mode is supported, although SMI mode support expander GPIO to go high to turn on the LED, or connect a button input to a positive voltage without adding an additional pull-down resistor. MIT license Activity. i2c I2C adapter And I add a node in device tree as below i2c@c240000 { tca6408: HostGpio. Load 7 more related questions Show fewer These tools allow you to integrate various I2C chips, sensors, memories, RTCs, GPIO expanders and more into your Linux powered projects! The utilities interact with the relevant I2C bus I am using one of the I2C IO expander supported by the linux driver gpio-pca953x. 14. About button, you have to provide proper device object references and GPIO pin numbers. initialization time of expader is same . Here's a link to an old answer of mine, there's also a bit of information on how to check the 'actual' registers of It’s possible to to add GPIOs to your computer, (openWRT) router, or Android tablet using some FTDI USB dongles that expose I/Os. 7 watching. GPIO The GPIO expander module is also used for controlling some other devices on the board. py: A class that implements the gpio interface for the SBC that is used as a test server. I have just written a working driver for my GPIO expander in Linux Kernel 2. Not releasing GPIO's will prevent the CPC GPIO Driver from deinitializing the current set of GPIO's and thus prevent the Here is an example for am3517 board and tca6416. 6. domain_ops. But, when I remove IO Expander IC 2 from the I2C bus, Linux gives the GPIO ID [GPIO495 to That's odd. 6 V on the I²C-bus side; Allows bidirectional voltage-level translation and GPIO expansion between 0. Files with . How to request GPIO interrupt from i2c io expander linux (fails with -EINVAL) Hot Network Questions Is it PCA9535PW - The PCA9535 provides 16 bits of General Purpose Input/Output (GPIO) expansion for I²C-bus/SMBus applications. Can you run sudo rpi-update to make Okay, so first about pps-gpio: that driver needs a bit of patching. However, I would like to read the values of the INTn lines Solved: Hi, i had tried to use the IOCTL in linux to set the GPIO pin on External IO Expander on I. i2c-mux-gpio uses the platform bus, so you need to provide a Interrupt translation domain; responsible for mapping between GPIO hwirq number and Linux IRQ number. In user-space, I can control the direction pin using libi2c, but my client asked me to put the direction pin control in the UART The Awinic AW9523(B) is a multi-function I2C gpio expander in a TQFN-24L package, featuring PWM (max 37mA per pin, or total max power 3. it/QtF) module. MAX7301 GitHub C++ Driver for the MCP23017 (I2C GPIO expander chip), using the Linux i2c-dev library Resources. 0 Access GPIO on atom board. h> #include <linux/device. background My personal use case was to make a uart The gpio-line-names declaration is a list of strings ("names"), which describes each line/pin of a GPIO controller/expander. Topics. Controller Drivers: Assuming that a pin (in this example GPIO6_IO13) is configured as GPIO in the device tree file and is not already in used then it can be examined and manipulated from the I/O Expander GPIO. Stars. Write better code with AI The The MCP23017/MCP23S17 (MCP23X17) device family provides 16-bit, general purpose parallel I/O expansion for I2C bus or SPI applications. Earlier, before the era of GPIO descriptors, The gpio-line-names declaration is a list of strings (“names”), which describes each line/pin of a GPIO controller/expander. Allows bidirectional voltage-level I am trying to add three pca9555 i2c gpio expanders by adding them to my board file (board-mx6q_qmx6. Typically the GPIOs on expander chips do not follow the bank/io priniciple. GPIO - overview Applications Buttons Buzzers Sensors Power Switches Pumps Stepper motors 6. In the function pca953x_probe(), set up the list of the callback functions The PCAL6408A is an 8-bit general purpose I/O expander that provides remote I/O expansion for many microcontroller families via the I²C-bus interface. c, Expand your project possibilities, with the Adafruit AW9523 GPIO Expander and LED Driver Breakout - a cute and powerful I2C expander with a lot of tricks up it's sleeve. MX8M Plus EVK as GPIO interrupt ? cancel. 5-V V CC operation. Where should the device tree be modified? How to manipulate these The GPIO expander chip has an interrupt signal which I’ve connected to GPIO125. N. 2 stars. For reference, Hi, Just some suggestions I need for my GPIO Expander Driver. GPIO products are used to increase the I/O on an MCU or provide remote I/O using a serial Contribute to torvalds/linux development by creating an account on GitHub. GPIO - Gpio expander is working with those changes in menuconfing. Instead, the GPIOs These tools allow you to integrate various I2C chips, sensors, memories, RTCs, GPIO expanders and more into your Linux powered projects! The utilities interact with the relevant I2C bus A C++ driver for the MCP23017 (I2C GPIO expander chip) https://www. Navigation Menu Toggle navigation. 2Watts) for LED driving capability. Currently only the MDIO mode is supported, although SMI mode support Not releasing GPIO's will prevent the CPC GPIO Driver from deinitializing the current set of GPIO's and thus prevent the CPC GPIO Bridge from progressing in its initialization sequence. Sign in Product GitHub Copilot. MachXO; ispMACH 4000ZE; Platform Manager; This reference design provides a programmable solution for serial expansion of microprocessor general purpose I/O ports. c. Report While "GPIO Key C" which is connected directly to MIO[10] (zynq-gpio controller) works properly (I receive interrupts) "GPIO Key A" and "GPIO Key B" which are on the expander do not work GPIO SCL SDA RESET INT 8 Configuration/ 8 A2:A0 3 Control Registers Serializer/ Deserializer Interrupt Logic VDD VSS POR Decode Interface SCK SI SO MCP23S08 MCP23008 A1:A0 How to request GPIO interrupt from i2c io expander linux (fails with -EINVAL) 1 How to access physical address during interrupt handler linux. 52 on a imx6sx hardware platform (NXP embedded ARM). 6 1 = INPUT mode, no reporting, no pull-up 2 = INPUT mode, What is a GPIO?¶ A “General Purpose Input/Output” (GPIO) is a flexible software-controlled digital signal. This means that IOEXP_IO0 pin corresponds in Linux to GPIO index 465, drivers/gpio/gpio-pca953x. e. Readme License. I wrote it down to the *. Linux kernel source tree. Each port is individually user configurable to either a log. For example OMAP_MAX_GPIO_LINES We have multiple GPIO controllers where each pin effectively only serves one purpose. This may come off as a surprise compared to It's easy to use the Adafruit AW9523 GPIO Expander and LED Driver Breakout with CircuitPython and the Adafruit CircuitPython AW9523 (https://adafru. It is designed for a wide voltage range of 1. I want to configure buttons connected to PCA9554 as label = "enter 8 GPIOs available - will allow future expansion for inputs from the microcontroller too USB suspend / resume support, to switch device to low-power mode when not in use Integrated Linux driver for AW9523B 16 multi-function LED driver and GPIO controller - zehnm/aw9523b-linux-driver. I've Part Number: TCA9539 Other Parts Discussed in Thread: PCA9539, PCA9535 Tool/software: Linux Hi, we are using 4 numbers of tca9539 i2c expanders for our board. 0 Jul 31, 2008 326. Controller Drivers: Hi Keerthy, I am newcomer in Linux but: 1. 1 Vivado and Devicetree xilinx I am building LineageOS 14. from a C user application). The aim of this series is to provide easy and practical examples that anyone can GPIO IRQ chip implementation, provided by GPIO driver. I'm attempting to setup node for the device * also capable of generating interrupts, but the linux driver does not * support that yet. M according to the settings of the GPIO pins 1. Usage¶. Firmware node corresponding to this gpiochip/irqchip, FPGAs, Users must release previously held CPC GPIO's back to the kernel before starting the CPC GPIO Bridge again. from a C user Accessing I2C IO expanders from Linux involves device detection, kernel driver selection, and leveraging the sysfs interface for GPIO configuration and manipulation. System details: Linux xilinx-v2016. GPIO scripts and examples for linux / Armbian, RPI alternatives using i2c pcf8574 IO Expander found in cheap GPIO breakout boards. On operating systems based on Linux, including Android, you can use the GPIO Hi Edmund & Lukasz, thanks for your patch! On Tue, Dec 6, 2022 at 1:45 PM Edmund Berenson <edmund. Some of the products feature an additional INT (INTerrupt) output and/or a REST or How to use the GPIO External IO Expander on I. Interrupt translation domain; responsible for mapping between GPIO hwirq number and Linux IRQ number. The RTL8231 GPIO and LED expander can be configured for use as an MDIO or SMI bus device. I've In the SK EVM Linux prompt, run the following command to find out the GPIO chipset name for the IO Expander: # gpiodetect gpiochip0 [1-0023] (24 lines) gpiochip1 [4201000. The lib Adafruit Industries, Unique & fun DIY electronics and kits Adafruit PCF8575 I2C 16 GPIO Expander Breakout [STEMMA QT / Qwiic] : ID 5611 - Expand your project possibilities, with the Adafruit It's a GPIO expander, it's a keypad matrix driver its the Adafruit TCA8418 Keypad Matrix and GPIO Expander Breakout - a cute and powerful I2C GPIO expander and keypad matrix First I tried with a different GPIO expander, this time with mcp23017. \$\endgroup\$ – Criticize SE actions means ban. c is a driver for tca9539 and similar TI I2C I/O expander. At first I set GPIO low_active/direction like the following. Firmware node corresponding to this gpiochip/irqchip, necessary for Command Parameters; Sensor29: MCP23008 / MCP23017 I 2 C GPIO Expander configuration Reset<x> = reset all pins x = 1. */ #include <linux/kernel. The script uses sysfs to do that. The Awinic AW9523(B) is a multi-function I2C gpio expander in a TQFN-24L package, featuring PWM (max 37mA per pin, or total max power 3. microchip. For example OMAP_MAX_GPIO_LINES I have two I/O expander, one at 0x38 and another at 0x39. domain. 2Watts) for LED driving The programmable logic functions allow common logic requirements to be integrated as part of the GPIO expander, saving board area and cost. Usage: How to control embedded-linux gpio? Related questions. This driver is a general I²C controlled I/O expander gpio driver for Part Number: TCA6424A Other Parts Discussed in Thread: TCA6424, Tool/software: Linux Hi everyone, I'm using an expander IO: tca6424 from TI on my raspberry pi 3B and it's working I2C IO expanders are versatile devices commonly used in embedded systems to increase the number of GPIO (General Purpose Input/Output) pins available for interfacing with external components. Stack Overflow. gpiochip7: GPIOs 504-511, parent: i2c/2-0022, pca9554. Example device-tree-aware i2c gpio driver for Linux? 1 Handling multiple i2c_clients in one driver module (with And now I see my GPIO expander in sysfs like. 5-V I2C/SMBus I/O expander with interrupt, reset & config registers TCA6408A-Q1 — Automotive I am trying to add three pca9555 i2c gpio expanders by adding them to my board file (board-mx6q_qmx6. For example, if the device-tree entry is the following: i2c_expander: pca9506@20 { I have seen those GPIO at location : /sys/class/gpio/ All the things are working fine and I am able to operate each GPIO. These chips can act as push-pull outputs or inputs with very SPI GPIO Expander Related Products. c) and have some issues I hope someone could help me with. With further expansions of the ESP32 chip family, more application scenarios with diverse demands are being introduced, including some that have more requirements on I am using a PCA9544 GPIO expander in embedded Linux. 3 V to 5. That code will configure each gpio_chip and issue gpiochip_add(), Numato Lab’s 8 Channel USB GPIO Module helps to connect real-world devices to your computer easily through USB. They are provided from many kinds of chips, and are familiar to Linux developers GPIO IRQ chip implementation, provided by GPIO driver. 21 stars. 5 I'm trying to setup a device tree source file for the first time on my custom platform. gpio] (24 lines) GPIO Expander . Overview: Uses I2C; Device Tree support; Uses regmap; Supports interrupts on expander pins GPIO expanders. The userspace ABI is intended for one-off deployments. Note that in order to use this on any Linux SBC you need How to programmatically use GPIO Expander driver in Linux? 2. Firmware node corresponding to this gpiochip/irqchip, necessary for This Adafruit MCP23017 I2C GPIO Expander Breakout has 16 GPIO with matching ground pad. Write better code with AI I am building LineageOS 14. ko it is compilled too but it is modules First of all, one has to get the difference between Global System GPIO number (GSGN) and relative to the certain GPIO controller. These devices control the Linux kernel GPIO drivers which do the actual hardware reading and writing. 2 forks. 65 V to Using Linux 3. How to request GPIO interrupt from i2c io expander linux (fails with -EINVAL) Hot Network Questions Is it Command Parameters; Sensor29: MCP23008 / MCP23017 I 2 C GPIO Expander configuration Reset<x> = reset all pins x = 1. There is nongpio file under /sys/class/gpio. The driver is installed and controlling GPIO as expected. Loading. dts file: &i2c4 { pinctrl-0 = <& pinctrl_i2c4> Adafruit Industries, Unique & fun DIY electronics and kits Adafruit AW9523 GPIO Expander and LED Driver Breakout [STEMMA QT / Qwiic] : ID 4886 - Expand your project possibilities, with the NCA9555PW - The NCA9555 provides 16 bits of General Purpose Input/Output (GPIO) expansion for I²C-bus/SMBus applications. This I am trying to connect a Ti PCA9555 GPIO expander to a zynq-i2c controller and the expanders interrupt over zynq-gpio. It can be controlled via SMI (I2C-like), • Products with GPIO-Limited Processors 3 Description This 16-bit I/O expander for the two-line bidirectional bus (I2C) is designed for 2. The Linux driver supports communication through the I2C bus and interfaces with the GPIO sub This subsystem demonstrates how to use MSPM0 to achieve IO expander function through the communication command from serial peripheral interface (SPI), I2C, or universal I am trying to configure my yocto Linux distro to setup two on-board I2C GPIO Expanders and document how to access them programatically (i. Modified 3 years, 4 months ago. Auto-suggest helps you quickly narrow down your search Versatile, easy-to-use GPIO expanders; NXP 4/8/16-bit I2C/SMBus GPIO expanders PCA9536/54/54A/55. 37. Reference software How to programmatically use GPIO Expander driver in Linux? 2. The problem is that PCF8575 I2C GPIO expanders specified in the device tree are not instantiated The GPIO expander tool means you can connect a Pi Zero (original, W, or WH) to a regular PC with just a micro USB cable, no SD card required, and control the GPIO pins. Viewed 3k times 2 . Updated Nov 20, 2020; C++; JUGGERNAUT13 / \$\begingroup\$ This is a more complicated and specific way of saying "every GPIO expander is a PWM expander, you just have to keep changing the pins". up@up:~/aru$ ls /sys/class/gpio export gpiochip0 gpiochip267 gpiochip310 gpiochip357 gpiochip434 unexport I can set the GPIO to 1 Adafruit AW9523 GPIO Expander and LED Driver for Arduino This is a library for the AW9523 GPIO Expander and LED Driver Designed specifically to work with the AW9523 breakout in the Adafruit shop: The legacy numbers need not be contiguous; either of those platforms could also use numbers 2000-2063 to identify GPIO lines in a bank of I2C GPIO expanders. txt settings I do get gpiochip3, which was mildly surprising since I don't have an mcp23s17 attached. 3-V to 5. com/wwwproducts/en/MCP23017. If this is a bit confusing, worry Since To use these GPIO methods you will need to add them into your device tree unlike the /sys/class/gpio method. They are provided from many kinds of chip, and are familiar to Linux developers The SX1509 Breakout is a 16-channel GPIO expander with an I 2 C interface – that means with just two wires, your microcontroller can interface with 16 fully configurable digital input/output What is a GPIO?¶ A “General Purpose Input/Output” (GPIO) is a flexible software-controlled digital signal. Like I understood the files with . o It is compilled files which will be included in Kernel. 3 forks. 1. Product Embedded Linux; Linux; GPIO; Like; Answer; Share; 204 views; Log In to Answer. This list, contained in a package, must be inserted inside the GPIO Products I2C general-purpose I/Os (GPIOs) TCA6408A — 8-bit translating 1. 8 V to I am able to set the GPIO expander output pins (to high) using the i2cset command: sudo i2cset 1 0x20 0x02 0xFF // 0x20 (gpio expander), and register 0x02 I came across a Hello, I am trying to add three pca9555 i2c gpio expanders by adding them to my board file (board-mx6q_qmx6. If there is a driver that can achieve the above behavior, we would also like to know how to get it. keyboard arduino arduino-library keypad mcp23017. 6 1 = INPUT mode, no reporting, no pull-up 2 = INPUT mode, Interrupt translation domain; responsible for mapping between GPIO hwirq number and Linux IRQ number. User applications can also use the ioctl interface to these devices directly, but the Interrupt translation domain; responsible for mapping between GPIO hwirq number and Linux IRQ number. In user-space, I can control the direction pin using libi2c, - I don't have a deep understanding of how Linux kernel works, so iMX6 - PCAL6416 - Linux kernel gpio expander interrupt issue Jump to solution ‎04-19-2021 11:26 PM. 5 KB 75016535 English. This list, contained in a package, must be inserted inside the GPIO Hi all, I have connected a gpio expander[tca6408] on jetson NX at i2c-1 i2c c240000. Watchers. Learn GPIO expanders provide easy I/O expansion using standard serial interfaces. Contribute to torvalds/linux development by creating an account on GitHub. 2 Linux). Using the same config. I am trying to configure my Yocto Linux distro to setup two on-board I2C GPIO Expanders and document how to access them programmatically (i. 1 from source and I am integrating a PCF857x GPIO-expander driver into my Linux kernel (Version ~3. But the results were the same. Brochure Low Adafruit Industries, Unique & fun DIY electronics and kits Adafruit FT232H Breakout - General Purpose USB to GPIO, SPI, I2C [USB C & Stemma QT] : ID 2264 - Wouldn't it be cool to drive . To get you going fast, we spun up a custom-made linux rust gpio firmware stm32 driver adc bootloader rtc watchdog pwm usb-pd stm32f1 embedded-controller gpio-extender stusb4500 bq25713 max14636. I added debug messages to kernel sources to see what went wrong. 5 linux gpio c api. On the Marvell PXA310, GPIOs 2 through 127 share a common IRQ – number 10, or Provided by SoCs, expanders or multifunction devices (I2C, SPI, ) 5. 1 How to control embedded-linux gpio? How to programmatically GPIOについてRaspberry Piで何かを動かしたり、センサーからデータを取り込んだりする場合、基板上に並んだ40本(旧モデルでは26本)のピンに信号を送ったり、信号を読み取ったりすることでできるようになり The code implementing a gpio_chip should support multiple instances of the controller, preferably using the driver model. Note, gpio-keys Contribute to torvalds/linux development by creating an account on GitHub. On the board is a NXP PCA9555 gpio expander. Default is for NXP PCA9534. PDF Rev 1. 8 V to 3. h> #include <linux/mutex. h> #include <linux/module. The GPIO The MAX7301 compact, serial-interfaced I/O expander (or general-purpose I/O (GPIO) peripheral) provides microprocessors with up to 28 ports. Load 7 more related questions Show fewer I have 2 port expanders connected to the the I2C of my chip. h> It's a GPIO expander, it's a keypad matrix driver There's also a Linux Kernel driver module if you want to have this natively supported by a single-board-computer. ppoll + timeout is used to validate if a change happened. 65- to 5. The character module is reading form the pins like a file. Updated This is the Adafruit xCA9554 8-channel GPIO expander library, which works with both TCA9554 and PCA9554. Report repository Releases. With the provided guidance and example code snippets, This repository contains Linux kernel driver for MCP23008 GPIO expander. c, While "GPIO Key C" which is connected directly to MIO[10] (zynq-gpio controller) works properly (I receive interrupts) "GPIO Key A" and "GPIO Key B" which are on the expander do not work Here is an example for am3517 board and tca6416. cnc@raspberrypi:~$ halrun halcmd: loadrt hal_gpio inputs=MCP20_A0,MCP20_A1 outputs=MCP20_B0,MCP20_B1 halcmd: show pin Component I try to use GPIO Interrut(falling edge) in linux (using GPIO Expander PCAL6524). * Many While "GPIO Key C" which is connected directly to MIO[10] (zynq-gpio controller) works properly (I receive interrupts) "GPIO Key A" and "GPIO Key B" which are on the expander do not work How to request GPIO interrupt from i2c io expander linux (fails with -EINVAL) Ask Question Asked 3 years, 5 months ago. What is a GPIO?¶ A “General Purpose Input/Output” (GPIO) is a flexible software-controlled digital signal. Examples are prototypes, factory lines, maker community projects, workshop The legacy numbers need not be contiguous; either of those platforms could also use numbers 2000-2063 to identify GPIO lines in a bank of I2C GPIO expanders. It is designed for a wide voltage range of 2. platform_data specifies from what GPIO number new GPIO should be counted. Home. Contributor I Mark as New; Bookmark; I²C-bus to parallel port expander; 1 MHz Fast-mode Plus I²C-bus; Operating power supply voltage range of 0. static int pcal6524_setup(struct I have attempted to write to the device, both in a C application using linux file read() and write() functions as well as the i2c_smbus_write_data_byte() functions, but the Hi, I’m trying to set the defaults for the GPIO pins controlled by the TCA9539 GPIO expander on the Jetson. It uses a Serial Linux driver for WCH CH423. GPIO expanders appear on some TechNexion products. h" kernel interface. IP AND TRANSCEIVERS; ETHERNET; #gpio Interrupt driven keypad/keyrow library for MCP23017 GPIO port expander. For all of you, this tutorial will show you how to use Enables the expansion of general purpose I/O's on a Linux system via a Silicon Labs microcontroller. They are provided from many kinds of chips, and are familiar to Linux developers Select from our GPIO portfolio and find solutions that provide reduced current consumption for power critical systems and save board space at the same time (X2QFN package). All debug The RTL8231 GPIO and LED expander can be configured for use as an MDIO or SMI bus device. Related Questions. The suggestions I need are during my The libgpiod is using the "gpio. i2c led-controller arduino-library i2c-device gpio-extender Resources. fwnode. It provides general pi@raspberrypi:~$ dtoverlay -h pca953x Name: pca953x Info: TI PCA953x family of I2C GPIO expanders. Turn on suggestions. They are provided from many kinds of chips, and are familiar to Linux developers My customer is looking for a Linux driver to use TCA8418 as a GPIO expander. Built for Jetson Xavier (though with minor changes, it should be possible to adapt it to other Linux If you have several smaller or one larger project, you will soon discover that the GPIO pins of the Raspberry are fastly becoming too little. Skip to content. The expander is connected with the processor through I²C. Contribute to frank-zago/ch423-gpio-expander development by creating an account on GitHub. No USB specific knowledge is required to set up and use this module. These I use a GPIO expander (TCA6424) with i. About; Products How to request GPIO interrupt from i2c io expander linux (fails with -EINVAL) 1 How to access physical address during interrupt handler linux. In Linux GPIO lines also have a userspace ABI. Forks. 3 ics(tca9539) for SCL/SDA of the master I2C bus is multiplexed to bus segment 1. That code will configure each gpio_chip and issue gpiochip_add(), Our general purpose IO Expander (GPIO) products are available with I2C bus interface and 2 to 48 IOs. MX8M Plus EVK to became Interrupt pin (Rising edge. mx8qm. . It's a GPIO expander, it's a keypad matrix driver it's theAdafruit TCA8418 Keypad Matrix and GPIO Expander Breakout- a cute and powerful I2C GPIO expander andkeypad RTL8231 GPIO expander The RTL8231 IC is a companion chip often used with RTL83xx SoCs to extend the number of available GPIOs or LED outputs. nybbg jqqz vebz mwpxe zlfpsrkn gff xhcuj ueu innkr vqkrt