diff mbox series

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

Message ID 20211204061042.1248028-7-Mr.Bossman075@gmail.com
State New
Headers show
Series Add initial support for the i.MXRTxxxx SoC family starting from i.IMXRT1050 SoC. | expand

Commit Message

Jesse T Dec. 4, 2021, 6:10 a.m. UTC
From: Jesse Taube <mr.bossman075@gmail.com>

Add DT binding documentation for i.MXRT clock driver.

Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>
Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
---
V1->V2:
* Replace macros with values
V2->V3:
* Remove anatop
* Use lpuart not gpt
* include imxrt1050-clock.h
* 2 space tabs to 4
* Remove oneOf enum
* Change maxItems to 2
V3->V4:
* Nothing done
---
 .../bindings/clock/imxrt-clock.yaml           | 67 +++++++++++++++++++
 1 file changed, 67 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/clock/imxrt-clock.yaml

Comments

Jesse T Dec. 7, 2021, 2:32 a.m. UTC | #1
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
>> @@ -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@benettiengineering.com>
>> +  - Jesse Taube <Mr.Bossman075@gmail.com>
>> +
>> +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.

>> +
>> +  '#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
>>
Giulio Benetti Dec. 13, 2021, 6:55 p.m. UTC | #2
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@benettiengineering.com>
>>> +  - Jesse Taube <Mr.Bossman075@gmail.com>
>>> +
>>> +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
diff mbox series

Patch

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
@@ -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@benettiengineering.com>
+  - Jesse Taube <Mr.Bossman075@gmail.com>
+
+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
+
+  '#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 {
+        compatible = "fsl,imxrt1050-ccm";
+        reg = <0x400fc000 0x4000>;
+        interrupts = <95>, <96>;
+        clocks = <&osc>;
+        clock-names = "osc";
+        #clock-cells = <1>;
+    };
+
+
+    lpuart1: serial@40184000 {
+        compatible = "fsl,imxrt1050-lpuart";
+        reg = <0x40184000 0x4000>;
+        interrupts = <20>;
+        clocks = <&clks IMXRT1050_CLK_LPUART1>;
+        clock-names = "ipg";
+    };