Re: [PATCH v4 01/16] dt-bindings: clock: split qcom,gcc.yaml to common and specific schema

From: Bjorn Andersson
Date: Wed Feb 23 2022 - 22:38:55 EST


On Thu 17 Feb 17:56 CST 2022, Ansuel Smith wrote:

> Split qcom,gcc.yaml to common and specific schema to use it as a
> template for schema that needs to use the gcc bindings and require
> to add additional bindings.
>
> Signed-off-by: Ansuel Smith <ansuelsmth@xxxxxxxxx>
> ---
> .../bindings/clock/qcom,gcc-other.yaml | 76 +++++++++++++++++++
> .../devicetree/bindings/clock/qcom,gcc.yaml | 63 ++-------------
> 2 files changed, 82 insertions(+), 57 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/clock/qcom,gcc-other.yaml
>
> diff --git a/Documentation/devicetree/bindings/clock/qcom,gcc-other.yaml b/Documentation/devicetree/bindings/clock/qcom,gcc-other.yaml
> new file mode 100644
> index 000000000000..824d80530683
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/qcom,gcc-other.yaml

This work for me.

> @@ -0,0 +1,76 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/clock/qcom,gcc.yaml#

But shouldn't this be qcom,gcc-other.yaml then?

> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm Global Clock & Reset Controller Binding
> +
> +maintainers:
> + - Stephen Boyd <sboyd@xxxxxxxxxx>
> + - Taniya Das <tdas@xxxxxxxxxxxxxx>
> +
> +description:
> + Qualcomm global clock control module which supports the clocks, resets and
> + power domains.
> +
> + See also:
> + - dt-bindings/clock/qcom,gcc-apq8084.h
> + - dt-bindings/reset/qcom,gcc-apq8084.h
> + - dt-bindings/clock/qcom,gcc-ipq4019.h
> + - dt-bindings/clock/qcom,gcc-ipq6018.h
> + - dt-bindings/reset/qcom,gcc-ipq6018.h
> + - dt-bindings/clock/qcom,gcc-ipq806x.h (qcom,gcc-ipq8064)
> + - dt-bindings/reset/qcom,gcc-ipq806x.h (qcom,gcc-ipq8064)
> + - dt-bindings/clock/qcom,gcc-msm8939.h
> + - dt-bindings/clock/qcom,gcc-msm8953.h
> + - dt-bindings/reset/qcom,gcc-msm8939.h
> + - dt-bindings/clock/qcom,gcc-msm8660.h
> + - dt-bindings/reset/qcom,gcc-msm8660.h
> + - dt-bindings/clock/qcom,gcc-msm8974.h (qcom,gcc-msm8226 and qcom,gcc-msm8974)
> + - dt-bindings/reset/qcom,gcc-msm8974.h (qcom,gcc-msm8226 and qcom,gcc-msm8974)
> + - dt-bindings/clock/qcom,gcc-mdm9607.h
> + - dt-bindings/clock/qcom,gcc-mdm9615.h
> + - dt-bindings/reset/qcom,gcc-mdm9615.h
> + - dt-bindings/clock/qcom,gcc-sdm660.h (qcom,gcc-sdm630 and qcom,gcc-sdm660)
> +
> +allOf:
> + - $ref: "qcom,gcc.yaml#"
> +
> +properties:
> + compatible:
> + enum:
> + - qcom,gcc-apq8084
> + - qcom,gcc-ipq4019
> + - qcom,gcc-ipq6018
> + - qcom,gcc-ipq8064
> + - qcom,gcc-mdm9607
> + - qcom,gcc-msm8226
> + - qcom,gcc-msm8660
> + - qcom,gcc-msm8916
> + - qcom,gcc-msm8939
> + - qcom,gcc-msm8953
> + - qcom,gcc-msm8960
> + - qcom,gcc-msm8974
> + - qcom,gcc-msm8974pro
> + - qcom,gcc-msm8974pro-ac
> + - qcom,gcc-mdm9615
> + - qcom,gcc-sdm630
> + - qcom,gcc-sdm660
> +
> +required:
> + - compatible
> +
> +unevaluatedProperties: false
> +
> +examples:
> + # Example for GCC for MSM8960:
> + - |
> + clock-controller@900000 {
> + compatible = "qcom,gcc-msm8960";
> + reg = <0x900000 0x4000>;
> + #clock-cells = <1>;
> + #reset-cells = <1>;
> + #power-domain-cells = <1>;
> + };
> +...
> diff --git a/Documentation/devicetree/bindings/clock/qcom,gcc.yaml b/Documentation/devicetree/bindings/clock/qcom,gcc.yaml
> index f66d703bd913..ea1dd94d8bf1 100644
> --- a/Documentation/devicetree/bindings/clock/qcom,gcc.yaml
> +++ b/Documentation/devicetree/bindings/clock/qcom,gcc.yaml
> @@ -1,60 +1,20 @@
> -# SPDX-License-Identifier: GPL-2.0-only
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause

