mux: minimal mux subsystem
Add a new minimalistic subsystem that handles multiplexer controllers.
When multiplexers are used in various places in the kernel, and the
same multiplexer controller can be used for several independent things,
there should be one place to implement support for said multiplexer
controller.
A single multiplexer controller can also be used to control several
parallel multiplexers, that are in turn used by different subsystems
in the kernel, leading to a need to coordinate multiplexer accesses.
The multiplexer subsystem handles this coordination.
Thanks go out to Lars-Peter Clausen, Jonathan Cameron, Rob Herring,
Wolfram Sang, Paul Gortmaker, Dan Carpenter, Colin Ian King, Greg
Kroah-Hartman and last but certainly not least to Philipp Zabel for
helpful comments, reviews, patches and general encouragement!
Reviewed-by: Jonathan Cameron <jic23@kernel.org>
Signed-off-by: Peter Rosin <peda@axentia.se>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Tested-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-05-14 22:51:06 +03:00
#
# Multiplexer devices
#
2017-07-04 11:22:44 +03:00
config MULTIPLEXER
tristate
2017-05-14 22:51:07 +03:00
2017-07-04 11:22:44 +03:00
menu "Multiplexer drivers"
depends on MULTIPLEXER
2017-05-14 22:51:07 +03:00
2017-05-14 22:51:14 +03:00
config MUX_ADG792A
tristate "Analog Devices ADG792A/ADG792G Multiplexers"
2017-06-09 13:22:51 +03:00
depends on I2C
2017-05-14 22:51:14 +03:00
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.
2017-05-14 22:51:07 +03:00
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.
2017-05-14 22:51:16 +03:00
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.
2017-07-04 11:22:44 +03:00
endmenu