forked from Minki/linux
c02b7bf532
This driver allows I2C routing controlled through CPLD select registers on a wide range of Mellanox systems (CPLD Lattice device). MUX selection is provided by digital and analog HW. Analog part is not under SW control. Digital part is under CPLD control (channel selection/de-selection). Connectivity schema. .---. .-------------. | l | | |-- i2cx1 -- i2cx8 | i |-- i2cn --+--| mlxcpld mux | | n | | | |-- i2cy1 -- i2cy8 | u | | '-------------' | x | | | '---' '---------' i2c-mux-mlxpcld does not necessarily require i2c-mlxcpld. It can be used along with another bus driver, and still control i2c routing through CPLD mux selection, in case the system is equipped with CPLD capable of mux selection control. The Kconfig currently controlling compilation of this code is: drivers/i2c/muxes/Kconfig:config I2C_MUX_MLXCPLD Signed-off-by: Michael Shych <michaelsh@mellanox.com> Signed-off-by: Vadim Pasternak <vadimp@mellanox.com> Reviewed-by: Jiri Pirko <jiri@mellanox.com> Acked-by: Peter Rosin <peda@axentia.se> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
96 lines
3.0 KiB
Plaintext
96 lines
3.0 KiB
Plaintext
#
|
|
# Multiplexer I2C chip drivers configuration
|
|
#
|
|
|
|
menu "Multiplexer I2C Chip support"
|
|
depends on I2C_MUX
|
|
|
|
config I2C_ARB_GPIO_CHALLENGE
|
|
tristate "GPIO-based I2C arbitration"
|
|
depends on GPIOLIB || COMPILE_TEST
|
|
depends on OF
|
|
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.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called i2c-arb-gpio-challenge.
|
|
|
|
config I2C_MUX_GPIO
|
|
tristate "GPIO-based I2C multiplexer"
|
|
depends on GPIOLIB
|
|
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.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called i2c-mux-gpio.
|
|
|
|
config I2C_MUX_PCA9541
|
|
tristate "NXP PCA9541 I2C Master Selector"
|
|
help
|
|
If you say yes here you get support for the NXP PCA9541
|
|
I2C Master Selector.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called i2c-mux-pca9541.
|
|
|
|
config I2C_MUX_PCA954x
|
|
tristate "Philips PCA954x I2C Mux/switches"
|
|
depends on GPIOLIB || COMPILE_TEST
|
|
help
|
|
If you say yes here you get support for the Philips PCA954x
|
|
I2C mux/switch devices.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called i2c-mux-pca954x.
|
|
|
|
config I2C_MUX_PINCTRL
|
|
tristate "pinctrl-based I2C multiplexer"
|
|
depends on PINCTRL
|
|
help
|
|
If you say yes to this option, support will be included for an I2C
|
|
multiplexer that uses the pinctrl subsystem, i.e. pin multiplexing.
|
|
This is useful for SoCs whose I2C module's signals can be routed to
|
|
different sets of pins at run-time.
|
|
|
|
This driver can also be built as a module. If so, the module will be
|
|
called pinctrl-i2cmux.
|
|
|
|
config I2C_MUX_REG
|
|
tristate "Register-based I2C multiplexer"
|
|
help
|
|
If you say yes to this option, support will be included for a
|
|
register based I2C multiplexer. This driver provides access to
|
|
I2C busses connected through a MUX, which is controlled
|
|
by a single register.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called i2c-mux-reg.
|
|
|
|
config I2C_DEMUX_PINCTRL
|
|
tristate "pinctrl-based I2C demultiplexer"
|
|
depends on PINCTRL && OF
|
|
select OF_DYNAMIC
|
|
help
|
|
If you say yes to this option, support will be included for an I2C
|
|
demultiplexer that uses the pinctrl subsystem. This is useful if you
|
|
want to change the I2C master at run-time depending on features.
|
|
|
|
config I2C_MUX_MLXCPLD
|
|
tristate "Mellanox CPLD based I2C multiplexer"
|
|
help
|
|
If you say yes to this option, support will be included for a
|
|
CPLD based I2C multiplexer. This driver provides access to
|
|
I2C busses connected through a MUX, which is controlled
|
|
by a CPLD register.
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
will be called i2c-mux-mlxcpld.
|
|
|
|
endmenu
|