xref: /openbmc/linux/drivers/i2c/muxes/Kconfig (revision c0c74acb)
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
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_PCA9541
34	tristate "NXP PCA9541 I2C Master Selector"
35	help
36	  If you say yes here you get support for the NXP PCA9541
37	  I2C Master Selector.
38
39	  This driver can also be built as a module.  If so, the module
40	  will be called i2c-mux-pca9541.
41
42config I2C_MUX_PCA954x
43	tristate "Philips PCA954x I2C Mux/switches"
44	depends on GPIOLIB || COMPILE_TEST
45	help
46	  If you say yes here you get support for the Philips PCA954x
47	  I2C mux/switch devices.
48
49	  This driver can also be built as a module.  If so, the module
50	  will be called i2c-mux-pca954x.
51
52config I2C_MUX_PINCTRL
53	tristate "pinctrl-based I2C multiplexer"
54	depends on PINCTRL
55	help
56	  If you say yes to this option, support will be included for an I2C
57	  multiplexer that uses the pinctrl subsystem, i.e. pin multiplexing.
58	  This is useful for SoCs whose I2C module's signals can be routed to
59	  different sets of pins at run-time.
60
61	  This driver can also be built as a module. If so, the module will be
62	  called pinctrl-i2cmux.
63
64config I2C_MUX_REG
65	tristate "Register-based I2C multiplexer"
66	depends on HAS_IOMEM
67	help
68	  If you say yes to this option, support will be included for a
69	  register based I2C multiplexer. This driver provides access to
70	  I2C busses connected through a MUX, which is controlled
71	  by a single register.
72
73	  This driver can also be built as a module.  If so, the module
74	  will be called i2c-mux-reg.
75
76config I2C_DEMUX_PINCTRL
77	tristate "pinctrl-based I2C demultiplexer"
78	depends on PINCTRL && OF
79	select OF_DYNAMIC
80	help
81	  If you say yes to this option, support will be included for an I2C
82	  demultiplexer that uses the pinctrl subsystem. This is useful if you
83	  want to change the I2C master at run-time depending on features.
84
85config I2C_MUX_MLXCPLD
86        tristate "Mellanox CPLD based I2C multiplexer"
87        help
88          If you say yes to this option, support will be included for a
89          CPLD based I2C multiplexer. This driver provides access to
90          I2C busses connected through a MUX, which is controlled
91          by a CPLD register.
92
93          This driver can also be built as a module.  If so, the module
94          will be called i2c-mux-mlxcpld.
95
96endmenu
97