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

From: Rob Herring
Date: Mon Jan 13 2020 - 16:27:40 EST


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@xxxxxxx>
> ---
> .../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@xxxxxxx>
> +
> +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
>