# 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 register bitfield-controlled Multiplexer"
	depends on (OF && MFD_SYSCON) || COMPILE_TEST
	help
	  MMIO register bitfield-controlled Multiplexer controller.

	  The driver builds multiplexer controllers for bitfields in a syscon
	  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
