Re: [PATCH v4 06/13] dt-bindings: clock: imx: Add documentation for i.MXRT clock

From: Giulio Benetti
Date: Mon Dec 13 2021 - 13:55:56 EST


Hi Jesse,

On 07/12/21 03:32, Jesse Taube wrote:


On 12/6/21 17:38, Stephen Boyd wrote:
Quoting Jesse Taube (2021-12-03 22:10:35)
diff --git a/Documentation/devicetree/bindings/clock/imxrt-clock.yaml b/Documentation/devicetree/bindings/clock/imxrt-clock.yaml
new file mode 100644
index 000000000000..8af48c59ff99
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/imxrt-clock.yaml

here the file name should be imxrt1050-clock.yaml

@@ -0,0 +1,67 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/imxrt-clock.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Clock bindings for Freescale i.MXRT
+
+maintainers:
+ - Giulio Benetti <giulio.benetti@xxxxxxxxxxxxxxxxxxxxxx>
+ - Jesse Taube <Mr.Bossman075@xxxxxxxxx>
+
+description: |
+ The clock consumer should specify the desired clock by having the clock
+ ID in its "clocks" phandle cell. See include/dt-bindings/clock/imxrt*-clock.h
+ for the full list of i.MXRT clock IDs.
+
+properties:
+ compatible:
+ const: fsl,imxrt1050-ccm
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 2
+
+ clocks:
+ minItems: 1
+
+ clock-names:
+ minItems: 1

Why minitems vs. exactly 1 for osc?
because i don't understand yaml yet.
I'll look into this.

on clocks and clock-names you have to specify the only available clocks that can be an input to ccm, in our case only "osc", which description will be "24m osc".

Check this file as reference:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/clock/imx6ul-clock.yaml

Kind regards
--
Giulio Benetti
Benetti Engineering sas

+
+ '#clock-cells':
+ const: 1
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - clocks
+ - clock-names
+ - '#clock-cells'
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/imxrt1050-clock.h>
+
+ ccm@400fc000 {

s/ccm/clock-controller/

This made my day!


+ compatible = "fsl,imxrt1050-ccm";
+ reg = <0x400fc000 0x4000>;
+ interrupts = <95>, <96>;
+ clocks = <&osc>;
+ clock-names = "osc";
+ #clock-cells = <1>;
+ };
+
+

Nitpick: Drop extra newline
sorry will fix.

+ lpuart1: serial@40184000 {
+ compatible = "fsl,imxrt1050-lpuart";
+ reg = <0x40184000 0x4000>;
+ interrupts = <20>;
+ clocks = <&clks IMXRT1050_CLK_LPUART1>;
+ clock-names = "ipg";
+ };
--
2.34.0