Lines Matching +full:i2c +full:- +full:gpio
1 Kernel driver i2c-mux-gpio
6 -----------
8 i2c-mux-gpio is an i2c mux driver providing access to I2C bus segments
9 from a master I2C bus and a hardware MUX controlled through GPIO pins.
13 ---------- ---------- Bus segment 1 - - - - -
14 | | SCL/SDA | |-------------- | |
15 | |------------| |
17 | Linux | GPIO 1..N | MUX |--------------- Devices
18 | |------------| | | |
20 | | | |---------------| |
21 ---------- ---------- - - - - -
23 SCL/SDA of the master I2C bus is multiplexed to bus segment 1..M
24 according to the settings of the GPIO pins 1..N.
27 -----
29 i2c-mux-gpio uses the platform bus, so you need to provide a struct
31 i2c_mux_gpio_platform_data with the I2C adapter number of the master
32 bus, the number of bus segments to create and the GPIO pins used
33 to control it. See include/linux/platform_data/i2c-mux-gpio.h for details.
36 controlled through 3 GPIO pins:
38 #include <linux/platform_data/i2c-mux-gpio.h>
60 .name = "i2c-mux-gpio",
67 If you don't know the absolute GPIO pin numbers at registration time,
68 you can instead provide a chip name (.chip_name) and relative GPIO pin
69 numbers, and the i2c-mux-gpio driver will do the work for you,
70 including deferred probing if the GPIO chip isn't immediately
74 -------------------
76 When registering your i2c-mux-gpio device, you should pass the number
77 of any GPIO pin it uses as the device ID. This guarantees that every
83 GPIO pin numbers at registration time, this is even the only option.