100 lines
2.0 KiB
YAML
100 lines
2.0 KiB
YAML
|
# 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>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
...
|