diff mbox series

[1/3] dt-bindings: clock: Convert i.MX8MQ to json-schema

Message ID 1578642914-838-1-git-send-email-Anson.Huang@nxp.com
State Changes Requested, archived
Headers show
Series [1/3] dt-bindings: clock: Convert i.MX8MQ to json-schema | expand

Checks

Context Check Description
robh/checkpatch warning "total: 0 errors, 2 warnings, 72 lines checked"
robh/checkpatch warning "total: 0 errors, 2 warnings, 72 lines checked"
robh/dt-meta-schema fail build log

Commit Message

Anson Huang Jan. 10, 2020, 7:55 a.m. UTC
Convert the i.MX8MQ clock binding to DT schema format using json-schema

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
---
 .../devicetree/bindings/clock/imx8mq-clock.txt     | 20 ------
 .../devicetree/bindings/clock/imx8mq-clock.yaml    | 72 ++++++++++++++++++++++
 2 files changed, 72 insertions(+), 20 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/clock/imx8mq-clock.txt
 create mode 100644 Documentation/devicetree/bindings/clock/imx8mq-clock.yaml

Comments

Rob Herring (Arm) Jan. 13, 2020, 9:27 p.m. UTC | #1
On Fri, Jan 10, 2020 at 03:55:12PM +0800, Anson Huang wrote:
> Convert the i.MX8MQ clock binding to DT schema format using json-schema
> 
> Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
> ---
>  .../devicetree/bindings/clock/imx8mq-clock.txt     | 20 ------
>  .../devicetree/bindings/clock/imx8mq-clock.yaml    | 72 ++++++++++++++++++++++
>  2 files changed, 72 insertions(+), 20 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/clock/imx8mq-clock.txt
>  create mode 100644 Documentation/devicetree/bindings/clock/imx8mq-clock.yaml

Fails 'make dt_binding_check':

/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/clock/imx8mn-clock.example.dt.yaml: 
clock-controller@30380000: clock-names:0: 'ckil' was expected
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/clock/imx8mn-clock.example.dt.yaml: 
clock-controller@30380000: clock-names:1: 'osc_25m' was expected
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/clock/imx8mn-clock.example.dt.yaml: 
clock-controller@30380000: clock-names:2: 'osc_27m' was expected
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/clock/imx8mn-clock.example.dt.yaml: 
clock-controller@30380000: clock-names:3: 'clk_ext1' was expected
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/clock/imx8mn-clock.example.dt.yaml: 
clock-controller@30380000: clock-names:4: 'clk_ext2' was expected
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/clock/imx8mn-clock.example.dt.yaml: 
clock-controller@30380000: clock-names:5: 'clk_ext3' was expected
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/clock/imx8mn-clock.example.dt.yaml: 
clock-controller@30380000: clock-names: ['osc_32k', 'osc_24m', 'clk_ext1', 'clk_ext2', 'clk_ext3', 'clk_ext4'] is too short
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/clock/imx8mn-clock.example.dt.yaml: 
clock-controller@30380000: clocks: [[1], [2], [3], [4], [5], [6]] is too short

> 
> diff --git a/Documentation/devicetree/bindings/clock/imx8mq-clock.txt b/Documentation/devicetree/bindings/clock/imx8mq-clock.txt
> deleted file mode 100644
> index 52de826..0000000
> --- a/Documentation/devicetree/bindings/clock/imx8mq-clock.txt
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -* Clock bindings for NXP i.MX8M Quad
> -
> -Required properties:
> -- compatible: Should be "fsl,imx8mq-ccm"
> -- reg: Address and length of the register set
> -- #clock-cells: Should be <1>
> -- clocks: list of clock specifiers, must contain an entry for each required
> -          entry in clock-names
> -- clock-names: should include the following entries:
> -    - "ckil"
> -    - "osc_25m"
> -    - "osc_27m"
> -    - "clk_ext1"
> -    - "clk_ext2"
> -    - "clk_ext3"
> -    - "clk_ext4"
> -
> -The clock consumer should specify the desired clock by having the clock
> -ID in its "clocks" phandle cell.  See include/dt-bindings/clock/imx8mq-clock.h
> -for the full list of i.MX8M Quad clock IDs.
> diff --git a/Documentation/devicetree/bindings/clock/imx8mq-clock.yaml b/Documentation/devicetree/bindings/clock/imx8mq-clock.yaml
> new file mode 100644
> index 0000000..881c01c
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/imx8mq-clock.yaml
> @@ -0,0 +1,72 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/bindings/clock/imx8mq-clock.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: NXP i.MX8M Quad Clock Control Module Binding
> +
> +maintainers:
> +  - Anson Huang <Anson.Huang@nxp.com>
> +
> +description: |
> +  NXP i.MX8M Quad clock control module is an integrated clock controller, which
> +  generates and supplies to all modules.
> +
> +properties:
> +  compatible:
> +    const: fsl,imx8mn-ccm

