Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / iio / multiplexer / io-channel-mux.yaml
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
7 title: I/O channel multiplexer bindings
8
9 maintainers:
10   - Peter Rosin <peda@axentia.se>
11
12 description: |
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
22 properties:
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 required:
43   - compatible
44   - io-channels
45   - io-channel-names
46   - mux-controls
47   - channels
48
49 additionalProperties: false
50
51 examples:
52   - |
53     #include <dt-bindings/gpio/gpio.h>
54     mux: mux-controller {
55       compatible = "gpio-mux";
56       #mux-control-cells = <0>;
57
58       mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>,
59                   <&pioA 1 GPIO_ACTIVE_HIGH>;
60     };
61
62     adc-mux {
63       compatible = "io-channel-mux";
64       io-channels = <&adc 0>;
65       io-channel-names = "parent";
66
67       mux-controls = <&mux>;
68       channels = "sync", "in", "system-regulator";
69     };
70 ...