xref: /openbmc/linux/drivers/i2c/muxes/Kconfig (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
27f528135SMichael Lawnick#
37f528135SMichael Lawnick# Multiplexer I2C chip drivers configuration
47f528135SMichael Lawnick#
57f528135SMichael Lawnick
67f528135SMichael Lawnickmenu "Multiplexer I2C Chip support"
77f528135SMichael Lawnick	depends on I2C_MUX
87f528135SMichael Lawnick
9b81dfaa0SDoug Andersonconfig I2C_ARB_GPIO_CHALLENGE
10b81dfaa0SDoug Anderson	tristate "GPIO-based I2C arbitration"
117e5cd69aSGeert Uytterhoeven	depends on GPIOLIB || COMPILE_TEST
12874765c9SJean Delvare	depends on OF
13b81dfaa0SDoug Anderson	help
14b81dfaa0SDoug Anderson	  If you say yes to this option, support will be included for an
15b81dfaa0SDoug Anderson	  I2C multimaster arbitration scheme using GPIOs and a challenge &
16b81dfaa0SDoug Anderson	  response mechanism where masters have to claim the bus by asserting
17b81dfaa0SDoug Anderson	  a GPIO.
18b81dfaa0SDoug Anderson
19b81dfaa0SDoug Anderson	  This driver can also be built as a module.  If so, the module
20b81dfaa0SDoug Anderson	  will be called i2c-arb-gpio-challenge.
21b81dfaa0SDoug Anderson
2292ed1a76SPeter Korsgaardconfig I2C_MUX_GPIO
2392ed1a76SPeter Korsgaard	tristate "GPIO-based I2C multiplexer"
2476ec9d18SAlexandre Courbot	depends on GPIOLIB
2592ed1a76SPeter Korsgaard	help
2692ed1a76SPeter Korsgaard	  If you say yes to this option, support will be included for a
2792ed1a76SPeter Korsgaard	  GPIO based I2C multiplexer. This driver provides access to
2892ed1a76SPeter Korsgaard	  I2C busses connected through a MUX, which is controlled
2992ed1a76SPeter Korsgaard	  through GPIO pins.
3092ed1a76SPeter Korsgaard
3192ed1a76SPeter Korsgaard	  This driver can also be built as a module.  If so, the module
32e7065e20SJean Delvare	  will be called i2c-mux-gpio.
3392ed1a76SPeter Korsgaard
34ac8498f0SPeter Rosinconfig I2C_MUX_GPMUX
35ac8498f0SPeter Rosin	tristate "General Purpose I2C multiplexer"
36ac8498f0SPeter Rosin	select MULTIPLEXER
37874765c9SJean Delvare	depends on OF
38ac8498f0SPeter Rosin	help
39ac8498f0SPeter Rosin	  If you say yes to this option, support will be included for a
40ac8498f0SPeter Rosin	  general purpose I2C multiplexer. This driver provides access to
41ac8498f0SPeter Rosin	  I2C busses connected through a MUX, which in turn is controlled
42ac8498f0SPeter Rosin	  by a MUX-controller from the MUX subsystem.
43ac8498f0SPeter Rosin
44ac8498f0SPeter Rosin	  This driver can also be built as a module.  If so, the module
45ac8498f0SPeter Rosin	  will be called i2c-mux-gpmux.
46ac8498f0SPeter Rosin
47dbed8a80SMichael Hennerichconfig I2C_MUX_LTC4306
48dbed8a80SMichael Hennerich	tristate "LTC LTC4306/5 I2C multiplexer"
49dbed8a80SMichael Hennerich	select GPIOLIB
50dbed8a80SMichael Hennerich	select REGMAP_I2C
51dbed8a80SMichael Hennerich	help
52dbed8a80SMichael Hennerich	  If you say yes here you get support for the Analog Devices
53dbed8a80SMichael Hennerich	  LTC4306 or LTC4305 I2C mux/switch devices.
54dbed8a80SMichael Hennerich
55dbed8a80SMichael Hennerich	  This driver can also be built as a module.  If so, the module
56dbed8a80SMichael Hennerich	  will be called i2c-mux-ltc4306.
57dbed8a80SMichael Hennerich
58ae63b13bSGuenter Roeckconfig I2C_MUX_PCA9541
59ae63b13bSGuenter Roeck	tristate "NXP PCA9541 I2C Master Selector"
60ae63b13bSGuenter Roeck	help
61ae63b13bSGuenter Roeck	  If you say yes here you get support for the NXP PCA9541
62ae63b13bSGuenter Roeck	  I2C Master Selector.
63ae63b13bSGuenter Roeck
64ae63b13bSGuenter Roeck	  This driver can also be built as a module.  If so, the module
65b4f0b74eSWolfram Sang	  will be called i2c-mux-pca9541.
66ae63b13bSGuenter Roeck
677f528135SMichael Lawnickconfig I2C_MUX_PCA954x
68*81694437SPatrick Rudolph	tristate "NXP PCA954x/PCA984x and Maxim MAX735x/MAX736x I2C Mux/switches"
697e5cd69aSGeert Uytterhoeven	depends on GPIOLIB || COMPILE_TEST
707f528135SMichael Lawnick	help
71*81694437SPatrick Rudolph	  If you say yes here you get support for NXP PCA954x/PCA984x
72*81694437SPatrick Rudolph	  and Maxim MAX735x/MAX736x I2C mux/switch devices.
737f528135SMichael Lawnick
747f528135SMichael Lawnick	  This driver can also be built as a module.  If so, the module
75b4f0b74eSWolfram Sang	  will be called i2c-mux-pca954x.
767f528135SMichael Lawnick
77ae58d1e4SStephen Warrenconfig I2C_MUX_PINCTRL
78ae58d1e4SStephen Warren	tristate "pinctrl-based I2C multiplexer"
79ae58d1e4SStephen Warren	depends on PINCTRL
80874765c9SJean Delvare	depends on OF
81ae58d1e4SStephen Warren	help
82ae58d1e4SStephen Warren	  If you say yes to this option, support will be included for an I2C
83ae58d1e4SStephen Warren	  multiplexer that uses the pinctrl subsystem, i.e. pin multiplexing.
84ae58d1e4SStephen Warren	  This is useful for SoCs whose I2C module's signals can be routed to
85ae58d1e4SStephen Warren	  different sets of pins at run-time.
86ae58d1e4SStephen Warren
87ae58d1e4SStephen Warren	  This driver can also be built as a module. If so, the module will be
88d1510a2eSChris Gorman	  called i2c-mux-pinctrl.
89ae58d1e4SStephen Warren
90b3fdd327SYork Sunconfig I2C_MUX_REG
91b3fdd327SYork Sun	tristate "Register-based I2C multiplexer"
9293d710a6SLinus Walleij	depends on HAS_IOMEM
93b3fdd327SYork Sun	help
94b3fdd327SYork Sun	  If you say yes to this option, support will be included for a
95b3fdd327SYork Sun	  register based I2C multiplexer. This driver provides access to
96b3fdd327SYork Sun	  I2C busses connected through a MUX, which is controlled
97b3fdd327SYork Sun	  by a single register.
98b3fdd327SYork Sun
99b3fdd327SYork Sun	  This driver can also be built as a module.  If so, the module
100b3fdd327SYork Sun	  will be called i2c-mux-reg.
101b3fdd327SYork Sun
10250a5ba87SWolfram Sangconfig I2C_DEMUX_PINCTRL
10350a5ba87SWolfram Sang	tristate "pinctrl-based I2C demultiplexer"
10450a5ba87SWolfram Sang	depends on PINCTRL && OF
10550a5ba87SWolfram Sang	select OF_DYNAMIC
10650a5ba87SWolfram Sang	help
10750a5ba87SWolfram Sang	  If you say yes to this option, support will be included for an I2C
10850a5ba87SWolfram Sang	  demultiplexer that uses the pinctrl subsystem. This is useful if you
10950a5ba87SWolfram Sang	  want to change the I2C master at run-time depending on features.
11050a5ba87SWolfram Sang
111c02b7bf5SVadim Pasternakconfig I2C_MUX_MLXCPLD
112c02b7bf5SVadim Pasternak	tristate "Mellanox CPLD based I2C multiplexer"
113c02b7bf5SVadim Pasternak	help
114c02b7bf5SVadim Pasternak	  If you say yes to this option, support will be included for a
115c02b7bf5SVadim Pasternak	  CPLD based I2C multiplexer. This driver provides access to
116c02b7bf5SVadim Pasternak	  I2C busses connected through a MUX, which is controlled
117c02b7bf5SVadim Pasternak	  by a CPLD register.
118c02b7bf5SVadim Pasternak
119c02b7bf5SVadim Pasternak	  This driver can also be built as a module.  If so, the module
120c02b7bf5SVadim Pasternak	  will be called i2c-mux-mlxcpld.
121c02b7bf5SVadim Pasternak
1227f528135SMichael Lawnickendmenu
123