We would need to double check with existing copyright holders. My
suggestion is that we change that separately.

> %YAML 1.2
> ---
> -$id: http://devicetree.org/schemas/clock/qcom,gcc.yaml#
> +$id: http://devicetree.org/schemas/clock/qcom,gcc-common.yaml#

You forgot to change this back to just gcc.yaml.

With those two things this looks good to me.

Regards,
Bjron

> $schema: http://devicetree.org/meta-schemas/core.yaml#
>
> -title: Qualcomm Global Clock & Reset Controller Binding
> +title: Qualcomm Global Clock & Reset Controller Binding Common Bindings
>
> maintainers:
> - Stephen Boyd <sboyd@xxxxxxxxxx>
> - Taniya Das <tdas@xxxxxxxxxxxxxx>
>
> description: |
> - Qualcomm global clock control module which supports the clocks, resets and
> - power domains.
> -
> - See also:
> - - dt-bindings/clock/qcom,gcc-apq8084.h
> - - dt-bindings/reset/qcom,gcc-apq8084.h
> - - dt-bindings/clock/qcom,gcc-ipq4019.h
> - - dt-bindings/clock/qcom,gcc-ipq6018.h
> - - dt-bindings/reset/qcom,gcc-ipq6018.h
> - - dt-bindings/clock/qcom,gcc-ipq806x.h (qcom,gcc-ipq8064)
> - - dt-bindings/reset/qcom,gcc-ipq806x.h (qcom,gcc-ipq8064)
> - - dt-bindings/clock/qcom,gcc-msm8939.h
> - - dt-bindings/clock/qcom,gcc-msm8953.h
> - - dt-bindings/reset/qcom,gcc-msm8939.h
> - - dt-bindings/clock/qcom,gcc-msm8660.h
> - - dt-bindings/reset/qcom,gcc-msm8660.h
> - - dt-bindings/clock/qcom,gcc-msm8974.h (qcom,gcc-msm8226 and qcom,gcc-msm8974)
> - - dt-bindings/reset/qcom,gcc-msm8974.h (qcom,gcc-msm8226 and qcom,gcc-msm8974)
> - - dt-bindings/clock/qcom,gcc-mdm9607.h
> - - dt-bindings/clock/qcom,gcc-mdm9615.h
> - - dt-bindings/reset/qcom,gcc-mdm9615.h
> - - dt-bindings/clock/qcom,gcc-sdm660.h (qcom,gcc-sdm630 and qcom,gcc-sdm660)
> + Common bindings for Qualcomm global clock control module which supports
> + the clocks, resets and power domains.
>
> properties:
> - compatible:
> - enum:
> - - qcom,gcc-apq8084
> - - qcom,gcc-ipq4019
> - - qcom,gcc-ipq6018
> - - qcom,gcc-ipq8064
> - - qcom,gcc-mdm9607
> - - qcom,gcc-msm8226
> - - qcom,gcc-msm8660
> - - qcom,gcc-msm8916
> - - qcom,gcc-msm8939
> - - qcom,gcc-msm8953
> - - qcom,gcc-msm8960
> - - qcom,gcc-msm8974
> - - qcom,gcc-msm8974pro
> - - qcom,gcc-msm8974pro-ac
> - - qcom,gcc-mdm9615
> - - qcom,gcc-sdm630
> - - qcom,gcc-sdm660
> -
> '#clock-cells':
> const: 1
>
> @@ -72,22 +32,11 @@ properties:
> Protected clock specifier list as per common clock binding.
>
> required:
> - - compatible
> - reg
> - '#clock-cells'
> - '#reset-cells'
> - '#power-domain-cells'
>
> -additionalProperties: false
> +additionalProperties: true
>
> -examples:
> - # Example for GCC for MSM8960:
> - - |
> - clock-controller@900000 {
> - compatible = "qcom,gcc-msm8960";
> - reg = <0x900000 0x4000>;
> - #clock-cells = <1>;
> - #reset-cells = <1>;
> - #power-domain-cells = <1>;
> - };
> ...
> --
> 2.34.1
>