i2c: Add generic I2C multiplexer using pinctrl API
This is useful for SoCs whose I2C module's signals can be routed to different sets of pins at run-time, using the pinctrl API. +-----+ +-----+ | dev | | dev | +------------------------+ +-----+ +-----+ | SoC | | | | /----|------+--------+ | +---+ +------+ | child bus A, on first set of pins | |I2C|---|Pinmux| | | +---+ +------+ | child bus B, on second set of pins | \----|------+--------+--------+ | | | | | +------------------------+ +-----+ +-----+ +-----+ | dev | | dev | | dev | +-----+ +-----+ +-----+ Signed-off-by:Stephen Warren <swarren@nvidia.com> Acked-by:
Linus Walleij <linus.walleij@linaro.org> Acked-by:
Rob Herring <rob.herring@calxeda.com> Signed-off-by:
Wolfram Sang <w.sang@pengutronix.de>
Showing
- Documentation/devicetree/bindings/i2c/i2c-mux-pinctrl.txt 93 additions, 0 deletionsDocumentation/devicetree/bindings/i2c/i2c-mux-pinctrl.txt
- drivers/i2c/muxes/Kconfig 12 additions, 0 deletionsdrivers/i2c/muxes/Kconfig
- drivers/i2c/muxes/Makefile 1 addition, 0 deletionsdrivers/i2c/muxes/Makefile
- drivers/i2c/muxes/i2c-mux-pinctrl.c 279 additions, 0 deletionsdrivers/i2c/muxes/i2c-mux-pinctrl.c
- include/linux/i2c-mux-pinctrl.h 41 additions, 0 deletionsinclude/linux/i2c-mux-pinctrl.h
Loading
Please register or sign in to comment