[08/13,v2] clk: add ARM syscon ICST device tree bindings

Message ID 1445866427-14002-1-git-send-email-linus.walleij@linaro.org
State New
Headers show

Commit Message

Linus Walleij Oct. 26, 2015, 1:33 p.m.
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: Stephen Boyd <sboyd@codeaurora.org>
Cc: linux-clk@vger.kernel.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

---
ChangeLog v1->v2:
- Spelling fixes.

I'm looking for an ACK from the CLK maintainers to take this
through the ARM SoC tree once the series stabilize.
---
 .../devicetree/bindings/clock/arm-syscon-icst.txt  | 40 ++++++++++++++++++++++
 1 file changed, 40 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/clock/arm-syscon-icst.txt

-- 
2.4.3

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Rob Herring Oct. 27, 2015, 8:04 a.m. | #1
On Mon, Oct 26, 2015 at 8:33 AM, Linus Walleij <linus.walleij@linaro.org> wrote:
> 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: Stephen Boyd <sboyd@codeaurora.org>

> Cc: linux-clk@vger.kernel.org

> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>


Acked-by: Rob Herring <robh@kernel.org>


> ---

> ChangeLog v1->v2:

> - Spelling fixes.

>

> I'm looking for an ACK from the CLK maintainers to take this

> through the ARM SoC tree once the series stabilize.

> ---

>  .../devicetree/bindings/clock/arm-syscon-icst.txt  | 40 ++++++++++++++++++++++

>  1 file changed, 40 insertions(+)

>  create mode 100644 Documentation/devicetree/bindings/clock/arm-syscon-icst.txt

>

> diff --git a/Documentation/devicetree/bindings/clock/arm-syscon-icst.txt b/Documentation/devicetree/bindings/clock/arm-syscon-icst.txt

> new file mode 100644

> index 000000000000..8b7177cecb36

> --- /dev/null

> +++ b/Documentation/devicetree/bindings/clock/arm-syscon-icst.txt

> @@ -0,0 +1,40 @@

> +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>;

> +       };

> +       (...)

> +};

> --

> 2.4.3

>

> --

> To unsubscribe from this list: send the line "unsubscribe devicetree" in

> the body of a message to majordomo@vger.kernel.org

> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/Documentation/devicetree/bindings/clock/arm-syscon-icst.txt b/Documentation/devicetree/bindings/clock/arm-syscon-icst.txt
new file mode 100644
index 000000000000..8b7177cecb36
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/arm-syscon-icst.txt
@@ -0,0 +1,40 @@ 
+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>;
+	};
+	(...)
+};