xref: /OK3568_Linux_fs/kernel/drivers/i2c/muxes/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# Multiplexer I2C chip drivers configuration
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun
6*4882a593Smuzhiyunmenu "Multiplexer I2C Chip support"
7*4882a593Smuzhiyun	depends on I2C_MUX
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunconfig I2C_ARB_GPIO_CHALLENGE
10*4882a593Smuzhiyun	tristate "GPIO-based I2C arbitration"
11*4882a593Smuzhiyun	depends on GPIOLIB || COMPILE_TEST
12*4882a593Smuzhiyun	depends on OF || COMPILE_TEST
13*4882a593Smuzhiyun	help
14*4882a593Smuzhiyun	  If you say yes to this option, support will be included for an
15*4882a593Smuzhiyun	  I2C multimaster arbitration scheme using GPIOs and a challenge &
16*4882a593Smuzhiyun	  response mechanism where masters have to claim the bus by asserting
17*4882a593Smuzhiyun	  a GPIO.
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun	  This driver can also be built as a module.  If so, the module
20*4882a593Smuzhiyun	  will be called i2c-arb-gpio-challenge.
21*4882a593Smuzhiyun
22*4882a593Smuzhiyunconfig I2C_MUX_GPIO
23*4882a593Smuzhiyun	tristate "GPIO-based I2C multiplexer"
24*4882a593Smuzhiyun	depends on GPIOLIB
25*4882a593Smuzhiyun	help
26*4882a593Smuzhiyun	  If you say yes to this option, support will be included for a
27*4882a593Smuzhiyun	  GPIO based I2C multiplexer. This driver provides access to
28*4882a593Smuzhiyun	  I2C busses connected through a MUX, which is controlled
29*4882a593Smuzhiyun	  through GPIO pins.
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun	  This driver can also be built as a module.  If so, the module
32*4882a593Smuzhiyun	  will be called i2c-mux-gpio.
33*4882a593Smuzhiyun
34*4882a593Smuzhiyunconfig I2C_MUX_GPMUX
35*4882a593Smuzhiyun	tristate "General Purpose I2C multiplexer"
36*4882a593Smuzhiyun	select MULTIPLEXER
37*4882a593Smuzhiyun	depends on OF || COMPILE_TEST
38*4882a593Smuzhiyun	help
39*4882a593Smuzhiyun	  If you say yes to this option, support will be included for a
40*4882a593Smuzhiyun	  general purpose I2C multiplexer. This driver provides access to
41*4882a593Smuzhiyun	  I2C busses connected through a MUX, which in turn is controlled
42*4882a593Smuzhiyun	  by a MUX-controller from the MUX subsystem.
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun	  This driver can also be built as a module.  If so, the module
45*4882a593Smuzhiyun	  will be called i2c-mux-gpmux.
46*4882a593Smuzhiyun
47*4882a593Smuzhiyunconfig I2C_MUX_LTC4306
48*4882a593Smuzhiyun	tristate "LTC LTC4306/5 I2C multiplexer"
49*4882a593Smuzhiyun	select GPIOLIB
50*4882a593Smuzhiyun	select REGMAP_I2C
51*4882a593Smuzhiyun	help
52*4882a593Smuzhiyun	  If you say yes here you get support for the Analog Devices
53*4882a593Smuzhiyun	  LTC4306 or LTC4305 I2C mux/switch devices.
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun	  This driver can also be built as a module.  If so, the module
56*4882a593Smuzhiyun	  will be called i2c-mux-ltc4306.
57*4882a593Smuzhiyun
58*4882a593Smuzhiyunconfig I2C_MUX_PCA9541
59*4882a593Smuzhiyun	tristate "NXP PCA9541 I2C Master Selector"
60*4882a593Smuzhiyun	help
61*4882a593Smuzhiyun	  If you say yes here you get support for the NXP PCA9541
62*4882a593Smuzhiyun	  I2C Master Selector.
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun	  This driver can also be built as a module.  If so, the module
65*4882a593Smuzhiyun	  will be called i2c-mux-pca9541.
66*4882a593Smuzhiyun
67*4882a593Smuzhiyunconfig I2C_MUX_PCA954x
68*4882a593Smuzhiyun	tristate "NXP PCA954x and PCA984x I2C Mux/switches"
69*4882a593Smuzhiyun	depends on GPIOLIB || COMPILE_TEST
70*4882a593Smuzhiyun	help
71*4882a593Smuzhiyun	  If you say yes here you get support for the NXP PCA954x
72*4882a593Smuzhiyun	  and PCA984x I2C mux/switch devices.
73*4882a593Smuzhiyun
74*4882a593Smuzhiyun	  This driver can also be built as a module.  If so, the module
75*4882a593Smuzhiyun	  will be called i2c-mux-pca954x.
76*4882a593Smuzhiyun
77*4882a593Smuzhiyunconfig I2C_MUX_PINCTRL
78*4882a593Smuzhiyun	tristate "pinctrl-based I2C multiplexer"
79*4882a593Smuzhiyun	depends on PINCTRL
80*4882a593Smuzhiyun	depends on OF || COMPILE_TEST
81*4882a593Smuzhiyun	help
82*4882a593Smuzhiyun	  If you say yes to this option, support will be included for an I2C
83*4882a593Smuzhiyun	  multiplexer that uses the pinctrl subsystem, i.e. pin multiplexing.
84*4882a593Smuzhiyun	  This is useful for SoCs whose I2C module's signals can be routed to
85*4882a593Smuzhiyun	  different sets of pins at run-time.
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun	  This driver can also be built as a module. If so, the module will be
88*4882a593Smuzhiyun	  called i2c-mux-pinctrl.
89*4882a593Smuzhiyun
90*4882a593Smuzhiyunconfig I2C_MUX_REG
91*4882a593Smuzhiyun	tristate "Register-based I2C multiplexer"
92*4882a593Smuzhiyun	depends on HAS_IOMEM
93*4882a593Smuzhiyun	help
94*4882a593Smuzhiyun	  If you say yes to this option, support will be included for a
95*4882a593Smuzhiyun	  register based I2C multiplexer. This driver provides access to
96*4882a593Smuzhiyun	  I2C busses connected through a MUX, which is controlled
97*4882a593Smuzhiyun	  by a single register.
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun	  This driver can also be built as a module.  If so, the module
100*4882a593Smuzhiyun	  will be called i2c-mux-reg.
101*4882a593Smuzhiyun
102*4882a593Smuzhiyunconfig I2C_DEMUX_PINCTRL
103*4882a593Smuzhiyun	tristate "pinctrl-based I2C demultiplexer"
104*4882a593Smuzhiyun	depends on PINCTRL && OF
105*4882a593Smuzhiyun	select OF_DYNAMIC
106*4882a593Smuzhiyun	help
107*4882a593Smuzhiyun	  If you say yes to this option, support will be included for an I2C
108*4882a593Smuzhiyun	  demultiplexer that uses the pinctrl subsystem. This is useful if you
109*4882a593Smuzhiyun	  want to change the I2C master at run-time depending on features.
110*4882a593Smuzhiyun
111*4882a593Smuzhiyunconfig I2C_MUX_MLXCPLD
112*4882a593Smuzhiyun	tristate "Mellanox CPLD based I2C multiplexer"
113*4882a593Smuzhiyun	help
114*4882a593Smuzhiyun	  If you say yes to this option, support will be included for a
115*4882a593Smuzhiyun	  CPLD based I2C multiplexer. This driver provides access to
116*4882a593Smuzhiyun	  I2C busses connected through a MUX, which is controlled
117*4882a593Smuzhiyun	  by a CPLD register.
118*4882a593Smuzhiyun
119*4882a593Smuzhiyun	  This driver can also be built as a module.  If so, the module
120*4882a593Smuzhiyun	  will be called i2c-mux-mlxcpld.
121*4882a593Smuzhiyun
122*4882a593Smuzhiyunendmenu
123