GNU Linux-libre 4.14.266-gnu1
[releases.git] / Documentation / devicetree / bindings / clock / idt,versaclock5.txt
1 Binding for IDT VersaClock 5,6 programmable i2c clock generators.
2
3 The IDT VersaClock 5 and VersaClock 6 are programmable i2c clock
4 generators providing from 3 to 12 output clocks.
5
6 ==I2C device node==
7
8 Required properties:
9 - compatible:   shall be one of
10                 "idt,5p49v5923"
11                 "idt,5p49v5925"
12                 "idt,5p49v5933"
13                 "idt,5p49v5935"
14                 "idt,5p49v6901"
15 - reg:          i2c device address, shall be 0x68 or 0x6a.
16 - #clock-cells: from common clock binding; shall be set to 1.
17 - clocks:       from common clock binding; list of parent clock handles,
18                 - 5p49v5923 and
19                   5p49v5925 and
20                   5p49v6901: (required) either or both of XTAL or CLKIN
21                                         reference clock.
22                 - 5p49v5933 and
23                 - 5p49v5935: (optional) property not present (internal
24                                         Xtal used) or CLKIN reference
25                                         clock.
26 - clock-names:  from common clock binding; clock input names, can be
27                 - 5p49v5923 and
28                   5p49v5925 and
29                   5p49v6901: (required) either or both of "xin", "clkin".
30                 - 5p49v5933 and
31                 - 5p49v5935: (optional) property not present or "clkin".
32
33 ==Mapping between clock specifier and physical pins==
34
35 When referencing the provided clock in the DT using phandle and
36 clock specifier, the following mapping applies:
37
38 5P49V5923:
39         0 -- OUT0_SEL_I2CB
40         1 -- OUT1
41         2 -- OUT2
42
43 5P49V5933:
44         0 -- OUT0_SEL_I2CB
45         1 -- OUT1
46         2 -- OUT4
47
48 5P49V5925 and
49 5P49V5935:
50         0 -- OUT0_SEL_I2CB
51         1 -- OUT1
52         2 -- OUT2
53         3 -- OUT3
54         4 -- OUT4
55
56 5P49V6901:
57         0 -- OUT0_SEL_I2CB
58         1 -- OUT1
59         2 -- OUT2
60         3 -- OUT3
61         4 -- OUT4
62
63 ==Example==
64
65 /* 25MHz reference crystal */
66 ref25: ref25m {
67         compatible = "fixed-clock";
68         #clock-cells = <0>;
69         clock-frequency = <25000000>;
70 };
71
72 i2c-master-node {
73
74         /* IDT 5P49V5923 i2c clock generator */
75         vc5: clock-generator@6a {
76                 compatible = "idt,5p49v5923";
77                 reg = <0x6a>;
78                 #clock-cells = <1>;
79
80                 /* Connect XIN input to 25MHz reference */
81                 clocks = <&ref25m>;
82                 clock-names = "xin";
83         };
84 };
85
86 /* Consumer referencing the 5P49V5923 pin OUT1 */
87 consumer {
88         ...
89         clocks = <&vc5 1>;
90         ...
91 }