# SPDX-License-Identifier: GPL-2.0
#
# Multiplexer devices
#

config MULTIPLEXER
	tristate

menu "Multiplexer drivers"
	depends on MULTIPLEXER

config MUX_ADG792A
	tristate "Analog Devices ADG792A/ADG792G Multiplexers"
	depends on I2C
	help
	  ADG792A and ADG792G Wide Bandwidth Triple 4:1 Multiplexers

	  The driver supports both operating the three multiplexers in
	  parallel and operating them independently.

	  To compile the driver as a module, choose M here: the module will
	  be called mux-adg792a.

config MUX_ADGS1408
	tristate "Analog Devices ADGS1408/ADGS1409 Multiplexers"
	depends on SPI
	help
	  ADGS1408 8:1 multiplexer and ADGS1409 double 4:1 multiplexer
	  switches.

	  To compile the driver as a module, choose M here: the module will
	  be called mux-adgs1408.

config MUX_GPIO
	tristate "GPIO-controlled Multiplexer"
	depends on GPIOLIB || COMPILE_TEST
	help
	  GPIO-controlled Multiplexer controller.

	  The driver builds a single multiplexer controller using a number
	  of gpio pins. For N pins, there will be 2^N possible multiplexer
	  states. The GPIO pins can be connected (by the hardware) to several
	  multiplexers, which in that case will be operated in parallel.

	  To compile the driver as a module, choose M here: the module will
	  be called mux-gpio.

config MUX_MMIO
	tristate "MMIO/Regmap register bitfield-controlled Multiplexer"
	depends on OF || COMPILE_TEST
	help
	  MMIO/Regmap register bitfield-controlled Multiplexer controller.

	  The driver builds multiplexer controllers for bitfields in either
	  a syscon register or a driver regmap register. For N bit wide
	  bitfields, there will be 2^N possible multiplexer states.

	  To compile the driver as a module, choose M here: the module will
	  be called mux-mmio.

endmenu
