Commit | Line | Data |
---|---|---|
1478cebf LW |
1 | ARM System Controller ICST clocks |
2 | ||
3 | The ICS525 and ICS307 oscillators are produced by Integrated Devices | |
4 | Technology (IDT). ARM integrated these oscillators deeply into their | |
5 | reference designs by adding special control registers that manage such | |
6 | oscillators to their system controllers. | |
7 | ||
8 | The ARM system controller contains logic to serialize and initialize | |
9 | an ICST clock request after a write to the 32 bit register at an offset | |
10 | into the system controller. Furthermore, to even be able to alter one of | |
11 | these frequencies, the system controller must first be unlocked by | |
12 | writing a special token to another offset in the system controller. | |
13 | ||
14 | The ICST oscillator must be provided inside a system controller node. | |
15 | ||
16 | Required properties: | |
17 | - lock-offset: the offset address into the system controller where the | |
18 | unlocking register is located | |
19 | - vco-offset: the offset address into the system controller where the | |
20 | ICST control register is located (even 32 bit address) | |
21 | - compatible: must be one of "arm,syscon-icst525" or "arm,syscon-icst307" | |
22 | - #clock-cells: must be <0> | |
23 | - clocks: parent clock, since the ICST needs a parent clock to derive its | |
24 | frequency from, this attribute is compulsory. | |
25 | ||
26 | Example: | |
27 | ||
28 | syscon: syscon@10000000 { | |
29 | compatible = "syscon"; | |
30 | reg = <0x10000000 0x1000>; | |
31 | ||
32 | oscclk0: osc0@0c { | |
33 | compatible = "arm,syscon-icst307"; | |
34 | #clock-cells = <0>; | |
35 | lock-offset = <0x20>; | |
36 | vco-offset = <0x0c>; | |
37 | clocks = <&xtal24mhz>; | |
38 | }; | |
39 | (...) | |
40 | }; |