18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci# 38c2ecf20Sopenharmony_ci# Multiplexer devices 48c2ecf20Sopenharmony_ci# 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ciconfig MULTIPLEXER 78c2ecf20Sopenharmony_ci tristate 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cimenu "Multiplexer drivers" 108c2ecf20Sopenharmony_ci depends on MULTIPLEXER 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ciconfig MUX_ADG792A 138c2ecf20Sopenharmony_ci tristate "Analog Devices ADG792A/ADG792G Multiplexers" 148c2ecf20Sopenharmony_ci depends on I2C 158c2ecf20Sopenharmony_ci help 168c2ecf20Sopenharmony_ci ADG792A and ADG792G Wide Bandwidth Triple 4:1 Multiplexers 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci The driver supports both operating the three multiplexers in 198c2ecf20Sopenharmony_ci parallel and operating them independently. 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci To compile the driver as a module, choose M here: the module will 228c2ecf20Sopenharmony_ci be called mux-adg792a. 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ciconfig MUX_ADGS1408 258c2ecf20Sopenharmony_ci tristate "Analog Devices ADGS1408/ADGS1409 Multiplexers" 268c2ecf20Sopenharmony_ci depends on SPI 278c2ecf20Sopenharmony_ci help 288c2ecf20Sopenharmony_ci ADGS1408 8:1 multiplexer and ADGS1409 double 4:1 multiplexer 298c2ecf20Sopenharmony_ci switches. 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci To compile the driver as a module, choose M here: the module will 328c2ecf20Sopenharmony_ci be called mux-adgs1408. 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ciconfig MUX_GPIO 358c2ecf20Sopenharmony_ci tristate "GPIO-controlled Multiplexer" 368c2ecf20Sopenharmony_ci depends on GPIOLIB || COMPILE_TEST 378c2ecf20Sopenharmony_ci help 388c2ecf20Sopenharmony_ci GPIO-controlled Multiplexer controller. 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci The driver builds a single multiplexer controller using a number 418c2ecf20Sopenharmony_ci of gpio pins. For N pins, there will be 2^N possible multiplexer 428c2ecf20Sopenharmony_ci states. The GPIO pins can be connected (by the hardware) to several 438c2ecf20Sopenharmony_ci multiplexers, which in that case will be operated in parallel. 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci To compile the driver as a module, choose M here: the module will 468c2ecf20Sopenharmony_ci be called mux-gpio. 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ciconfig MUX_MMIO 498c2ecf20Sopenharmony_ci tristate "MMIO/Regmap register bitfield-controlled Multiplexer" 508c2ecf20Sopenharmony_ci depends on OF || COMPILE_TEST 518c2ecf20Sopenharmony_ci help 528c2ecf20Sopenharmony_ci MMIO/Regmap register bitfield-controlled Multiplexer controller. 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci The driver builds multiplexer controllers for bitfields in either 558c2ecf20Sopenharmony_ci a syscon register or a driver regmap register. For N bit wide 568c2ecf20Sopenharmony_ci bitfields, there will be 2^N possible multiplexer states. 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci To compile the driver as a module, choose M here: the module will 598c2ecf20Sopenharmony_ci be called mux-mmio. 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ciendmenu 62