| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- # SPDX-License-Identifier: GPL-2.0
- %YAML 1.2
- ---
- $id: http://devicetree.org/schemas/mux/gpio-mux.yaml#
- $schema: http://devicetree.org/meta-schemas/core.yaml#
- title: GPIO-based multiplexer controller
- maintainers:
- - Peter Rosin <peda@axentia.se>
- description: |+
- Define what GPIO pins are used to control a multiplexer. Or several
- multiplexers, if the same pins control more than one multiplexer.
- The multiplexer state is defined as the number represented by the
- multiplexer GPIO pins, where the first pin is the least significant
- bit. An active pin is a binary 1, an inactive pin is a binary 0.
- properties:
- compatible:
- const: gpio-mux
- mux-gpios:
- description:
- List of gpios used to control the multiplexer, least significant bit first.
- '#mux-control-cells':
- enum: [ 0, 1 ]
- '#mux-state-cells':
- enum: [ 1, 2 ]
- idle-state:
- default: -1
- required:
- - compatible
- - mux-gpios
- anyOf:
- - required:
- - "#mux-control-cells"
- - required:
- - "#mux-state-cells"
- additionalProperties: false
- examples:
- - |
- #include <dt-bindings/gpio/gpio.h>
- mux: mux-controller {
- compatible = "gpio-mux";
- #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-1", "in", "out", "sync-2";
- };
- i2c-mux {
- compatible = "i2c-mux";
- i2c-parent = <&i2c1>;
- mux-controls = <&mux>;
- #address-cells = <1>;
- #size-cells = <0>;
- i2c@0 {
- reg = <0>;
- #address-cells = <1>;
- #size-cells = <0>;
- ssd1307: oled@3c {
- reg = <0x3c>;
- };
- };
- i2c@3 {
- reg = <3>;
- #address-cells = <1>;
- #size-cells = <0>;
- pca9555: pca9555@20 {
- reg = <0x20>;
- };
- };
- };
- ...
|