Wrong compatible...

> +
> +  reg:
> +    maxItems: 1
> +
> +  clocks:
> +    items:
> +      - description: 32k osc
> +      - description: 25m osc
> +      - description: 27m osc
> +      - description: ext1 clock input
> +      - description: ext2 clock input
> +      - description: ext3 clock input
> +      - description: ext4 clock input
> +
> +  clock-names:
> +    items:
> +      - const: ckil
> +      - const: osc_25m
> +      - const: osc_27m
> +      - const: clk_ext1
> +      - const: clk_ext2
> +      - const: clk_ext3
> +      - const: clk_ext4
> +
> +  '#clock-cells':
> +    const: 1
> +    description:
> +      The clock consumer should specify the desired clock by having the clock
> +      ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx8mq-clock.h
> +      for the full list of i.MX8M Quad clock IDs.
> +
> +required:
> +  - compatible
> +  - reg
> +  - clocks
> +  - clock-names
> +  - '#clock-cells'
> +
> +examples:
> +  # Clock Control Module node:
> +  - |
> +    clk: clock-controller@30380000 {
> +        compatible = "fsl,imx8mq-ccm";
> +        reg = <0x30380000 0x10000>;
> +        #clock-cells = <1>;
> +        clocks = <&ckil>, <&osc_25m>, <&osc_27m>,
> +                 <&clk_ext1>, <&clk_ext2>,
> +                 <&clk_ext3>, <&clk_ext4>;
> +        clock-names = "ckil", "osc_25m", "osc_27m",
> +                      "clk_ext1", "clk_ext2",
> +                      "clk_ext3", "clk_ext4";
> +    };
> +
> +...
> -- 
> 2.7.4
>
Anson Huang Jan. 14, 2020, 1:25 a.m. UTC | #2
Hi, Rob

> Subject: Re: [PATCH 1/3] dt-bindings: clock: Convert i.MX8MQ to json-schema
> 
> On Fri, Jan 10, 2020 at 03:55:12PM +0800, Anson Huang wrote:
> > Convert the i.MX8MQ clock binding to DT schema format using
> > json-schema
> >
> > Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
> > ---
> >  .../devicetree/bindings/clock/imx8mq-clock.txt     | 20 ------
> >  .../devicetree/bindings/clock/imx8mq-clock.yaml    | 72
> ++++++++++++++++++++++
> >  2 files changed, 72 insertions(+), 20 deletions(-)  delete mode
> > 100644 Documentation/devicetree/bindings/clock/imx8mq-clock.txt
> >  create mode 100644
> > Documentation/devicetree/bindings/clock/imx8mq-clock.yaml
> 
> Fails 'make dt_binding_check':
> 
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/clock/imx8mn-
> clock.example.dt.yaml:
> clock-controller@30380000: clock-names:0: 'ckil' was expected
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/clock/imx8mn-
> clock.example.dt.yaml:
> clock-controller@30380000: clock-names:1: 'osc_25m' was expected
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/clock/imx8mn-
> clock.example.dt.yaml:
> clock-controller@30380000: clock-names:2: 'osc_27m' was expected
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/clock/imx8mn-
> clock.example.dt.yaml:
> clock-controller@30380000: clock-names:3: 'clk_ext1' was expected
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/clock/imx8mn-
> clock.example.dt.yaml:
> clock-controller@30380000: clock-names:4: 'clk_ext2' was expected
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/clock/imx8mn-
> clock.example.dt.yaml:
> clock-controller@30380000: clock-names:5: 'clk_ext3' was expected
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/clock/imx8mn-
> clock.example.dt.yaml:
> clock-controller@30380000: clock-names: ['osc_32k', 'osc_24m', 'clk_ext1',
> 'clk_ext2', 'clk_ext3', 'clk_ext4'] is too short
> /builds/robherring/linux-dt-
> review/Documentation/devicetree/bindings/clock/imx8mn-
> clock.example.dt.yaml:
> clock-controller@30380000: clocks: [[1], [2], [3], [4], [5], [6]] is too short

