]>
Commit | Line | Data |
---|---|---|
73100e79 | 1 | Binding for IDT VersaClock 5,6 programmable i2c clock generators. |
9044d873 | 2 | |
73100e79 MV |
3 | The IDT VersaClock 5 and VersaClock 6 are programmable i2c clock |
4 | generators providing from 3 to 12 output clocks. | |
9044d873 MV |
5 | |
6 | ==I2C device node== | |
7 | ||
8 | Required properties: | |
73100e79 MV |
9 | - compatible: shall be one of |
10 | "idt,5p49v5923" | |
3a11c661 | 11 | "idt,5p49v5925" |
73100e79 MV |
12 | "idt,5p49v5933" |
13 | "idt,5p49v5935" | |
14 | "idt,5p49v6901" | |
d63ed4ff | 15 | "idt,5p49v6965" |
9044d873 MV |
16 | - reg: i2c device address, shall be 0x68 or 0x6a. |
17 | - #clock-cells: from common clock binding; shall be set to 1. | |
18 | - clocks: from common clock binding; list of parent clock handles, | |
73100e79 | 19 | - 5p49v5923 and |
3a11c661 | 20 | 5p49v5925 and |
73100e79 | 21 | 5p49v6901: (required) either or both of XTAL or CLKIN |
9044d873 | 22 | reference clock. |
a330b6f5 AF |
23 | - 5p49v5933 and |
24 | - 5p49v5935: (optional) property not present (internal | |
9044d873 MV |
25 | Xtal used) or CLKIN reference |
26 | clock. | |
27 | - clock-names: from common clock binding; clock input names, can be | |
73100e79 | 28 | - 5p49v5923 and |
3a11c661 | 29 | 5p49v5925 and |
73100e79 | 30 | 5p49v6901: (required) either or both of "xin", "clkin". |
a330b6f5 AF |
31 | - 5p49v5933 and |
32 | - 5p49v5935: (optional) property not present or "clkin". | |
9044d873 | 33 | |
34662f6e AF |
34 | For all output ports, a corresponding, optional child node named OUT1, |
35 | OUT2, etc. can represent a each output, and the node can be used to | |
36 | specify the following: | |
37 | ||
38 | - itd,mode: can be one of the following: | |
39 | - VC5_LVPECL | |
40 | - VC5_CMOS | |
41 | - VC5_HCSL33 | |
42 | - VC5_LVDS | |
43 | - VC5_CMOS2 | |
44 | - VC5_CMOSD | |
45 | - VC5_HCSL25 | |
46 | ||
47 | - idt,voltage-microvolts: can be one of the following | |
48 | - 1800000 | |
49 | - 2500000 | |
50 | - 3300000 | |
51 | - idt,slew-percent: Percent of normal, can be one of | |
52 | - 80 | |
53 | - 85 | |
54 | - 90 | |
55 | - 100 | |
56 | ||
9044d873 MV |
57 | ==Mapping between clock specifier and physical pins== |
58 | ||
59 | When referencing the provided clock in the DT using phandle and | |
60 | clock specifier, the following mapping applies: | |
61 | ||
62 | 5P49V5923: | |
63 | 0 -- OUT0_SEL_I2CB | |
64 | 1 -- OUT1 | |
65 | 2 -- OUT2 | |
66 | ||
67 | 5P49V5933: | |
68 | 0 -- OUT0_SEL_I2CB | |
69 | 1 -- OUT1 | |
70 | 2 -- OUT4 | |
71 | ||
3a11c661 | 72 | 5P49V5925 and |
a330b6f5 AF |
73 | 5P49V5935: |
74 | 0 -- OUT0_SEL_I2CB | |
75 | 1 -- OUT1 | |
76 | 2 -- OUT2 | |
77 | 3 -- OUT3 | |
78 | 4 -- OUT4 | |
79 | ||
73100e79 MV |
80 | 5P49V6901: |
81 | 0 -- OUT0_SEL_I2CB | |
82 | 1 -- OUT1 | |
83 | 2 -- OUT2 | |
84 | 3 -- OUT3 | |
85 | 4 -- OUT4 | |
86 | ||
9044d873 MV |
87 | ==Example== |
88 | ||
89 | /* 25MHz reference crystal */ | |
90 | ref25: ref25m { | |
91 | compatible = "fixed-clock"; | |
92 | #clock-cells = <0>; | |
93 | clock-frequency = <25000000>; | |
94 | }; | |
95 | ||
96 | i2c-master-node { | |
97 | ||
98 | /* IDT 5P49V5923 i2c clock generator */ | |
99 | vc5: clock-generator@6a { | |
100 | compatible = "idt,5p49v5923"; | |
101 | reg = <0x6a>; | |
102 | #clock-cells = <1>; | |
103 | ||
104 | /* Connect XIN input to 25MHz reference */ | |
105 | clocks = <&ref25m>; | |
106 | clock-names = "xin"; | |
34662f6e AF |
107 | |
108 | OUT1 { | |
109 | itd,mode = <VC5_CMOS>; | |
110 | idt,voltage-microvolts = <1800000>; | |
111 | idt,slew-percent = <80>; | |
112 | }; | |
113 | OUT2 { | |
114 | ... | |
115 | }; | |
116 | ... | |
9044d873 MV |
117 | }; |
118 | }; | |
119 | ||
120 | /* Consumer referencing the 5P49V5923 pin OUT1 */ | |
121 | consumer { | |
122 | ... | |
123 | clocks = <&vc5 1>; | |
124 | ... | |
125 | } |