Re: [PATCH v2 01/15] dt-bindings: clock: permit additionalProprieties to qcom,gcc

From: Rob Herring
Date: Thu Jan 20 2022 - 20:53:54 EST


On Fri, Jan 21, 2022 at 12:20:14AM +0100, Ansuel Smith wrote:
> To permit the use of qcom,gcc as a template for other Documentation, set
> additionalProprieties to true.
> While at it add the missing syscon for qcom,ipq8064 that is mandatory
> for the correct function of the tsens driver.
>
> Signed-off-by: Ansuel Smith <ansuelsmth@xxxxxxxxx>
> ---
> .../devicetree/bindings/clock/qcom,gcc.yaml | 41 ++++++++++---------
> 1 file changed, 22 insertions(+), 19 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/clock/qcom,gcc.yaml b/Documentation/devicetree/bindings/clock/qcom,gcc.yaml
> index f66d703bd913..3fd03687a6f7 100644
> --- a/Documentation/devicetree/bindings/clock/qcom,gcc.yaml
> +++ b/Documentation/devicetree/bindings/clock/qcom,gcc.yaml
> @@ -36,24 +36,27 @@ description: |
>
> 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
> + oneOf:
> + - enum:
> + - qcom,gcc-apq8084
> + - qcom,gcc-ipq4019
> + - qcom,gcc-ipq6018
> + - 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
> + - items:
> + - const: qcom,gcc-ipq8064
> + - const: syscon
>
> '#clock-cells':
> const: 1
> @@ -78,7 +81,7 @@ required:
> - '#reset-cells'
> - '#power-domain-cells'
>
> -additionalProperties: false
> +additionalProperties: true

This doesn't work. You just allowed any other property to be allowed for
all these devices. If you need something shared, you have to create a
common base schema that's referenced by other schemas. Minimally, those
would look like this:

$ref: /to/base/schema.yaml
unevaluatedProperties: false
properties:
compatible:
...

Rob