I did NOT see build fail on my side, anything missed in my environment setup? The failure
log is for i.MX8MN, while this binding doc is i.MX8MQ, is it caused by the incorrect compatible
string which should be "fsl,imx8mq-ccm", but I made it "fsl,imx8mn-ccm" by mistake?

anson@anson-OptiPlex-790:~/workspace/stash/linux-next$ ./zeus.sh
*** Default configuration is based on 'defconfig'
#
# No change to .config
#
  CHKDT   Documentation/devicetree/bindings/clock/imx8mq-clock.yaml
  SCHEMA  Documentation/devicetree/bindings/processed-schema.yaml
  DTC     Documentation/devicetree/bindings/clock/imx8mq-clock.example.dt.yaml
  CHECK   Documentation/devicetree/bindings/clock/imx8mq-clock.example.dt.yaml
anson@anson-OptiPlex-790:~/workspace/stash/linux-next$



> 
> >
> > diff --git a/Documentation/devicetree/bindings/clock/imx8mq-clock.txt
> > b/Documentation/devicetree/bindings/clock/imx8mq-clock.txt
> > deleted file mode 100644
> > index 52de826..0000000
> > --- a/Documentation/devicetree/bindings/clock/imx8mq-clock.txt
> > +++ /dev/null
> > @@ -1,20 +0,0 @@
> > -* Clock bindings for NXP i.MX8M Quad
> > -
> > -Required properties:
> > -- compatible: Should be "fsl,imx8mq-ccm"
> > -- reg: Address and length of the register set
> > -- #clock-cells: Should be <1>
> > -- clocks: list of clock specifiers, must contain an entry for each required
> > -          entry in clock-names
> > -- clock-names: should include the following entries:
> > -    - "ckil"
> > -    - "osc_25m"
> > -    - "osc_27m"
> > -    - "clk_ext1"
> > -    - "clk_ext2"
> > -    - "clk_ext3"
> > -    - "clk_ext4"
> > -
> > -The clock consumer should specify the desired clock by having the
> > clock -ID in its "clocks" phandle cell.  See
> > include/dt-bindings/clock/imx8mq-clock.h
> > -for the full list of i.MX8M Quad clock IDs.
> > diff --git a/Documentation/devicetree/bindings/clock/imx8mq-clock.yaml
> > b/Documentation/devicetree/bindings/clock/imx8mq-clock.yaml
> > new file mode 100644
> > index 0000000..881c01c
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/clock/imx8mq-clock.yaml
> > @@ -0,0 +1,72 @@
> > +# SPDX-License-Identifier: GPL-2.0
> > +%YAML 1.2
> > +---
> > +$id:
> > +https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevi
> > +cetree.org%2Fschemas%2Fbindings%2Fclock%2Fimx8mq-
> clock.yaml%23&amp;da
> >
> +ta=02%7C01%7CAnson.Huang%40nxp.com%7C716f35d49b1b4a91be7308d
> 7986f6a81
> >
> +%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637145476602540
> 776&amp;
> >
> +sdata=vzAWrWQgmAz%2FnWaU%2BMKd%2FpbhHs6U1%2FOGljRQQXIp9S
> Q%3D&amp;rese
> > +rved=0
> > +$schema:
> > +https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdevi
> > +cetree.org%2Fmeta-
> schemas%2Fcore.yaml%23&amp;data=02%7C01%7CAnson.Hua
> >
> +ng%40nxp.com%7C716f35d49b1b4a91be7308d7986f6a81%7C686ea1d3bc2
> b4c6fa92
> >
> +cd99c5c301635%7C0%7C0%7C637145476602540776&amp;sdata=QTYQ6Bh
> %2BLsbGjR
> > +8pU8tTsV9MM2GOT23OnholQfgaxa0%3D&amp;reserved=0
> > +
> > +title: NXP i.MX8M Quad Clock Control Module Binding
> > +
> > +maintainers:
> > +  - Anson Huang <Anson.Huang@nxp.com>
> > +
> > +description: |
> > +  NXP i.MX8M Quad clock control module is an integrated clock
> > +controller, which
> > +  generates and supplies to all modules.
> > +
> > +properties:
> > +  compatible:
> > +    const: fsl,imx8mn-ccm
> 
> Wrong compatible...

Oops, my mistake, I reviewed many times before sending out the patch, but still miss this...
Sorry for that.

Anson

