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