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-15 03:51:06 +08:00
|
|
|
#
|
|
|
|
# Multiplexer devices
|
|
|
|
#
|
|
|
|
|
|
|
|
menuconfig MULTIPLEXER
|
|
|
|
tristate "Multiplexer subsystem"
|
|
|
|
help
|
|
|
|
Multiplexer controller subsystem. Multiplexers are used in a
|
|
|
|
variety of settings, and this subsystem abstracts their use
|
|
|
|
so that the rest of the kernel sees a common interface. When
|
|
|
|
multiple parallel multiplexers are controlled by one single
|
|
|
|
multiplexer controller, this subsystem also coordinates the
|
|
|
|
multiplexer accesses.
|
|
|
|
|
|
|
|
To compile the subsystem as a module, choose M here: the module will
|
|
|
|
be called mux-core.
|
2017-05-15 03:51:07 +08:00
|
|
|
|
|
|
|
if MULTIPLEXER
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
endif
|