mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-30 13:58:51 +09:00
![Peng Fan](/assets/img/avatar_default.png)
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>
46 lines
1.6 KiB
Plaintext
46 lines
1.6 KiB
Plaintext
config I2C_MUX
|
|
bool "Support I2C multiplexers"
|
|
depends on DM_I2C
|
|
help
|
|
This enables I2C buses to be multiplexed, so that you can select
|
|
one of several buses using some sort of control mechanism. The
|
|
bus select is handled automatically when that bus is accessed,
|
|
using a suitable I2C MUX driver.
|
|
|
|
config SPL_I2C_MUX
|
|
bool "Support I2C multiplexers on SPL"
|
|
depends on I2C_MUX
|
|
help
|
|
This enables I2C buses to be multiplexed, so that you can select
|
|
one of several buses using some sort of control mechanism. The
|
|
bus select is handled automatically when that bus is accessed,
|
|
using a suitable I2C MUX driver.
|
|
|
|
config I2C_ARB_GPIO_CHALLENGE
|
|
bool "GPIO-based I2C arbitration"
|
|
depends on I2C_MUX
|
|
help
|
|
If you say yes to this option, support will be included for an
|
|
I2C multimaster arbitration scheme using GPIOs and a challenge &
|
|
response mechanism where masters have to claim the bus by asserting
|
|
a GPIO.
|
|
|
|
config I2C_MUX_PCA954x
|
|
tristate "TI PCA954x I2C Mux/switches"
|
|
depends on I2C_MUX
|
|
help
|
|
If you say yes here you get support for the TI PCA954x
|
|
I2C mux/switch devices. It is x width I2C multiplexer which enables to
|
|
paritioning I2C bus and connect multiple devices with the same address
|
|
to the same I2C controller where driver handles proper routing to
|
|
target i2c device. PCA9544 and PCA9548 are supported.
|
|
|
|
config I2C_MUX_GPIO
|
|
tristate "GPIO-based I2C multiplexer"
|
|
depends on I2C_MUX && DM_GPIO
|
|
help
|
|
If you say yes to this option, support will be included for
|
|
a GPIO based I2C multiplexer. This driver provides access to
|
|
I2C busses connected through a MUX, which is controlled
|
|
through GPIO pins.
|