Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / mux / adi,adg792a.txt
1 Bindings for Analog Devices ADG792A/G Triple 4:1 Multiplexers
2
3 Required properties:
4 - compatible : "adi,adg792a" or "adi,adg792g"
5 - #mux-control-cells : <0> if parallel (the three muxes are bound together
6   with a single mux controller controlling all three muxes), or <1> if
7   not (one mux controller for each mux).
8 * Standard mux-controller bindings as described in mux-controller.yaml
9
10 Optional properties for ADG792G:
11 - gpio-controller : if present, #gpio-cells below is required.
12 - #gpio-cells : should be <2>
13                           - First cell is the GPO line number, i.e. 0 or 1
14                           - Second cell is used to specify active high (0)
15                             or active low (1)
16
17 Optional properties:
18 - idle-state : if present, array of states that the mux controllers will have
19   when idle. The special state MUX_IDLE_AS_IS is the default and
20   MUX_IDLE_DISCONNECT is also supported.
21
22 States 0 through 3 correspond to signals A through D in the datasheet.
23
24 Example:
25
26         /*
27          * Three independent mux controllers (of which one is used).
28          * Mux 0 is disconnected when idle, mux 1 idles in the previously
29          * selected state and mux 2 idles with signal B.
30          */
31         &i2c0 {
32                 mux: mux-controller@50 {
33                         compatible = "adi,adg792a";
34                         reg = <0x50>;
35                         #mux-control-cells = <1>;
36
37                         idle-state = <MUX_IDLE_DISCONNECT MUX_IDLE_AS_IS 1>;
38                 };
39         };
40
41         adc-mux {
42                 compatible = "io-channel-mux";
43                 io-channels = <&adc 0>;
44                 io-channel-names = "parent";
45
46                 mux-controls = <&mux 2>;
47
48                 channels = "sync-1", "", "out";
49         };
50
51
52         /*
53          * Three parallel muxes with one mux controller, useful e.g. if
54          * the adc is differential, thus needing two signals to be muxed
55          * simultaneously for correct operation.
56          */
57         &i2c0 {
58                 pmux: mux-controller@50 {
59                         compatible = "adi,adg792a";
60                         reg = <0x50>;
61                         #mux-control-cells = <0>;
62
63                         idle-state = <1>;
64                 };
65         };
66
67         diff-adc-mux {
68                 compatible = "io-channel-mux";
69                 io-channels = <&adc 0>;
70                 io-channel-names = "parent";
71
72                 mux-controls = <&pmux>;
73
74                 channels = "sync-1", "", "out";
75         };