i2c: muxes: add i2c gpio multiplexer driver
authorPeng Fan <peng.fan@nxp.com>
Mon, 14 Aug 2017 10:00:05 +0000 (18:00 +0800)
committerHeiko Schocher <hs@denx.de>
Wed, 23 Aug 2017 05:04:56 +0000 (07:04 +0200)
commita430556ecb630d26880b34b914b6ec29f5454d01
treedea088bf097f32bc61169fd812eb49c9f5631896
parent4fadcaf097887d94c909fd924864f435c69c9182
i2c: muxes: add i2c gpio multiplexer driver

Add an i2c mux driver providing access to i2c bus segments using a
hardware MUX sitting on a master bus and controlled through gpio pins.

E.G. something like:

         ----------              ----------  Bus segment 1   - - - - -
        |          | SCL/SDA    |          |-------------- |           |
        |          |------------|          |
        |          |            |          | Bus segment 2 |           |
        |  Linux   | GPIO 1..N  |   MUX    |---------------   Devices
        |          |------------|          |               |           |
        |          |            |          | Bus segment M
        |          |            |          |---------------|           |
         ----------              ----------                  - - - - -

SCL/SDA of the master I2C bus is multiplexed to bus segment 1..M
according to the settings of the GPIO pins 1..N.

Note commit log from kernel
commit 92ed1a76("i2c: Add generic I2C multiplexer using GPIO API")

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Tested-by: Peng Fan <peng.fan@nxp.com> (i.MX6QP-Sabreauto)
Cc: Heiko Schocher <hs@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Simon Glass <sjg@chromium.org>
drivers/i2c/muxes/Kconfig
drivers/i2c/muxes/Makefile
drivers/i2c/muxes/i2c-mux-gpio.c [new file with mode: 0644]