Describe how a multiplexer can be used to select which signal is fed to
an io-channel.

Acked-by: Jonathan Cameron <ji...@kernel.org>
Acked-by: Rob Herring <r...@kernel.org>
Signed-off-by: Peter Rosin <p...@axentia.se>
---
 .../bindings/iio/multiplexer/io-channel-mux.txt    | 39 ++++++++++++++++++++++
 MAINTAINERS                                        |  6 ++++
 2 files changed, 45 insertions(+)
 create mode 100644 
Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.txt

diff --git 
a/Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.txt 
b/Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.txt
new file mode 100644
index 000000000000..c82794002595
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.txt
@@ -0,0 +1,39 @@
+I/O channel multiplexer bindings
+
+If a multiplexer is used to select which hardware signal is fed to
+e.g. an ADC channel, these bindings describe that situation.
+
+Required properties:
+- compatible : "io-channel-mux"
+- io-channels : Channel node of the parent channel that has multiplexed
+               input.
+- io-channel-names : Should be "parent".
+- #address-cells = <1>;
+- #size-cells = <0>;
+- mux-controls : Mux controller node to use for operating the mux
+- channels : List of strings, labeling the mux controller states.
+
+For each non-empty string in the channels property, an io-channel will
+be created. The number of this io-channel is the same as the index into
+the list of strings in the channels property, and also matches the mux
+controller state. The mux controller state is described in
+../mux/mux-controller.txt
+
+Example:
+       mux: mux-controller {
+               compatible = "mux-gpio";
+               #mux-control-cells = <0>;
+
+               mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>,
+                           <&pioA 1 GPIO_ACTIVE_HIGH>;
+       };
+
+       adc-mux {
+               compatible = "io-channel-mux";
+               io-channels = <&adc 0>;
+               io-channel-names = "parent";
+
+               mux-controls = <&mux>;
+
+               channels = "sync", "in", "system-regulator";
+       };
diff --git a/MAINTAINERS b/MAINTAINERS
index 353fa1f37a40..3d572d446320 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -6313,6 +6313,12 @@ F:       
Documentation/ABI/testing/sysfs-bus-iio-adc-envelope-detector
 F:     Documentation/devicetree/bindings/iio/adc/envelope-detector.txt
 F:     drivers/iio/adc/envelope-detector.c
 
+IIO MULTIPLEXER
+M:     Peter Rosin <p...@axentia.se>
+L:     linux-...@vger.kernel.org
+S:     Maintained
+F:     Documentation/devicetree/bindings/iio/multiplexer/iio-mux.txt
+
 IIO SUBSYSTEM AND DRIVERS
 M:     Jonathan Cameron <ji...@kernel.org>
 R:     Hartmut Knaack <knaac...@gmx.de>
-- 
2.1.4

Reply via email to