[v5,1/3] dt-bindings: cpufreq: qcom-cpufreq-nvmem: specify supported opp tables

Message ID 20230131151819.16612-1-ansuelsmth@gmail.com
State New
Headers
Series [v5,1/3] dt-bindings: cpufreq: qcom-cpufreq-nvmem: specify supported opp tables |

Commit Message

Christian Marangi Jan. 31, 2023, 3:18 p.m. UTC
  Add additional info on what opp tables the defined devices in this schema
supports (operating-points-v2-kryo-cpu and operating-points-v2-qcom-level)
and reference them.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
---
Changes v5:
- Swap patch 1 and patch 2 to fix dt_check_warning on single
  patch bisecting 
Changes v4:
- Add patch split from patch 1

 .../bindings/cpufreq/qcom-cpufreq-nvmem.yaml  | 35 ++++++++++++++-----
 1 file changed, 26 insertions(+), 9 deletions(-)
  

Comments

Krzysztof Kozlowski Feb. 1, 2023, 8:19 a.m. UTC | #1
On 31/01/2023 16:18, Christian Marangi wrote:
> Add additional info on what opp tables the defined devices in this schema
> supports (operating-points-v2-kryo-cpu and operating-points-v2-qcom-level)
> and reference them.
> 
> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> ---
> Changes v5:
> - Swap patch 1 and patch 2 to fix dt_check_warning on single
>   patch bisecting 
> Changes v4:
> - Add patch split from patch 1
> 
>  .../bindings/cpufreq/qcom-cpufreq-nvmem.yaml  | 35 ++++++++++++++-----

This patch causes new warnings:

arch/arm64/boot/dts/qcom/apq8096-ifc6640.dtb: /: opp-table-cluster0:
Unevaluated properties are not allowed ('compatible', 'nvmem-cells',
'opp-1036800000', 'opp-1113600000', 'opp-1190400000', 'opp-1228800000',
'opp-1324800000', 'opp-1363200000', 'opp-1401600000', 'opp-1478400000',
'opp-1497600000', 'opp-1593600000', 'opp-307200000', 'opp-422400000',
'opp-480000000', 'opp-556800000', 'opp-652800000', 'opp-729600000',
'opp-844800000', 'opp-960000000', 'opp-shared' were unexpected)


Best regards,
Krzysztof
  
Christian Marangi Feb. 8, 2023, 12:14 a.m. UTC | #2
On Wed, Feb 01, 2023 at 09:19:42AM +0100, Krzysztof Kozlowski wrote:
> On 31/01/2023 16:18, Christian Marangi wrote:
> > Add additional info on what opp tables the defined devices in this schema
> > supports (operating-points-v2-kryo-cpu and operating-points-v2-qcom-level)
> > and reference them.
> > 
> > Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> > ---
> > Changes v5:
> > - Swap patch 1 and patch 2 to fix dt_check_warning on single
> >   patch bisecting 
> > Changes v4:
> > - Add patch split from patch 1
> > 
> >  .../bindings/cpufreq/qcom-cpufreq-nvmem.yaml  | 35 ++++++++++++++-----
> 
> This patch causes new warnings:
> 
> arch/arm64/boot/dts/qcom/apq8096-ifc6640.dtb: /: opp-table-cluster0:
> Unevaluated properties are not allowed ('compatible', 'nvmem-cells',
> 'opp-1036800000', 'opp-1113600000', 'opp-1190400000', 'opp-1228800000',
> 'opp-1324800000', 'opp-1363200000', 'opp-1401600000', 'opp-1478400000',
> 'opp-1497600000', 'opp-1593600000', 'opp-307200000', 'opp-422400000',
> 'opp-480000000', 'opp-556800000', 'opp-652800000', 'opp-729600000',
> 'opp-844800000', 'opp-960000000', 'opp-shared' were unexpected)
> 

Hi, this is fixed by the third patch and caused by

opp-supported-hw:0:0: 16 is greater than the maximum of 7

that is fixed by documenting the new bits.
  

Patch

diff --git a/Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.yaml b/Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.yaml
index 9c086eac6ca7..7c42d9439abd 100644
--- a/Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.yaml
+++ b/Documentation/devicetree/bindings/cpufreq/qcom-cpufreq-nvmem.yaml
@@ -55,15 +55,32 @@  properties:
 
 patternProperties:
   '^opp-table(-[a-z0-9]+)?$':
-    if:
-      properties:
-        compatible:
-          const: operating-points-v2-kryo-cpu
-    then:
-      patternProperties:
-        '^opp-?[0-9]+$':
-          required:
-            - required-opps
+    allOf:
+      - if:
+          properties:
+            compatible:
+              const: operating-points-v2-kryo-cpu
+        then:
+          $ref: /schemas/opp/opp-v2-kryo-cpu.yaml#
+
+      - if:
+          properties:
+            compatible:
+              const: operating-points-v2-kryo-cpu
+        then:
+          patternProperties:
+            '^opp-?[0-9]+$':
+              required:
+                - required-opps
+
+      - if:
+          properties:
+            compatible:
+              const: operating-points-v2-qcom-level
+        then:
+          $ref: /schemas/opp/opp-v2-qcom-level.yaml#
+
+    unevaluatedProperties: false
 
 additionalProperties: true