forked from Minki/linux
1478cebfa0
This adds the device tree bindings for the ARM Syscon ICST oscillators, which is a register-level interface to the Integrated Device Technology (IDT) ICS525 and ICS307 serially programmable oscillators. Cc: devicetree@vger.kernel.org Cc: Michael Turquette <mturquette@baylibre.com> Cc: linux-clk@vger.kernel.org Acked-by: Stephen Boyd <sboyd@codeaurora.org> Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
41 lines
1.4 KiB
Plaintext
41 lines
1.4 KiB
Plaintext
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>;
|
|
};
|
|
(...)
|
|
};
|