devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] dt-bindings: clock: Create YAML schema for ICST clocks
@ 2020-02-13 14:11 Linus Walleij
  2020-02-13 20:39 ` Rob Herring
  0 siblings, 1 reply; 2+ messages in thread
From: Linus Walleij @ 2020-02-13 14:11 UTC (permalink / raw)
  To: Michael Turquette, Stephen Boyd; +Cc: linux-clk, Linus Walleij, devicetree

The ICST clocks used in the ARM Integrator, Versatile and
RealView platforms are updated to use YAML schema, and two
new ICST clocks used by the Integrator IM-PD1 logical module
are added in the process.

Cc: devicetree@vger.kernel.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 .../bindings/clock/arm,syscon-icst.yaml       | 102 ++++++++++++++++++
 .../bindings/clock/arm-integrator.txt         |  34 ------
 .../bindings/clock/arm-syscon-icst.txt        |  70 ------------
 3 files changed, 102 insertions(+), 104 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml
 delete mode 100644 Documentation/devicetree/bindings/clock/arm-integrator.txt
 delete mode 100644 Documentation/devicetree/bindings/clock/arm-syscon-icst.txt

diff --git a/Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml b/Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml
new file mode 100644
index 000000000000..06c4d84e8c3d
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml
@@ -0,0 +1,102 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/arm,syscon-icst.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ARM System Conctroller ICST Clocks
+
+maintainers:
+  - Linus Walleij <linusw@kernel.org>
+
+description: 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 various ARM system controllers contain 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.
+
+  Some ARM hardware contain special versions of the serial interface that only
+  connects the low 8 bits of the VDW (missing one bit), hardwires RDW to
+  different values and sometimes also hardwire the output divider. They
+  therefore have special compatible strings as per this table (the OD value is
+  the value on the pins, not the resulting output divider).
+
+  In the core modules and logic tiles, the ICST is a configurable clock fed
+  from a 24 MHz clock on the motherboard (usually the main crystal) used for
+  generating e.g. video clocks. It is located on the core module and there is
+  only one of these. This clock node must be a subnode of the core module.
+
+  Hardware variant         RDW     OD          VDW
+
+  Integrator/AP            22      1           Bit 8 0, rest variable
+  integratorap-cm
+
+  Integrator/AP            46      3           Bit 8 0, rest variable
+  integratorap-sys
+
+  Integrator/AP            22 or   1           17 or (33 or 25 MHz)
+  integratorap-pci         14      1           14
+
+  Integrator/CP            22      variable    Bit 8 0, rest variable
+  integratorcp-cm-core
+
+  Integrator/CP            22      variable    Bit 8 0, rest variable
+  integratorcp-cm-mem
+
+  The ICST oscillator must be provided inside a system controller node.
+
+properties:
+  "#clock-cells":
+    const: 0
+
+  compatible:
+    enum:
+      - arm,syscon-icst525
+      - arm,syscon-icst307
+      - arm,syscon-icst525-integratorap-cm
+      - arm,syscon-icst525-integratorap-sys
+      - arm,syscon-icst525-integratorap-pci
+      - arm,syscon-icst525-integratorcp-cm-core
+      - arm,syscon-icst525-integratorcp-cm-mem
+      - arm,integrator-cm-auxosc
+      - arm,versatile-cm-auxosc
+      - arm,impd-vco1
+      - arm,impd-vco2
+
+  clocks:
+    description: Parent clock for the ICST VCO
+    maxItems: 1
+
+  clock-output-names:
+    maxItems: 1
+
+  lock-offset:
+    $ref: '/schemas/types.yaml#/definitions/uint32'
+    description: Offset to the unlocking register for the oscillator
+
+  vco-offset:
+    $ref: '/schemas/types.yaml#/definitions/uint32'
+    description: Offset to the VCO register for the oscillator
+
+required:
+  - "#clock-cells"
+  - compatible
+  - clocks
+
+examples:
+  - |
+    vco1: clock@00 {
+      compatible = "arm,impd1-vco1";
+      #clock-cells = <0>;
+      lock-offset = <0x08>;
+      vco-offset = <0x00>;
+      clocks = <&sysclk>;
+      clock-output-names = "IM-PD1-VCO1";
+    };
+
+...
diff --git a/Documentation/devicetree/bindings/clock/arm-integrator.txt b/Documentation/devicetree/bindings/clock/arm-integrator.txt
deleted file mode 100644
index 11f5f95f571b..000000000000
--- a/Documentation/devicetree/bindings/clock/arm-integrator.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-Clock bindings for ARM Integrator and Versatile Core Module clocks
-
-Auxiliary Oscillator Clock
-
-This is a configurable clock fed from a 24 MHz chrystal,
-used for generating e.g. video clocks. It is located on the
-core module and there is only one of these.
-
-This clock node *must* be a subnode of the core module, since
-it obtains the base address for it's address range from its
-parent node.
-
-
-Required properties:
-- compatible: must be "arm,integrator-cm-auxosc" or "arm,versatile-cm-auxosc"
-- #clock-cells: must be <0>
-
-Optional properties:
-- clocks: parent clock(s)
-
-Example:
-
-core-module@10000000 {
-	xtal24mhz: xtal24mhz@24M {
-		#clock-cells = <0>;
-		compatible = "fixed-clock";
-		clock-frequency = <24000000>;
-	};
-	auxosc: cm_aux_osc@25M {
-		#clock-cells = <0>;
-		compatible = "arm,integrator-cm-auxosc";
-		clocks = <&xtal24mhz>;
-	};
-};
diff --git a/Documentation/devicetree/bindings/clock/arm-syscon-icst.txt b/Documentation/devicetree/bindings/clock/arm-syscon-icst.txt
deleted file mode 100644
index 4cd81742038f..000000000000
--- a/Documentation/devicetree/bindings/clock/arm-syscon-icst.txt
+++ /dev/null
@@ -1,70 +0,0 @@
-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 various ARM system controllers contain 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.
-
-Some ARM hardware contain special versions of the serial interface that only
-connects the low 8 bits of the VDW (missing one bit), hardwires RDW to
-different values and sometimes also hardwire the output divider. They
-therefore have special compatible strings as per this table (the OD value is
-the value on the pins, not the resulting output divider):
-
-Hardware variant:        RDW     OD          VDW
-
-Integrator/AP            22      1           Bit 8 0, rest variable
-integratorap-cm
-
-Integrator/AP            46      3           Bit 8 0, rest variable
-integratorap-sys
-
-Integrator/AP            22 or   1           17 or (33 or 25 MHz)
-integratorap-pci         14      1           14
-
-Integrator/CP            22      variable    Bit 8 0, rest variable
-integratorcp-cm-core
-
-Integrator/CP            22      variable    Bit 8 0, rest variable
-integratorcp-cm-mem
-
-The ICST oscillator must be provided inside a system controller node.
-
-Required properties:
-- compatible: must be one of
-  "arm,syscon-icst525"
-  "arm,syscon-icst307"
-  "arm,syscon-icst525-integratorap-cm"
-  "arm,syscon-icst525-integratorap-sys"
-  "arm,syscon-icst525-integratorap-pci"
-  "arm,syscon-icst525-integratorcp-cm-core"
-  "arm,syscon-icst525-integratorcp-cm-mem"
-- 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)
-- #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@c {
-		compatible = "arm,syscon-icst307";
-		#clock-cells = <0>;
-		lock-offset = <0x20>;
-		vco-offset = <0x0c>;
-		clocks = <&xtal24mhz>;
-	};
-	(...)
-};
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH 1/2] dt-bindings: clock: Create YAML schema for ICST clocks
  2020-02-13 14:11 [PATCH 1/2] dt-bindings: clock: Create YAML schema for ICST clocks Linus Walleij
@ 2020-02-13 20:39 ` Rob Herring
  0 siblings, 0 replies; 2+ messages in thread
