Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

# SPDX-License-Identifier: GPL-2.0-only
#
# Multiplexer CONFIG_I2C chip drivers configuration
#

menu "Multiplexer I2C Chip support"
	depends on CONFIG_I2C_MUX

config CONFIG_I2C_ARB_GPIO_CHALLENGE
	tristate "GPIO-based I2C arbitration"
	depends on CONFIG_GPIOLIB || CONFIG_COMPILE_TEST
	depends on CONFIG_OF || CONFIG_COMPILE_TEST
	help
	  If you say yes to this option, support will be included for an
	  CONFIG_I2C multimaster arbitration scheme using GPIOs and a challenge &
	  response mechanism where masters have to claim the bus by asserting
	  a GPIO.

	  This driver can also be built as a module.  If so, the module
	  will be called i2c-arb-gpio-challenge.

config CONFIG_I2C_MUX_GPIO
	tristate "GPIO-based I2C multiplexer"
	depends on CONFIG_GPIOLIB
	help
	  If you say yes to this option, support will be included for a
	  GPIO based CONFIG_I2C multiplexer. This driver provides access to
	  CONFIG_I2C busses connected through a MUX, which is controlled
	  through GPIO pins.

	  This driver can also be built as a module.  If so, the module
	  will be called i2c-mux-gpio.

config CONFIG_I2C_MUX_GPMUX
	tristate "General Purpose I2C multiplexer"
	select CONFIG_MULTIPLEXER
	depends on CONFIG_OF || CONFIG_COMPILE_TEST
	help
	  If you say yes to this option, support will be included for a
	  general purpose CONFIG_I2C multiplexer. This driver provides access to
	  CONFIG_I2C busses connected through a MUX, which in turn is controlled
	  by a MUX-controller from the MUX subsystem.

	  This driver can also be built as a module.  If so, the module
	  will be called i2c-mux-gpmux.

config CONFIG_I2C_MUX_LTC4306
	tristate "LTC LTC4306/5 I2C multiplexer"
	select CONFIG_GPIOLIB
	select CONFIG_REGMAP_I2C
	help
	  If you say yes here you get support for the Analog Devices
	  LTC4306 or LTC4305 CONFIG_I2C mux/switch devices.

	  This driver can also be built as a module.  If so, the module
	  will be called i2c-mux-ltc4306.

config CONFIG_I2C_MUX_PCA9541
	tristate "NXP PCA9541 I2C Master Selector"
	help
	  If you say yes here you get support for the NXP PCA9541
	  CONFIG_I2C Master Selector.

	  This driver can also be built as a module.  If so, the module
	  will be called i2c-mux-pca9541.

config CONFIG_I2C_MUX_PCA954x
	tristate "NXP PCA954x and PCA984x I2C Mux/switches"
	depends on CONFIG_GPIOLIB || CONFIG_COMPILE_TEST
	help
	  If you say yes here you get support for the NXP PCA954x
	  and PCA984x CONFIG_I2C mux/switch devices.

	  This driver can also be built as a module.  If so, the module
	  will be called i2c-mux-pca954x.

config CONFIG_I2C_MUX_PINCTRL
	tristate "pinctrl-based I2C multiplexer"
	depends on CONFIG_PINCTRL
	depends on CONFIG_OF || CONFIG_COMPILE_TEST
	help
	  If you say yes to this option, support will be included for an CONFIG_I2C
	  multiplexer that uses the pinctrl subsystem, i.e. pin multiplexing.
	  This is useful for SoCs whose CONFIG_I2C module's signals can be routed to
	  different sets of pins at run-time.

	  This driver can also be built as a module. If so, the module will be
	  called i2c-mux-pinctrl.

config CONFIG_I2C_MUX_REG
	tristate "Register-based I2C multiplexer"
	depends on CONFIG_HAS_IOMEM
	help
	  If you say yes to this option, support will be included for a
	  register based CONFIG_I2C multiplexer. This driver provides access to
	  CONFIG_I2C busses connected through a MUX, which is controlled
	  by a single register.

	  This driver can also be built as a module.  If so, the module
	  will be called i2c-mux-reg.

config CONFIG_I2C_DEMUX_PINCTRL
	tristate "pinctrl-based I2C demultiplexer"
	depends on CONFIG_PINCTRL && CONFIG_OF
	select CONFIG_OF_DYNAMIC
	help
	  If you say yes to this option, support will be included for an CONFIG_I2C
	  demultiplexer that uses the pinctrl subsystem. This is useful if you
	  want to change the CONFIG_I2C master at run-time depending on features.

config CONFIG_I2C_MUX_MLXCPLD
        tristate "Mellanox CPLD based I2C multiplexer"
        help
          If you say yes to this option, support will be included for a
          CPLD based CONFIG_I2C multiplexer. This driver provides access to
          CONFIG_I2C busses connected through a MUX, which is controlled
          by a CPLD register.

          This driver can also be built as a module.  If so, the module
          will be called i2c-mux-mlxcpld.

endmenu