mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2025-12-08 14:28:42 +00:00
In some cases, it is required to provide the state to which the mux controller has to be set to, from the consumer device tree node. Document the property mux-states that can be used for adding this support. Signed-off-by: Aswath Govindraju <a-govindraju@ti.com> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Peter Rosin <peda@axentia.se> Link: https://lore.kernel.org/r/f4d02ac8-23ee-d891-4056-75c672cc59c9@axentia.se Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
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 bindings
|
|
|
|
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>;
|
|
};
|
|
};
|
|
};
|
|
...
|