0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # Multiplexer I2C chip drivers configuration
0004 #
0005
0006 menu "Multiplexer I2C Chip support"
0007 depends on I2C_MUX
0008
0009 config I2C_ARB_GPIO_CHALLENGE
0010 tristate "GPIO-based I2C arbitration"
0011 depends on GPIOLIB || COMPILE_TEST
0012 depends on OF || COMPILE_TEST
0013 help
0014 If you say yes to this option, support will be included for an
0015 I2C multimaster arbitration scheme using GPIOs and a challenge &
0016 response mechanism where masters have to claim the bus by asserting
0017 a GPIO.
0018
0019 This driver can also be built as a module. If so, the module
0020 will be called i2c-arb-gpio-challenge.
0021
0022 config I2C_MUX_GPIO
0023 tristate "GPIO-based I2C multiplexer"
0024 depends on GPIOLIB
0025 help
0026 If you say yes to this option, support will be included for a
0027 GPIO based I2C multiplexer. This driver provides access to
0028 I2C busses connected through a MUX, which is controlled
0029 through GPIO pins.
0030
0031 This driver can also be built as a module. If so, the module
0032 will be called i2c-mux-gpio.
0033
0034 config I2C_MUX_GPMUX
0035 tristate "General Purpose I2C multiplexer"
0036 select MULTIPLEXER
0037 depends on OF || COMPILE_TEST
0038 help
0039 If you say yes to this option, support will be included for a
0040 general purpose I2C multiplexer. This driver provides access to
0041 I2C busses connected through a MUX, which in turn is controlled
0042 by a MUX-controller from the MUX subsystem.
0043
0044 This driver can also be built as a module. If so, the module
0045 will be called i2c-mux-gpmux.
0046
0047 config I2C_MUX_LTC4306
0048 tristate "LTC LTC4306/5 I2C multiplexer"
0049 select GPIOLIB
0050 select REGMAP_I2C
0051 help
0052 If you say yes here you get support for the Analog Devices
0053 LTC4306 or LTC4305 I2C mux/switch devices.
0054
0055 This driver can also be built as a module. If so, the module
0056 will be called i2c-mux-ltc4306.
0057
0058 config I2C_MUX_PCA9541
0059 tristate "NXP PCA9541 I2C Master Selector"
0060 help
0061 If you say yes here you get support for the NXP PCA9541
0062 I2C Master Selector.
0063
0064 This driver can also be built as a module. If so, the module
0065 will be called i2c-mux-pca9541.
0066
0067 config I2C_MUX_PCA954x
0068 tristate "NXP PCA954x and PCA984x I2C Mux/switches"
0069 depends on GPIOLIB || COMPILE_TEST
0070 help
0071 If you say yes here you get support for the NXP PCA954x
0072 and PCA984x I2C mux/switch devices.
0073
0074 This driver can also be built as a module. If so, the module
0075 will be called i2c-mux-pca954x.
0076
0077 config I2C_MUX_PINCTRL
0078 tristate "pinctrl-based I2C multiplexer"
0079 depends on PINCTRL
0080 depends on OF || COMPILE_TEST
0081 help
0082 If you say yes to this option, support will be included for an I2C
0083 multiplexer that uses the pinctrl subsystem, i.e. pin multiplexing.
0084 This is useful for SoCs whose I2C module's signals can be routed to
0085 different sets of pins at run-time.
0086
0087 This driver can also be built as a module. If so, the module will be
0088 called i2c-mux-pinctrl.
0089
0090 config I2C_MUX_REG
0091 tristate "Register-based I2C multiplexer"
0092 depends on HAS_IOMEM
0093 help
0094 If you say yes to this option, support will be included for a
0095 register based I2C multiplexer. This driver provides access to
0096 I2C busses connected through a MUX, which is controlled
0097 by a single register.
0098
0099 This driver can also be built as a module. If so, the module
0100 will be called i2c-mux-reg.
0101
0102 config I2C_DEMUX_PINCTRL
0103 tristate "pinctrl-based I2C demultiplexer"
0104 depends on PINCTRL && OF
0105 select OF_DYNAMIC
0106 help
0107 If you say yes to this option, support will be included for an I2C
0108 demultiplexer that uses the pinctrl subsystem. This is useful if you
0109 want to change the I2C master at run-time depending on features.
0110
0111 config I2C_MUX_MLXCPLD
0112 tristate "Mellanox CPLD based I2C multiplexer"
0113 help
0114 If you say yes to this option, support will be included for a
0115 CPLD based I2C multiplexer. This driver provides access to
0116 I2C busses connected through a MUX, which is controlled
0117 by a CPLD register.
0118
0119 This driver can also be built as a module. If so, the module
0120 will be called i2c-mux-mlxcpld.
0121
0122 endmenu