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

config MULTIPLEXER
	bool

config MUX_CORE
	bool "Generic Multiplexer Support"
	select MULTIPLEXER
	help
	  This framework is designed to abstract multiplexer handling for
	  devices via various GPIO-, MMIO/Regmap or specific multiplexer
	  controller chips.

	  If unsure, say no.

if MULTIPLEXER

menu "Multiplexer drivers"

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
	select REGMAP_MMIO
	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

endif # MULTIPLEXER
