# SPDX-License-Identifier: GPL-2.0-only
#
# Multiplexer [31mCONFIG_I2C[0m chip drivers configuration
#
menu "Multiplexer I2C Chip support"
depends on [31mCONFIG_I2C_MUX[0m
config [31mCONFIG_I2C_ARB_GPIO_CHALLENGE[0m
tristate "GPIO-based I2C arbitration"
depends on [31mCONFIG_GPIOLIB[0m || [31mCONFIG_COMPILE_TEST[0m
depends on [31mCONFIG_OF[0m || [31mCONFIG_COMPILE_TEST[0m
help
If you say yes to this option, support will be included for an
[31mCONFIG_I2C[0m 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 [31mCONFIG_I2C_MUX_GPIO[0m
tristate "GPIO-based I2C multiplexer"
depends on [31mCONFIG_GPIOLIB[0m
help
If you say yes to this option, support will be included for a
GPIO based [31mCONFIG_I2C[0m multiplexer. This driver provides access to
[31mCONFIG_I2C[0m 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 [31mCONFIG_I2C_MUX_GPMUX[0m
tristate "General Purpose I2C multiplexer"
select [31mCONFIG_MULTIPLEXER[0m
depends on [31mCONFIG_OF[0m || [31mCONFIG_COMPILE_TEST[0m
help
If you say yes to this option, support will be included for a
general purpose [31mCONFIG_I2C[0m multiplexer. This driver provides access to
[31mCONFIG_I2C[0m busses connected through a MUX, which in turn is controlled
by a MUX-controller from the MUX subsystem.
This driver can also be built as a module. If so, the module
will be called i2c-mux-gpmux.
config [31mCONFIG_I2C_MUX_LTC4306[0m
tristate "LTC LTC4306/5 I2C multiplexer"
select [31mCONFIG_GPIOLIB[0m
select [31mCONFIG_REGMAP_I2C[0m
help
If you say yes here you get support for the Analog Devices
LTC4306 or LTC4305 [31mCONFIG_I2C[0m mux/switch devices.
This driver can also be built as a module. If so, the module
will be called i2c-mux-ltc4306.
config [31mCONFIG_I2C_MUX_PCA9541[0m
tristate "NXP PCA9541 I2C Master Selector"
help
If you say yes here you get support for the NXP PCA9541
[31mCONFIG_I2C[0m Master Selector.
This driver can also be built as a module. If so, the module
will be called i2c-mux-pca9541.
config [31mCONFIG_I2C_MUX_PCA954x[0m
tristate "NXP PCA954x and PCA984x I2C Mux/switches"
depends on [31mCONFIG_GPIOLIB[0m || [31mCONFIG_COMPILE_TEST[0m
help
If you say yes here you get support for the NXP PCA954x
and PCA984x [31mCONFIG_I2C[0m mux/switch devices.
This driver can also be built as a module. If so, the module
will be called i2c-mux-pca954x.
config [31mCONFIG_I2C_MUX_PINCTRL[0m
tristate "pinctrl-based I2C multiplexer"
depends on [31mCONFIG_PINCTRL[0m
depends on [31mCONFIG_OF[0m || [31mCONFIG_COMPILE_TEST[0m
help
If you say yes to this option, support will be included for an [31mCONFIG_I2C[0m
multiplexer that uses the pinctrl subsystem, i.e. pin multiplexing.
This is useful for SoCs whose [31mCONFIG_I2C[0m 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 i2c-mux-pinctrl.
config [31mCONFIG_I2C_MUX_REG[0m
tristate "Register-based I2C multiplexer"
depends on [31mCONFIG_HAS_IOMEM[0m
help
If you say yes to this option, support will be included for a
register based [31mCONFIG_I2C[0m multiplexer. This driver provides access to
[31mCONFIG_I2C[0m 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 [31mCONFIG_I2C_DEMUX_PINCTRL[0m
tristate "pinctrl-based I2C demultiplexer"
depends on [31mCONFIG_PINCTRL[0m && [31mCONFIG_OF[0m
select [31mCONFIG_OF_DYNAMIC[0m
help
If you say yes to this option, support will be included for an [31mCONFIG_I2C[0m
demultiplexer that uses the pinctrl subsystem. This is useful if you
want to change the [31mCONFIG_I2C[0m master at run-time depending on features.
config [31mCONFIG_I2C_MUX_MLXCPLD[0m
tristate "Mellanox CPLD based I2C multiplexer"
help
If you say yes to this option, support will be included for a
CPLD based [31mCONFIG_I2C[0m multiplexer. This driver provides access to
[31mCONFIG_I2C[0m 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