]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
dt-bindings: clock: Convert brcm,bcm2835-cprman to DT schema
authorRob Herring (Arm) <robh@kernel.org>
Wed, 21 May 2025 00:46:24 +0000 (19:46 -0500)
committerStephen Boyd <sboyd@kernel.org>
Thu, 19 Jun 2025 01:38:43 +0000 (18:38 -0700)
Convert the Broadcom BCM2835 CPRMAN clock binding to DT schema format.
It's a straight forward conversion.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://lore.kernel.org/r/20250521004625.1791913-1-robh@kernel.org
Reviewed-by: Stefan Wahren <wahrenst@gmx.net>
[sboyd@kernel.org: Add list to maintainers]
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Documentation/devicetree/bindings/clock/brcm,bcm2835-cprman.txt [deleted file]
Documentation/devicetree/bindings/clock/brcm,bcm2835-cprman.yaml [new file with mode: 0644]

diff --git a/Documentation/devicetree/bindings/clock/brcm,bcm2835-cprman.txt b/Documentation/devicetree/bindings/clock/brcm,bcm2835-cprman.txt
deleted file mode 100644 (file)
index 9e0b03a..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-Broadcom BCM2835 CPRMAN clocks
-
-This binding uses the common clock binding:
-    Documentation/devicetree/bindings/clock/clock-bindings.txt
-
-The CPRMAN clock controller generates clocks in the audio power domain
-of the BCM2835.  There is a level of PLLs deriving from an external
-oscillator, a level of PLL dividers that produce channels off of the
-few PLLs, and a level of mostly-generic clock generators sourcing from
-the PLL channels.  Most other hardware components source from the
-clock generators, but a few (like the ARM or HDMI) will source from
-the PLL dividers directly.
-
-Required properties:
-- compatible:  should be one of the following,
-       "brcm,bcm2711-cprman"
-       "brcm,bcm2835-cprman"
-- #clock-cells:        Should be <1>. The permitted clock-specifier values can be
-                 found in include/dt-bindings/clock/bcm2835.h
-- reg:         Specifies base physical address and size of the registers
-- clocks:      phandles to the parent clocks used as input to the module, in
-                 the following order:
-
-                 - External oscillator
-                 - DSI0 byte clock
-                 - DSI0 DDR2 clock
-                 - DSI0 DDR clock
-                 - DSI1 byte clock
-                 - DSI1 DDR2 clock
-                 - DSI1 DDR clock
-
-                 Only external oscillator is required.  The DSI clocks may
-                 not be present, in which case their children will be
-                 unusable.
-
-Example:
-
-       clk_osc: clock@3 {
-               compatible = "fixed-clock";
-               reg = <3>;
-               #clock-cells = <0>;
-               clock-output-names = "osc";
-               clock-frequency = <19200000>;
-       };
-
-       clocks: cprman@7e101000 {
-               compatible = "brcm,bcm2835-cprman";
-               #clock-cells = <1>;
-               reg = <0x7e101000 0x2000>;
-               clocks = <&clk_osc>;
-       };
-
-       i2c0: i2c@7e205000 {
-               compatible = "brcm,bcm2835-i2c";
-               reg = <0x7e205000 0x1000>;
-               interrupts = <2 21>;
-               clocks = <&clocks BCM2835_CLOCK_VPU>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-       };
diff --git a/Documentation/devicetree/bindings/clock/brcm,bcm2835-cprman.yaml b/Documentation/devicetree/bindings/clock/brcm,bcm2835-cprman.yaml
new file mode 100644 (file)
index 0000000..b0cf76c
--- /dev/null
@@ -0,0 +1,59 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/brcm,bcm2835-cprman.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Broadcom BCM2835 CPRMAN clocks
+
+maintainers:
+  - Stefan Wahren <wahrenst@gmx.net>
+  - Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
+
+description:
+  The CPRMAN clock controller generates clocks in the audio power domain of the
+  BCM2835.  There is a level of PLLs deriving from an external oscillator, a
+  level of PLL dividers that produce channels off of the few PLLs, and a level
+  of mostly-generic clock generators sourcing from the PLL channels.  Most other
+  hardware components source from the clock generators, but a few (like the ARM
+  or HDMI) will source from the PLL dividers directly.
+
+properties:
+  compatible:
+    enum:
+      - brcm,bcm2711-cprman
+      - brcm,bcm2835-cprman
+
+  reg:
+    maxItems: 1
+
+  '#clock-cells':
+    const: 1
+
+  clocks:
+    minItems: 1
+    items:
+      - description: External oscillator clock.
+      - description: DSI0 byte clock.
+      - description: DSI0 DDR2 clock.
+      - description: DSI0 DDR clock.
+      - description: DSI1 byte clock.
+      - description: DSI1 DDR2 clock.
+      - description: DSI1 DDR clock.
+
+additionalProperties: false
+
+required:
+  - compatible
+  - '#clock-cells'
+  - reg
+  - clocks
+
+examples:
+  - |
+    clock-controller@7e101000 {
+        compatible = "brcm,bcm2835-cprman";
+        reg = <0x7e101000 0x2000>;
+        #clock-cells = <1>;
+        clocks = <&clk_osc>;
+    };