1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/iio/multiplexer/io-channel-mux.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: I/O channel multiplexer bindings
8
9maintainers:
10  - Peter Rosin <peda@axentia.se>
11
12description: |
13  If a multiplexer is used to select which hardware signal is fed to
14  e.g. an ADC channel, these bindings describe that situation.
15
16  For each non-empty string in the channels property, an io-channel will be
17  created. The number of this io-channel is the same as the index into the list
18  of strings in the channels property, and also matches the mux controller
19  state. The mux controller state is described in
20  Documentation/devicetree/bindings/mux/mux-controller.yaml
21
22properties:
23
24  compatible:
25    const: io-channel-mux
26
27  io-channels:
28    maxItems: 1
29    description: Channel node of the parent channel that has multiplexed input.
30
31  io-channel-names:
32    const: parent
33
34  mux-controls: true
35  mux-control-names: true
36
37  channels:
38    $ref: /schemas/types.yaml#/definitions/string-array
39    description:
40      List of strings, labeling the mux controller states.
41
42  settle-time-us:
43    default: 0
44    description:
45      Time required for analog signals to settle after muxing.
46
47required:
48  - compatible
49  - io-channels
50  - io-channel-names
51  - mux-controls
52  - channels
53
54additionalProperties: false
55
56examples:
57  - |
58    #include <dt-bindings/gpio/gpio.h>
59    mux: mux-controller {
60      compatible = "gpio-mux";
61      #mux-control-cells = <0>;
62
63      mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>,
64                  <&pioA 1 GPIO_ACTIVE_HIGH>;
65    };
66
67    adc-mux {
68      compatible = "io-channel-mux";
69      io-channels = <&adc 0>;
70      io-channel-names = "parent";
71
72      mux-controls = <&mux>;
73      channels = "sync", "in", "system-regulator";
74    };
75...
76