| ARM System Controller ICST clocks |
| |
| The ICS525 and ICS307 oscillators are produced by Integrated Devices |
| Technology (IDT). ARM integrated these oscillators deeply into their |
| reference designs by adding special control registers that manage such |
| oscillators to their system controllers. |
| |
| The ARM system controller contains logic to serialize and initialize |
| an ICST clock request after a write to the 32 bit register at an offset |
| into the system controller. Furthermore, to even be able to alter one of |
| these frequencies, the system controller must first be unlocked by |
| writing a special token to another offset in the system controller. |
| |
| The ICST oscillator must be provided inside a system controller node. |
| |
| Required properties: |
| - lock-offset: the offset address into the system controller where the |
| unlocking register is located |
| - vco-offset: the offset address into the system controller where the |
| ICST control register is located (even 32 bit address) |
| - compatible: must be one of "arm,syscon-icst525" or "arm,syscon-icst307" |
| - #clock-cells: must be <0> |
| - clocks: parent clock, since the ICST needs a parent clock to derive its |
| frequency from, this attribute is compulsory. |
| |
| Example: |
| |
| syscon: syscon@10000000 { |
| compatible = "syscon"; |
| reg = <0x10000000 0x1000>; |
| |
| oscclk0: osc0@0c { |
| compatible = "arm,syscon-icst307"; |
| #clock-cells = <0>; |
| lock-offset = <0x20>; |
| vco-offset = <0x0c>; |
| clocks = <&xtal24mhz>; |
| }; |
| (...) |
| }; |