10edff03dSPeter Rosin# SPDX-License-Identifier: GPL-2.0 2a3b02a9cSPeter Rosin# 3a3b02a9cSPeter Rosin# Multiplexer devices 4a3b02a9cSPeter Rosin# 5a3b02a9cSPeter Rosin 64c19c0ecSPeter Rosinconfig MULTIPLEXER 7*ce5c7c17SJosua Mayer bool 8*ce5c7c17SJosua Mayer 9*ce5c7c17SJosua Mayerconfig MUX_CORE 10*ce5c7c17SJosua Mayer bool "Generic Multiplexer Support" 11*ce5c7c17SJosua Mayer select MULTIPLEXER 12*ce5c7c17SJosua Mayer help 13*ce5c7c17SJosua Mayer This framework is designed to abstract multiplexer handling for 14*ce5c7c17SJosua Mayer devices via various GPIO-, MMIO/Regmap or specific multiplexer 15*ce5c7c17SJosua Mayer controller chips. 16*ce5c7c17SJosua Mayer 17*ce5c7c17SJosua Mayer If unsure, say no. 18*ce5c7c17SJosua Mayer 19*ce5c7c17SJosua Mayerif MULTIPLEXER 20a3b02a9cSPeter Rosin 214c19c0ecSPeter Rosinmenu "Multiplexer drivers" 222c089f08SPeter Rosin 23afda08c4SPeter Rosinconfig MUX_ADG792A 24afda08c4SPeter Rosin tristate "Analog Devices ADG792A/ADG792G Multiplexers" 25aca4e68aSArnd Bergmann depends on I2C 26afda08c4SPeter Rosin help 27afda08c4SPeter Rosin ADG792A and ADG792G Wide Bandwidth Triple 4:1 Multiplexers 28afda08c4SPeter Rosin 29afda08c4SPeter Rosin The driver supports both operating the three multiplexers in 30afda08c4SPeter Rosin parallel and operating them independently. 31afda08c4SPeter Rosin 32afda08c4SPeter Rosin To compile the driver as a module, choose M here: the module will 33afda08c4SPeter Rosin be called mux-adg792a. 34afda08c4SPeter Rosin 358b9ce695SMircea Caprioruconfig MUX_ADGS1408 368b9ce695SMircea Caprioru tristate "Analog Devices ADGS1408/ADGS1409 Multiplexers" 378b9ce695SMircea Caprioru depends on SPI 388b9ce695SMircea Caprioru help 398b9ce695SMircea Caprioru ADGS1408 8:1 multiplexer and ADGS1409 double 4:1 multiplexer 408b9ce695SMircea Caprioru switches. 418b9ce695SMircea Caprioru 428b9ce695SMircea Caprioru To compile the driver as a module, choose M here: the module will 438b9ce695SMircea Caprioru be called mux-adgs1408. 448b9ce695SMircea Caprioru 452c089f08SPeter Rosinconfig MUX_GPIO 462c089f08SPeter Rosin tristate "GPIO-controlled Multiplexer" 472c089f08SPeter Rosin depends on GPIOLIB || COMPILE_TEST 482c089f08SPeter Rosin help 492c089f08SPeter Rosin GPIO-controlled Multiplexer controller. 502c089f08SPeter Rosin 512c089f08SPeter Rosin The driver builds a single multiplexer controller using a number 522c089f08SPeter Rosin of gpio pins. For N pins, there will be 2^N possible multiplexer 532c089f08SPeter Rosin states. The GPIO pins can be connected (by the hardware) to several 542c089f08SPeter Rosin multiplexers, which in that case will be operated in parallel. 552c089f08SPeter Rosin 562c089f08SPeter Rosin To compile the driver as a module, choose M here: the module will 572c089f08SPeter Rosin be called mux-gpio. 582c089f08SPeter Rosin 5973726380SPhilipp Zabelconfig MUX_MMIO 608ecfaca7SPankaj Bansal tristate "MMIO/Regmap register bitfield-controlled Multiplexer" 615ccf4028SJean Delvare depends on OF 629fe58ecdSKrzysztof Kozlowski select REGMAP_MMIO 6373726380SPhilipp Zabel help 648ecfaca7SPankaj Bansal MMIO/Regmap register bitfield-controlled Multiplexer controller. 6573726380SPhilipp Zabel 668ecfaca7SPankaj Bansal The driver builds multiplexer controllers for bitfields in either 678ecfaca7SPankaj Bansal a syscon register or a driver regmap register. For N bit wide 688ecfaca7SPankaj Bansal bitfields, there will be 2^N possible multiplexer states. 6973726380SPhilipp Zabel 7073726380SPhilipp Zabel To compile the driver as a module, choose M here: the module will 7173726380SPhilipp Zabel be called mux-mmio. 7273726380SPhilipp Zabel 734c19c0ecSPeter Rosinendmenu 74*ce5c7c17SJosua Mayer 75*ce5c7c17SJosua Mayerendif # MULTIPLEXER 76