19b358af7SRob Herring# SPDX-License-Identifier: GPL-2.0
29b358af7SRob Herring%YAML 1.2
39b358af7SRob Herring---
49b358af7SRob Herring$id: http://devicetree.org/schemas/mux/gpio-mux.yaml#
59b358af7SRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
69b358af7SRob Herring
7*84e85359SKrzysztof Kozlowskititle: GPIO-based multiplexer controller
89b358af7SRob Herring
99b358af7SRob Herringmaintainers:
109b358af7SRob Herring  - Peter Rosin <peda@axentia.se>
119b358af7SRob Herring
129b358af7SRob Herringdescription: |+
139b358af7SRob Herring  Define what GPIO pins are used to control a multiplexer. Or several
149b358af7SRob Herring  multiplexers, if the same pins control more than one multiplexer.
159b358af7SRob Herring
169b358af7SRob Herring  The multiplexer state is defined as the number represented by the
179b358af7SRob Herring  multiplexer GPIO pins, where the first pin is the least significant
189b358af7SRob Herring  bit. An active pin is a binary 1, an inactive pin is a binary 0.
199b358af7SRob Herring
209b358af7SRob Herringproperties:
219b358af7SRob Herring  compatible:
229b358af7SRob Herring    const: gpio-mux
239b358af7SRob Herring
249b358af7SRob Herring  mux-gpios:
259b358af7SRob Herring    description:
269b358af7SRob Herring      List of gpios used to control the multiplexer, least significant bit first.
279b358af7SRob Herring
289b358af7SRob Herring  '#mux-control-cells':
298f2cade5SAswath Govindraju    enum: [ 0, 1 ]
308f2cade5SAswath Govindraju
318f2cade5SAswath Govindraju  '#mux-state-cells':
328f2cade5SAswath Govindraju    enum: [ 1, 2 ]
339b358af7SRob Herring
349b358af7SRob Herring  idle-state:
359b358af7SRob Herring    default: -1
369b358af7SRob Herring
379b358af7SRob Herringrequired:
389b358af7SRob Herring  - compatible
399b358af7SRob Herring  - mux-gpios
408f2cade5SAswath GovindrajuanyOf:
418f2cade5SAswath Govindraju  - required:
429b358af7SRob Herring      - "#mux-control-cells"
438f2cade5SAswath Govindraju  - required:
448f2cade5SAswath Govindraju      - "#mux-state-cells"
459b358af7SRob Herring
469b358af7SRob HerringadditionalProperties: false
479b358af7SRob Herring
489b358af7SRob Herringexamples:
499b358af7SRob Herring  - |
509b358af7SRob Herring    #include <dt-bindings/gpio/gpio.h>
519b358af7SRob Herring
529b358af7SRob Herring    mux: mux-controller {
539b358af7SRob Herring        compatible = "gpio-mux";
549b358af7SRob Herring        #mux-control-cells = <0>;
559b358af7SRob Herring
569b358af7SRob Herring        mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>,
579b358af7SRob Herring              <&pioA 1 GPIO_ACTIVE_HIGH>;
589b358af7SRob Herring    };
599b358af7SRob Herring
609b358af7SRob Herring    adc-mux {
619b358af7SRob Herring        compatible = "io-channel-mux";
629b358af7SRob Herring        io-channels = <&adc 0>;
639b358af7SRob Herring        io-channel-names = "parent";
649b358af7SRob Herring
659b358af7SRob Herring        mux-controls = <&mux>;
669b358af7SRob Herring
679b358af7SRob Herring        channels = "sync-1", "in", "out", "sync-2";
689b358af7SRob Herring    };
699b358af7SRob Herring
709b358af7SRob Herring    i2c-mux {
719b358af7SRob Herring        compatible = "i2c-mux";
729b358af7SRob Herring        i2c-parent = <&i2c1>;
739b358af7SRob Herring
749b358af7SRob Herring        mux-controls = <&mux>;
759b358af7SRob Herring
769b358af7SRob Herring        #address-cells = <1>;
779b358af7SRob Herring        #size-cells = <0>;
789b358af7SRob Herring
799b358af7SRob Herring        i2c@0 {
809b358af7SRob Herring            reg = <0>;
819b358af7SRob Herring            #address-cells = <1>;
829b358af7SRob Herring            #size-cells = <0>;
839b358af7SRob Herring
849b358af7SRob Herring            ssd1307: oled@3c {
859b358af7SRob Herring                reg = <0x3c>;
869b358af7SRob Herring            };
879b358af7SRob Herring        };
889b358af7SRob Herring
899b358af7SRob Herring        i2c@3 {
909b358af7SRob Herring            reg = <3>;
919b358af7SRob Herring            #address-cells = <1>;
929b358af7SRob Herring            #size-cells = <0>;
939b358af7SRob Herring
949b358af7SRob Herring            pca9555: pca9555@20 {
959b358af7SRob Herring                reg = <0x20>;
969b358af7SRob Herring            };
979b358af7SRob Herring        };
989b358af7SRob Herring    };
999b358af7SRob Herring...
100