> 
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  clocks:
> > +    items:
> > +      - description: 32k osc
> > +      - description: 25m osc
> > +      - description: 27m osc
> > +      - description: ext1 clock input
> > +      - description: ext2 clock input
> > +      - description: ext3 clock input
> > +      - description: ext4 clock input
> > +
> > +  clock-names:
> > +    items:
> > +      - const: ckil
> > +      - const: osc_25m
> > +      - const: osc_27m
> > +      - const: clk_ext1
> > +      - const: clk_ext2
> > +      - const: clk_ext3
> > +      - const: clk_ext4
> > +
> > +  '#clock-cells':
> > +    const: 1
> > +    description:
> > +      The clock consumer should specify the desired clock by having the
> clock
> > +      ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx8mq-
> clock.h
> > +      for the full list of i.MX8M Quad clock IDs.
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - clocks
> > +  - clock-names
> > +  - '#clock-cells'
> > +
> > +examples:
> > +  # Clock Control Module node:
> > +  - |
> > +    clk: clock-controller@30380000 {
> > +        compatible = "fsl,imx8mq-ccm";
> > +        reg = <0x30380000 0x10000>;
> > +        #clock-cells = <1>;
> > +        clocks = <&ckil>, <&osc_25m>, <&osc_27m>,
> > +                 <&clk_ext1>, <&clk_ext2>,
> > +                 <&clk_ext3>, <&clk_ext4>;
> > +        clock-names = "ckil", "osc_25m", "osc_27m",
> > +                      "clk_ext1", "clk_ext2",
> > +                      "clk_ext3", "clk_ext4";
> > +    };
> > +
> > +...
> > --
> > 2.7.4
> >
Rob Herring (Arm) Jan. 14, 2020, 1:57 p.m. UTC | #3
On Mon, Jan 13, 2020 at 7:25 PM Anson Huang <anson.huang@nxp.com> wrote:
>
> Hi, Rob
>
> > Subject: Re: [PATCH 1/3] dt-bindings: clock: Convert i.MX8MQ to json-schema
> >
> > On Fri, Jan 10, 2020 at 03:55:12PM +0800, Anson Huang wrote:
> > > Convert the i.MX8MQ clock binding to DT schema format using
> > > json-schema
> > >
> > > Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
> > > ---
> > >  .../devicetree/bindings/clock/imx8mq-clock.txt     | 20 ------
> > >  .../devicetree/bindings/clock/imx8mq-clock.yaml    | 72
> > ++++++++++++++++++++++
> > >  2 files changed, 72 insertions(+), 20 deletions(-)  delete mode
> > > 100644 Documentation/devicetree/bindings/clock/imx8mq-clock.txt
> > >  create mode 100644
> > > Documentation/devicetree/bindings/clock/imx8mq-clock.yaml
> >
> > Fails 'make dt_binding_check':
> >
> > /builds/robherring/linux-dt-
> > review/Documentation/devicetree/bindings/clock/imx8mn-
> > clock.example.dt.yaml:
> > clock-controller@30380000: clock-names:0: 'ckil' was expected
> > /builds/robherring/linux-dt-
> > review/Documentation/devicetree/bindings/clock/imx8mn-
> > clock.example.dt.yaml:
> > clock-controller@30380000: clock-names:1: 'osc_25m' was expected
> > /builds/robherring/linux-dt-
> > review/Documentation/devicetree/bindings/clock/imx8mn-
> > clock.example.dt.yaml:
> > clock-controller@30380000: clock-names:2: 'osc_27m' was expected
> > /builds/robherring/linux-dt-
> > review/Documentation/devicetree/bindings/clock/imx8mn-
> > clock.example.dt.yaml:
> > clock-controller@30380000: clock-names:3: 'clk_ext1' was expected
> > /builds/robherring/linux-dt-
> > review/Documentation/devicetree/bindings/clock/imx8mn-
> > clock.example.dt.yaml:
> > clock-controller@30380000: clock-names:4: 'clk_ext2' was expected
> > /builds/robherring/linux-dt-
> > review/Documentation/devicetree/bindings/clock/imx8mn-
> > clock.example.dt.yaml:
> > clock-controller@30380000: clock-names:5: 'clk_ext3' was expected
> > /builds/robherring/linux-dt-
> > review/Documentation/devicetree/bindings/clock/imx8mn-
> > clock.example.dt.yaml:
> > clock-controller@30380000: clock-names: ['osc_32k', 'osc_24m', 'clk_ext1',
> > 'clk_ext2', 'clk_ext3', 'clk_ext4'] is too short
> > /builds/robherring/linux-dt-
> > review/Documentation/devicetree/bindings/clock/imx8mn-
> > clock.example.dt.yaml:
> > clock-controller@30380000: clocks: [[1], [2], [3], [4], [5], [6]] is too short
>
> I did NOT see build fail on my side, anything missed in my environment setup? The failure
> log is for i.MX8MN, while this binding doc is i.MX8MQ, is it caused by the incorrect compatible
> string which should be "fsl,imx8mq-ccm", but I made it "fsl,imx8mn-ccm" by mistake?

