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