162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci# 362306a36Sopenharmony_ci# Multiplexer devices 462306a36Sopenharmony_ci# 562306a36Sopenharmony_ci 662306a36Sopenharmony_ciconfig MULTIPLEXER 762306a36Sopenharmony_ci tristate 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimenu "Multiplexer drivers" 1062306a36Sopenharmony_ci depends on MULTIPLEXER 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciconfig MUX_ADG792A 1362306a36Sopenharmony_ci tristate "Analog Devices ADG792A/ADG792G Multiplexers" 1462306a36Sopenharmony_ci depends on I2C 1562306a36Sopenharmony_ci help 1662306a36Sopenharmony_ci ADG792A and ADG792G Wide Bandwidth Triple 4:1 Multiplexers 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci The driver supports both operating the three multiplexers in 1962306a36Sopenharmony_ci parallel and operating them independently. 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci To compile the driver as a module, choose M here: the module will 2262306a36Sopenharmony_ci be called mux-adg792a. 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciconfig MUX_ADGS1408 2562306a36Sopenharmony_ci tristate "Analog Devices ADGS1408/ADGS1409 Multiplexers" 2662306a36Sopenharmony_ci depends on SPI 2762306a36Sopenharmony_ci help 2862306a36Sopenharmony_ci ADGS1408 8:1 multiplexer and ADGS1409 double 4:1 multiplexer 2962306a36Sopenharmony_ci switches. 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci To compile the driver as a module, choose M here: the module will 3262306a36Sopenharmony_ci be called mux-adgs1408. 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ciconfig MUX_GPIO 3562306a36Sopenharmony_ci tristate "GPIO-controlled Multiplexer" 3662306a36Sopenharmony_ci depends on GPIOLIB || COMPILE_TEST 3762306a36Sopenharmony_ci help 3862306a36Sopenharmony_ci GPIO-controlled Multiplexer controller. 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci The driver builds a single multiplexer controller using a number 4162306a36Sopenharmony_ci of gpio pins. For N pins, there will be 2^N possible multiplexer 4262306a36Sopenharmony_ci states. The GPIO pins can be connected (by the hardware) to several 4362306a36Sopenharmony_ci multiplexers, which in that case will be operated in parallel. 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci To compile the driver as a module, choose M here: the module will 4662306a36Sopenharmony_ci be called mux-gpio. 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ciconfig MUX_MMIO 4962306a36Sopenharmony_ci tristate "MMIO/Regmap register bitfield-controlled Multiplexer" 5062306a36Sopenharmony_ci depends on OF 5162306a36Sopenharmony_ci help 5262306a36Sopenharmony_ci MMIO/Regmap register bitfield-controlled Multiplexer controller. 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci The driver builds multiplexer controllers for bitfields in either 5562306a36Sopenharmony_ci a syscon register or a driver regmap register. For N bit wide 5662306a36Sopenharmony_ci bitfields, there will be 2^N possible multiplexer states. 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci To compile the driver as a module, choose M here: the module will 5962306a36Sopenharmony_ci be called mux-mmio. 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ciendmenu 62