Notice that the error is in imx8mn-clock.example.dt.yaml, not
imx8mq-clock.example.dt.yaml. So you must have DT_SCHEMA_FILES set and
yes it is due to the compatible being wrong.

>
> anson@anson-OptiPlex-790:~/workspace/stash/linux-next$ ./zeus.sh
> *** Default configuration is based on 'defconfig'
> #
> # No change to .config
> #
>   CHKDT   Documentation/devicetree/bindings/clock/imx8mq-clock.yaml
>   SCHEMA  Documentation/devicetree/bindings/processed-schema.yaml
>   DTC     Documentation/devicetree/bindings/clock/imx8mq-clock.example.dt.yaml
>   CHECK   Documentation/devicetree/bindings/clock/imx8mq-clock.example.dt.yaml
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/clock/imx8mq-clock.txt b/Documentation/devicetree/bindings/clock/imx8mq-clock.txt
deleted file mode 100644
index 52de826..0000000
--- a/Documentation/devicetree/bindings/clock/imx8mq-clock.txt
+++ /dev/null
@@ -1,20 +0,0 @@ 
-* Clock bindings for NXP i.MX8M Quad
-
-Required properties:
-- compatible: Should be "fsl,imx8mq-ccm"
-- reg: Address and length of the register set
-- #clock-cells: Should be <1>
-- clocks: list of clock specifiers, must contain an entry for each required
-          entry in clock-names
-- clock-names: should include the following entries:
-    - "ckil"
-    - "osc_25m"
-    - "osc_27m"
-    - "clk_ext1"
-    - "clk_ext2"
-    - "clk_ext3"
-    - "clk_ext4"
-
-The clock consumer should specify the desired clock by having the clock
-ID in its "clocks" phandle cell.  See include/dt-bindings/clock/imx8mq-clock.h
-for the full list of i.MX8M Quad clock IDs.
diff --git a/Documentation/devicetree/bindings/clock/imx8mq-clock.yaml b/Documentation/devicetree/bindings/clock/imx8mq-clock.yaml
new file mode 100644
index 0000000..881c01c
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/imx8mq-clock.yaml
@@ -0,0 +1,72 @@ 
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/bindings/clock/imx8mq-clock.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP i.MX8M Quad Clock Control Module Binding
+
+maintainers:
+  - Anson Huang <Anson.Huang@nxp.com>
+
+description: |
+  NXP i.MX8M Quad clock control module is an integrated clock controller, which
+  generates and supplies to all modules.
+
+properties:
+  compatible:
+    const: fsl,imx8mn-ccm
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    items:
+      - description: 32k osc
+      - description: 25m osc
+      - description: 27m osc
+      - description: ext1 clock input
+      - description: ext2 clock input
+      - description: ext3 clock input
+      - description: ext4 clock input
+
+  clock-names:
+    items:
+      - const: ckil
+      - const: osc_25m
+      - const: osc_27m
+      - const: clk_ext1
+      - const: clk_ext2
+      - const: clk_ext3
+      - const: clk_ext4
+
+  '#clock-cells':
+    const: 1
+    description:
+      The clock consumer should specify the desired clock by having the clock
+      ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx8mq-clock.h
+      for the full list of i.MX8M Quad clock IDs.
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - '#clock-cells'
+
+examples:
+  # Clock Control Module node:
+  - |
+    clk: clock-controller@30380000 {
+        compatible = "fsl,imx8mq-ccm";
+        reg = <0x30380000 0x10000>;
+        #clock-cells = <1>;
+        clocks = <&ckil>, <&osc_25m>, <&osc_27m>,
+                 <&clk_ext1>, <&clk_ext2>,
+                 <&clk_ext3>, <&clk_ext4>;
+        clock-names = "ckil", "osc_25m", "osc_27m",
+                      "clk_ext1", "clk_ext2",
+                      "clk_ext3", "clk_ext4";
+    };
+
+...