From: Rob Herring @ 2020-02-13 20:39 UTC (permalink / raw)
  To: Linus Walleij; +Cc: Michael Turquette, Stephen Boyd, linux-clk, devicetree

On Thu, Feb 13, 2020 at 8:11 AM Linus Walleij <linus.walleij@linaro.org> wrote:
>
> The ICST clocks used in the ARM Integrator, Versatile and
> RealView platforms are updated to use YAML schema, and two
> new ICST clocks used by the Integrator IM-PD1 logical module
> are added in the process.
>
> Cc: devicetree@vger.kernel.org
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
>  .../bindings/clock/arm,syscon-icst.yaml       | 102 ++++++++++++++++++
>  .../bindings/clock/arm-integrator.txt         |  34 ------
>  .../bindings/clock/arm-syscon-icst.txt        |  70 ------------
>  3 files changed, 102 insertions(+), 104 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml
>  delete mode 100644 Documentation/devicetree/bindings/clock/arm-integrator.txt
>  delete mode 100644 Documentation/devicetree/bindings/clock/arm-syscon-icst.txt
>
> diff --git a/Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml b/Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml
> new file mode 100644
> index 000000000000..06c4d84e8c3d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml
> @@ -0,0 +1,102 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/clock/arm,syscon-icst.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: ARM System Conctroller ICST Clocks
> +
> +maintainers:
> +  - Linus Walleij <linusw@kernel.org>
> +
> +description: The ICS525 and ICS307 oscillators are produced by Integrated

