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