Re: [PATCH 1/3] dt-bindings: cpufreq: qcom-cpufreq-nvmem: make cpr bindings optional

From: Krzysztof Kozlowski
Date: Sun Jan 22 2023 - 08:57:15 EST


On 21/01/2023 01:01, Christian Marangi wrote:
> The qcom-cpufreq-nvmem driver also supports legacy devices pre-cpr that
> doesn't have power-domains. When the schema was introduced, it was
> wrongly set to always require these binding but this is not the case for
> legacy device that base everything on nvmem cells and multiple microvolt

What is a "legacy device"? Why do you adjust bindings to legacy device?
Can't you just fix the DTS on these devices?

> binding providing values based on speedbin, psv and version.
>
> Make the power-domain optional and set them required only for qcs404
> based devices.
>
> Fixes: ec24d1d55469 ("dt-bindings: opp: Convert qcom-nvmem-cpufreq to DT schema")
> Signed-off-by: Christian Marangi <ansuelsmth@xxxxxxxxx>
> ---
> .../bindings/cpufreq/qcom-cpufreq-nvmem.yaml | 78 +++++++++++++------
> 1 file changed, 54 insertions(+), 24 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.yaml b/Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.yaml
> index 9c086eac6ca7..04aac634d7fc 100644
> --- a/Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.yaml
> +++ b/Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.yaml
> @@ -17,6 +17,9 @@ description: |
> on the CPU OPP in use. The CPUFreq driver sets the CPR power domain level
> according to the required OPPs defined in the CPU OPP tables.
>
> + For old implementation efuses are parsed to select the correct opp table and
> + voltage and CPR is not supported/used.
> +
> select:
> properties:
> compatible:
> @@ -33,37 +36,64 @@ select:
> required:
> - compatible
>
> -properties:
> - cpus:
> - type: object
> +if:

Missing allOf. Fix also the placement - this block goes before
additionalPropertes:false.

> + properties:
> + compatible:
> + contains:
> + enum:
> + - qcom,qcs404
>
> - patternProperties:
> - '^cpu@[0-9a-f]+$':
> - type: object
> +then:
> + properties:
> + cpus:
> + type: object
>
> - properties:
> - power-domains:

Best regards,
Krzysztof