Needs a literal block '|' to preserve formatting of your table below.

With that,

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

> +  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 various ARM system controllers contain 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.
> +
> +  Some ARM hardware contain special versions of the serial interface that only
> +  connects the low 8 bits of the VDW (missing one bit), hardwires RDW to
> +  different values and sometimes also hardwire the output divider. They
> +  therefore have special compatible strings as per this table (the OD value is
> +  the value on the pins, not the resulting output divider).
> +
> +  In the core modules and logic tiles, the ICST is a configurable clock fed
> +  from a 24 MHz clock on the motherboard (usually the main crystal) used for
> +  generating e.g. video clocks. It is located on the core module and there is
> +  only one of these. This clock node must be a subnode of the core module.
> +
> +  Hardware variant         RDW     OD          VDW
> +
> +  Integrator/AP            22      1           Bit 8 0, rest variable
> +  integratorap-cm
> +
> +  Integrator/AP            46      3           Bit 8 0, rest variable
> +  integratorap-sys
> +
> +  Integrator/AP            22 or   1           17 or (33 or 25 MHz)
> +  integratorap-pci         14      1           14
> +
> +  Integrator/CP            22      variable    Bit 8 0, rest variable
> +  integratorcp-cm-core
> +
> +  Integrator/CP            22      variable    Bit 8 0, rest variable
> +  integratorcp-cm-mem
> +
> +  The ICST oscillator must be provided inside a system controller node.
> +
> +properties:
> +  "#clock-cells":
> +    const: 0
> +
> +  compatible:
> +    enum:
> +      - arm,syscon-icst525
> +      - arm,syscon-icst307
> +      - arm,syscon-icst525-integratorap-cm
> +      - arm,syscon-icst525-integratorap-sys
> +      - arm,syscon-icst525-integratorap-pci
> +      - arm,syscon-icst525-integratorcp-cm-core
> +      - arm,syscon-icst525-integratorcp-cm-mem
> +      - arm,integrator-cm-auxosc
> +      - arm,versatile-cm-auxosc
> +      - arm,impd-vco1
> +      - arm,impd-vco2
> +
> +  clocks:
> +    description: Parent clock for the ICST VCO
> +    maxItems: 1
> +
> +  clock-output-names:
> +    maxItems: 1
> +
> +  lock-offset:
> +    $ref: '/schemas/types.yaml#/definitions/uint32'
> +    description: Offset to the unlocking register for the oscillator
> +
> +  vco-offset:
> +    $ref: '/schemas/types.yaml#/definitions/uint32'
> +    description: Offset to the VCO register for the oscillator
> +
> +required:
> +  - "#clock-cells"
> +  - compatible
> +  - clocks
> +
> +examples:
> +  - |
> +    vco1: clock@00 {
> +      compatible = "arm,impd1-vco1";
> +      #clock-cells = <0>;
> +      lock-offset = <0x08>;
> +      vco-offset = <0x00>;
> +      clocks = <&sysclk>;
> +      clock-output-names = "IM-PD1-VCO1";
> +    };
> +
> +...
> diff --git a/Documentation/devicetree/bindings/clock/arm-integrator.txt b/Documentation/devicetree/bindings/clock/arm-integrator.txt
> deleted file mode 100644
> index 11f5f95f571b..000000000000
> --- a/Documentation/devicetree/bindings/clock/arm-integrator.txt
> +++ /dev/null
> @@ -1,34 +0,0 @@
> -Clock bindings for ARM Integrator and Versatile Core Module clocks
> -
> -Auxiliary Oscillator Clock
> -
> -This is a configurable clock fed from a 24 MHz chrystal,
> -used for generating e.g. video clocks. It is located on the
> -core module and there is only one of these.
> -
> -This clock node *must* be a subnode of the core module, since
> -it obtains the base address for it's address range from its
> -parent node.
> -
> -
> -Required properties:
> -- compatible: must be "arm,integrator-cm-auxosc" or "arm,versatile-cm-auxosc"
> -- #clock-cells: must be <0>
> -
> -Optional properties:
> -- clocks: parent clock(s)
> -
> -Example:
> -
> -core-module@10000000 {
> -       xtal24mhz: xtal24mhz@24M {
> -               #clock-cells = <0>;
> -               compatible = "fixed-clock";
> -               clock-frequency = <24000000>;
> -       };
> -       auxosc: cm_aux_osc@25M {
> -               #clock-cells = <0>;
> -               compatible = "arm,integrator-cm-auxosc";
> -               clocks = <&xtal24mhz>;
> -       };
> -};
> diff --git a/Documentation/devicetree/bindings/clock/arm-syscon-icst.txt b/Documentation/devicetree/bindings/clock/arm-syscon-icst.txt
> deleted file mode 100644
> index 4cd81742038f..000000000000
> --- a/Documentation/devicetree/bindings/clock/arm-syscon-icst.txt
> +++ /dev/null
> @@ -1,70 +0,0 @@
> -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 various ARM system controllers contain 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.
> -
> -Some ARM hardware contain special versions of the serial interface that only
> -connects the low 8 bits of the VDW (missing one bit), hardwires RDW to
> -different values and sometimes also hardwire the output divider. They
> -therefore have special compatible strings as per this table (the OD value is
> -the value on the pins, not the resulting output divider):
> -
> -Hardware variant:        RDW     OD          VDW
> -
> -Integrator/AP            22      1           Bit 8 0, rest variable
> -integratorap-cm
> -
> -Integrator/AP            46      3           Bit 8 0, rest variable
> -integratorap-sys
> -
> -Integrator/AP            22 or   1           17 or (33 or 25 MHz)
> -integratorap-pci         14      1           14
> -
> -Integrator/CP            22      variable    Bit 8 0, rest variable
> -integratorcp-cm-core
> -
> -Integrator/CP            22      variable    Bit 8 0, rest variable
> -integratorcp-cm-mem
> -
> -The ICST oscillator must be provided inside a system controller node.
> -
> -Required properties:
> -- compatible: must be one of
> -  "arm,syscon-icst525"
> -  "arm,syscon-icst307"
> -  "arm,syscon-icst525-integratorap-cm"
> -  "arm,syscon-icst525-integratorap-sys"
> -  "arm,syscon-icst525-integratorap-pci"
> -  "arm,syscon-icst525-integratorcp-cm-core"
> -  "arm,syscon-icst525-integratorcp-cm-mem"
> -- 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)
> -- #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@c {
> -               compatible = "arm,syscon-icst307";
> -               #clock-cells = <0>;
> -               lock-offset = <0x20>;
> -               vco-offset = <0x0c>;
> -               clocks = <&xtal24mhz>;
> -       };
> -       (...)
> -};
> --
> 2.23.0
>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-02-13 20:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-13 14:11 [PATCH 1/2] dt-bindings: clock: Create YAML schema for ICST clocks Linus Walleij
2020-02-13 20:39 ` Rob Herring

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).