1 # SPDX-License-Identifier: GPL-2.0-only
3 # Multiplexer I2C chip drivers configuration
6 menu "Multiplexer I2C Chip support"
9 config I2C_ARB_GPIO_CHALLENGE
10 tristate "GPIO-based I2C arbitration"
11 depends on GPIOLIB || COMPILE_TEST
12 depends on OF || COMPILE_TEST
14 If you say yes to this option, support will be included for an
15 I2C multimaster arbitration scheme using GPIOs and a challenge &
16 response mechanism where masters have to claim the bus by asserting
19 This driver can also be built as a module. If so, the module
20 will be called i2c-arb-gpio-challenge.
23 tristate "GPIO-based I2C multiplexer"
26 If you say yes to this option, support will be included for a
27 GPIO based I2C multiplexer. This driver provides access to
28 I2C busses connected through a MUX, which is controlled
31 This driver can also be built as a module. If so, the module
32 will be called i2c-mux-gpio.
35 tristate "General Purpose I2C multiplexer"
37 depends on OF || COMPILE_TEST
39 If you say yes to this option, support will be included for a
40 general purpose I2C multiplexer. This driver provides access to
41 I2C busses connected through a MUX, which in turn is controlled
42 by a MUX-controller from the MUX subsystem.
44 This driver can also be built as a module. If so, the module
45 will be called i2c-mux-gpmux.
47 config I2C_MUX_LTC4306
48 tristate "LTC LTC4306/5 I2C multiplexer"
52 If you say yes here you get support for the Analog Devices
53 LTC4306 or LTC4305 I2C mux/switch devices.
55 This driver can also be built as a module. If so, the module
56 will be called i2c-mux-ltc4306.
58 config I2C_MUX_PCA9541
59 tristate "NXP PCA9541 I2C Master Selector"
61 If you say yes here you get support for the NXP PCA9541
64 This driver can also be built as a module. If so, the module
65 will be called i2c-mux-pca9541.
67 config I2C_MUX_PCA954x
68 tristate "NXP PCA954x and PCA984x I2C Mux/switches"
69 depends on GPIOLIB || COMPILE_TEST
71 If you say yes here you get support for the NXP PCA954x
72 and PCA984x I2C mux/switch devices.
74 This driver can also be built as a module. If so, the module
75 will be called i2c-mux-pca954x.
77 config I2C_MUX_PINCTRL
78 tristate "pinctrl-based I2C multiplexer"
80 depends on OF || COMPILE_TEST
82 If you say yes to this option, support will be included for an I2C
83 multiplexer that uses the pinctrl subsystem, i.e. pin multiplexing.
84 This is useful for SoCs whose I2C module's signals can be routed to
85 different sets of pins at run-time.
87 This driver can also be built as a module. If so, the module will be
88 called i2c-mux-pinctrl.
91 tristate "Register-based I2C multiplexer"
94 If you say yes to this option, support will be included for a
95 register based I2C multiplexer. This driver provides access to
96 I2C busses connected through a MUX, which is controlled
99 This driver can also be built as a module. If so, the module
100 will be called i2c-mux-reg.
102 config I2C_DEMUX_PINCTRL
103 tristate "pinctrl-based I2C demultiplexer"
104 depends on PINCTRL && OF
107 If you say yes to this option, support will be included for an I2C
108 demultiplexer that uses the pinctrl subsystem. This is useful if you
109 want to change the I2C master at run-time depending on features.
111 config I2C_MUX_MLXCPLD
112 tristate "Mellanox CPLD based I2C multiplexer"
114 If you say yes to this option, support will be included for a
115 CPLD based I2C multiplexer. This driver provides access to
116 I2C busses connected through a MUX, which is controlled
119 This driver can also be built as a module. If so, the module
120 will be called i2c-mux-mlxcpld.