Lines Matching +full:gpio +full:- +full:mux
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 ---------- ---------- - - - - -
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
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.
35 E.G. something like this for a MUX providing 4 bus segments
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.