Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a3b02a9c authored by Peter Rosin's avatar Peter Rosin Committed by Greg Kroah-Hartman
Browse files

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: default avatarJonathan Cameron <jic23@kernel.org>
Signed-off-by: default avatarPeter Rosin <peda@axentia.se>
Reviewed-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
Tested-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 256ac037
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
What:		/sys/class/mux/
Date:		April 2017
KernelVersion:	4.13
Contact:	Peter Rosin <peda@axentia.se>
Description:
		The mux/ class sub-directory belongs to the Generic MUX
		Framework and provides a sysfs interface for using MUX
		controllers.

What:		/sys/class/mux/muxchipN/
Date:		April 2017
KernelVersion:	4.13
Contact:	Peter Rosin <peda@axentia.se>
Description:
		A /sys/class/mux/muxchipN directory is created for each
		probed MUX chip where N is a simple enumeration.
+5 −0
Original line number Diff line number Diff line
@@ -337,6 +337,11 @@ MEM
MFD
  devm_mfd_add_devices()

MUX
  devm_mux_chip_alloc()
  devm_mux_chip_register()
  devm_mux_control_get()

PER-CPU MEM
  devm_alloc_percpu()
  devm_free_percpu()
+3 −0
Original line number Diff line number Diff line
@@ -8719,8 +8719,11 @@ F: include/linux/spi/mmc_spi.h
MULTIPLEXER SUBSYSTEM
M:	Peter Rosin <peda@axentia.se>
S:	Maintained
F:	Documentation/ABI/testing/mux/sysfs-class-mux*
F:	Documentation/devicetree/bindings/mux/
F:	include/linux/dt-bindings/mux/
F:	include/linux/mux/
F:	drivers/mux/

MULTISOUND SOUND DRIVER
M:	Andrew Veliath <andrewtv@usa.net>
+2 −0
Original line number Diff line number Diff line
@@ -206,4 +206,6 @@ source "drivers/fsi/Kconfig"

source "drivers/tee/Kconfig"

source "drivers/mux/Kconfig"

endmenu
+1 −0
Original line number Diff line number Diff line
@@ -181,3 +181,4 @@ obj-$(CONFIG_NVMEM) += nvmem/
obj-$(CONFIG_FPGA)		+= fpga/
obj-$(CONFIG_FSI)		+= fsi/
obj-$(CONFIG_TEE)		+= tee/
obj-$(CONFIG_MULTIPLEXER)	+= mux/
Loading