18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci#
38c2ecf20Sopenharmony_ci# Multiplexer I2C chip drivers configuration
48c2ecf20Sopenharmony_ci#
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_cimenu "Multiplexer I2C Chip support"
78c2ecf20Sopenharmony_ci	depends on I2C_MUX
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ciconfig I2C_ARB_GPIO_CHALLENGE
108c2ecf20Sopenharmony_ci	tristate "GPIO-based I2C arbitration"
118c2ecf20Sopenharmony_ci	depends on GPIOLIB || COMPILE_TEST
128c2ecf20Sopenharmony_ci	depends on OF || COMPILE_TEST
138c2ecf20Sopenharmony_ci	help
148c2ecf20Sopenharmony_ci	  If you say yes to this option, support will be included for an
158c2ecf20Sopenharmony_ci	  I2C multimaster arbitration scheme using GPIOs and a challenge &
168c2ecf20Sopenharmony_ci	  response mechanism where masters have to claim the bus by asserting
178c2ecf20Sopenharmony_ci	  a GPIO.
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci	  This driver can also be built as a module.  If so, the module
208c2ecf20Sopenharmony_ci	  will be called i2c-arb-gpio-challenge.
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ciconfig I2C_MUX_GPIO
238c2ecf20Sopenharmony_ci	tristate "GPIO-based I2C multiplexer"
248c2ecf20Sopenharmony_ci	depends on GPIOLIB
258c2ecf20Sopenharmony_ci	help
268c2ecf20Sopenharmony_ci	  If you say yes to this option, support will be included for a
278c2ecf20Sopenharmony_ci	  GPIO based I2C multiplexer. This driver provides access to
288c2ecf20Sopenharmony_ci	  I2C busses connected through a MUX, which is controlled
298c2ecf20Sopenharmony_ci	  through GPIO pins.
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci	  This driver can also be built as a module.  If so, the module
328c2ecf20Sopenharmony_ci	  will be called i2c-mux-gpio.
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ciconfig I2C_MUX_GPMUX
358c2ecf20Sopenharmony_ci	tristate "General Purpose I2C multiplexer"
368c2ecf20Sopenharmony_ci	select MULTIPLEXER
378c2ecf20Sopenharmony_ci	depends on OF || COMPILE_TEST
388c2ecf20Sopenharmony_ci	help
398c2ecf20Sopenharmony_ci	  If you say yes to this option, support will be included for a
408c2ecf20Sopenharmony_ci	  general purpose I2C multiplexer. This driver provides access to
418c2ecf20Sopenharmony_ci	  I2C busses connected through a MUX, which in turn is controlled
428c2ecf20Sopenharmony_ci	  by a MUX-controller from the MUX subsystem.
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci	  This driver can also be built as a module.  If so, the module
458c2ecf20Sopenharmony_ci	  will be called i2c-mux-gpmux.
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ciconfig I2C_MUX_LTC4306
488c2ecf20Sopenharmony_ci	tristate "LTC LTC4306/5 I2C multiplexer"
498c2ecf20Sopenharmony_ci	select GPIOLIB
508c2ecf20Sopenharmony_ci	select REGMAP_I2C
518c2ecf20Sopenharmony_ci	help
528c2ecf20Sopenharmony_ci	  If you say yes here you get support for the Analog Devices
538c2ecf20Sopenharmony_ci	  LTC4306 or LTC4305 I2C mux/switch devices.
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci	  This driver can also be built as a module.  If so, the module
568c2ecf20Sopenharmony_ci	  will be called i2c-mux-ltc4306.
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ciconfig I2C_MUX_PCA9541
598c2ecf20Sopenharmony_ci	tristate "NXP PCA9541 I2C Master Selector"
608c2ecf20Sopenharmony_ci	help
618c2ecf20Sopenharmony_ci	  If you say yes here you get support for the NXP PCA9541
628c2ecf20Sopenharmony_ci	  I2C Master Selector.
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci	  This driver can also be built as a module.  If so, the module
658c2ecf20Sopenharmony_ci	  will be called i2c-mux-pca9541.
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ciconfig I2C_MUX_PCA954x
688c2ecf20Sopenharmony_ci	tristate "NXP PCA954x and PCA984x I2C Mux/switches"
698c2ecf20Sopenharmony_ci	depends on GPIOLIB || COMPILE_TEST
708c2ecf20Sopenharmony_ci	help
718c2ecf20Sopenharmony_ci	  If you say yes here you get support for the NXP PCA954x
728c2ecf20Sopenharmony_ci	  and PCA984x I2C mux/switch devices.
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ci	  This driver can also be built as a module.  If so, the module
758c2ecf20Sopenharmony_ci	  will be called i2c-mux-pca954x.
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ciconfig I2C_MUX_PINCTRL
788c2ecf20Sopenharmony_ci	tristate "pinctrl-based I2C multiplexer"
798c2ecf20Sopenharmony_ci	depends on PINCTRL
808c2ecf20Sopenharmony_ci	depends on OF || COMPILE_TEST
818c2ecf20Sopenharmony_ci	help
828c2ecf20Sopenharmony_ci	  If you say yes to this option, support will be included for an I2C
838c2ecf20Sopenharmony_ci	  multiplexer that uses the pinctrl subsystem, i.e. pin multiplexing.
848c2ecf20Sopenharmony_ci	  This is useful for SoCs whose I2C module's signals can be routed to
858c2ecf20Sopenharmony_ci	  different sets of pins at run-time.
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ci	  This driver can also be built as a module. If so, the module will be
888c2ecf20Sopenharmony_ci	  called i2c-mux-pinctrl.
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ciconfig I2C_MUX_REG
918c2ecf20Sopenharmony_ci	tristate "Register-based I2C multiplexer"
928c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
938c2ecf20Sopenharmony_ci	help
948c2ecf20Sopenharmony_ci	  If you say yes to this option, support will be included for a
958c2ecf20Sopenharmony_ci	  register based I2C multiplexer. This driver provides access to
968c2ecf20Sopenharmony_ci	  I2C busses connected through a MUX, which is controlled
978c2ecf20Sopenharmony_ci	  by a single register.
988c2ecf20Sopenharmony_ci
998c2ecf20Sopenharmony_ci	  This driver can also be built as a module.  If so, the module
1008c2ecf20Sopenharmony_ci	  will be called i2c-mux-reg.
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ciconfig I2C_DEMUX_PINCTRL
1038c2ecf20Sopenharmony_ci	tristate "pinctrl-based I2C demultiplexer"
1048c2ecf20Sopenharmony_ci	depends on PINCTRL && OF
1058c2ecf20Sopenharmony_ci	select OF_DYNAMIC
1068c2ecf20Sopenharmony_ci	help
1078c2ecf20Sopenharmony_ci	  If you say yes to this option, support will be included for an I2C
1088c2ecf20Sopenharmony_ci	  demultiplexer that uses the pinctrl subsystem. This is useful if you
1098c2ecf20Sopenharmony_ci	  want to change the I2C master at run-time depending on features.
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ciconfig I2C_MUX_MLXCPLD
1128c2ecf20Sopenharmony_ci	tristate "Mellanox CPLD based I2C multiplexer"
1138c2ecf20Sopenharmony_ci	help
1148c2ecf20Sopenharmony_ci	  If you say yes to this option, support will be included for a
1158c2ecf20Sopenharmony_ci	  CPLD based I2C multiplexer. This driver provides access to
1168c2ecf20Sopenharmony_ci	  I2C busses connected through a MUX, which is controlled
1178c2ecf20Sopenharmony_ci	  by a CPLD register.
1188c2ecf20Sopenharmony_ci
1198c2ecf20Sopenharmony_ci	  This driver can also be built as a module.  If so, the module
1208c2ecf20Sopenharmony_ci	  will be called i2c-mux-mlxcpld.
1218c2ecf20Sopenharmony_ci
1228c2ecf20Sopenharmony_ciendmenu
123