Linux-libre 5.0.14-gnu
[librecmc/linux-libre.git] / drivers / i2c / muxes / Kconfig
1 #
2 # Multiplexer I2C chip drivers configuration
3 #
4
5 menu "Multiplexer I2C Chip support"
6         depends on I2C_MUX
7
8 config 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
21 config 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
33 config 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
46 config 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
57 config 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
66 config 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
76 config 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
89 config 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
101 config 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
110 config 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
121 endmenu