diff mbox series

dt-bindings: thermal: thermal-idle: Fix example paths

Message ID 20221111162729.3381835-1-robh@kernel.org (mailing list archive)
State Handled Elsewhere, archived
Headers show
Series dt-bindings: thermal: thermal-idle: Fix example paths | expand

Commit Message

Rob Herring (Arm) Nov. 11, 2022, 4:27 p.m. UTC
The reference by path (&{/cpus/cpu@101/thermal-idle}) in the example causes
an error with new version of dtc:

FATAL ERROR: Can't generate fixup for reference to path &{/cpus/cpu@100/thermal-idle}

This is because the examples are built as an overlay and absolute paths
are not valid as references must be by label. The path was also not
resolvable because, by default, examples are placed under 'example-N'
nodes.

As the example contains top-level nodes, the root node must be explicit for
the example to be extracted as-is. This changes the indentation for the
whole example, but the existing indentation is a mess of of random amounts.
Clean this up to be 4 spaces everywhere.

Signed-off-by: Rob Herring <robh@kernel.org>
---
The dtc update is in my tree, so I'd prefer to take this via the DT 
tree.

 .../bindings/thermal/thermal-idle.yaml        | 154 +++++++++---------
 1 file changed, 80 insertions(+), 74 deletions(-)

Comments

Rob Herring (Arm) Nov. 16, 2022, 8:14 p.m. UTC | #1
On Fri, 11 Nov 2022 10:27:29 -0600, Rob Herring wrote:
> The reference by path (&{/cpus/cpu@101/thermal-idle}) in the example causes
> an error with new version of dtc:
> 
> FATAL ERROR: Can't generate fixup for reference to path &{/cpus/cpu@100/thermal-idle}
> 
> This is because the examples are built as an overlay and absolute paths
> are not valid as references must be by label. The path was also not
> resolvable because, by default, examples are placed under 'example-N'
> nodes.
> 
> As the example contains top-level nodes, the root node must be explicit for
> the example to be extracted as-is. This changes the indentation for the
> whole example, but the existing indentation is a mess of of random amounts.
> Clean this up to be 4 spaces everywhere.
> 
> Signed-off-by: Rob Herring <robh@kernel.org>
> ---
> The dtc update is in my tree, so I'd prefer to take this via the DT
> tree.
> 
>  .../bindings/thermal/thermal-idle.yaml        | 154 +++++++++---------
>  1 file changed, 80 insertions(+), 74 deletions(-)
> 

Applied, thanks!
Daniel Lezcano Dec. 6, 2022, 5:14 p.m. UTC | #2
On 11/11/2022 17:27, Rob Herring wrote:
> The reference by path (&{/cpus/cpu@101/thermal-idle}) in the example causes
> an error with new version of dtc:
> 
> FATAL ERROR: Can't generate fixup for reference to path &{/cpus/cpu@100/thermal-idle}
> 
> This is because the examples are built as an overlay and absolute paths
> are not valid as references must be by label. The path was also not
> resolvable because, by default, examples are placed under 'example-N'
> nodes.
> 
> As the example contains top-level nodes, the root node must be explicit for
> the example to be extracted as-is. This changes the indentation for the
> whole example, but the existing indentation is a mess of of random amounts.
> Clean this up to be 4 spaces everywhere.
> 
> Signed-off-by: Rob Herring <robh@kernel.org>
> ---
> The dtc update is in my tree, so I'd prefer to take this via the DT
> tree.
> 
>   .../bindings/thermal/thermal-idle.yaml        | 154 +++++++++---------
>   1 file changed, 80 insertions(+), 74 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/thermal/thermal-idle.yaml b/Documentation/devicetree/bindings/thermal/thermal-idle.yaml
> index cc938d7ad1f3..72d85eb64247 100644
> --- a/Documentation/devicetree/bindings/thermal/thermal-idle.yaml
> +++ b/Documentation/devicetree/bindings/thermal/thermal-idle.yaml
> @@ -48,99 +48,105 @@ additionalProperties: false
>   
>   examples:
>     - |
> -    #include <dt-bindings/thermal/thermal.h>
> +    /{
> +        #include <dt-bindings/thermal/thermal.h>
>   
> -    // Example: Combining idle cooling device on big CPUs with cpufreq cooling device
> -    cpus {
> +        compatible = "foo";
> +        model = "foo";
> +        #address-cells = <1>;
> +        #size-cells = <1>;
> +
> +        // Example: Combining idle cooling device on big CPUs with cpufreq cooling device
> +        cpus {
>               #address-cells = <2>;
>               #size-cells = <0>;
>   
>               /* ... */
>   
> -                 cpu_b0: cpu@100 {
> -                         device_type = "cpu";
> -                         compatible = "arm,cortex-a72";
> -                         reg = <0x0 0x100>;
> -                         enable-method = "psci";
> -                         capacity-dmips-mhz = <1024>;
> -                         dynamic-power-coefficient = <436>;
> -                         #cooling-cells = <2>; /* min followed by max */
> -                         cpu-idle-states = <&CPU_SLEEP>, <&CLUSTER_SLEEP>;
> -                         thermal-idle {
> -                                 #cooling-cells = <2>;
> -                                 duration-us = <10000>;
> -                                 exit-latency-us = <500>;
> -                         };
> +            cpu_b0: cpu@100 {
> +                device_type = "cpu";
> +                compatible = "arm,cortex-a72";
> +                reg = <0x0 0x100>;
> +                enable-method = "psci";
> +                capacity-dmips-mhz = <1024>;
> +                dynamic-power-coefficient = <436>;
> +                #cooling-cells = <2>; /* min followed by max */
> +                cpu-idle-states = <&CPU_SLEEP>, <&CLUSTER_SLEEP>;
> +                thermal-idle {
> +                    #cooling-cells = <2>;
> +                    duration-us = <10000>;
> +                    exit-latency-us = <500>;
> +                };
> +            };
> +
> +            cpu_b1: cpu@101 {
> +                device_type = "cpu";
> +                compatible = "arm,cortex-a72";
> +                reg = <0x0 0x101>;
> +                enable-method = "psci";
> +                capacity-dmips-mhz = <1024>;
> +                dynamic-power-coefficient = <436>;
> +                #cooling-cells = <2>; /* min followed by max */
> +                cpu-idle-states = <&CPU_SLEEP>, <&CLUSTER_SLEEP>;
> +                thermal-idle {
> +                    #cooling-cells = <2>;
> +                    duration-us = <10000>;
> +                    exit-latency-us = <500>;
>                   };
> +            };
>   
> -                cpu_b1: cpu@101 {
> -                        device_type = "cpu";
> -                        compatible = "arm,cortex-a72";
> -                        reg = <0x0 0x101>;
> -                        enable-method = "psci";
> -                        capacity-dmips-mhz = <1024>;
> -                        dynamic-power-coefficient = <436>;
> -                        #cooling-cells = <2>; /* min followed by max */
> -                        cpu-idle-states = <&CPU_SLEEP>, <&CLUSTER_SLEEP>;
> -                        thermal-idle {
> -                                #cooling-cells = <2>;
> -                                duration-us = <10000>;
> -                                exit-latency-us = <500>;
> -                        };
> -                 };
> -
> -          /* ... */
> +            /* ... */
>   
> -    };
> +        };
>   
> -    /* ... */
> +        /* ... */
>   
> -    thermal_zones {
> -         cpu_thermal: cpu {
> +        thermal_zones {
> +            cpu_thermal: cpu {
>                   polling-delay-passive = <100>;
>                   polling-delay = <1000>;
>   
>                   /* ... */
>   
>                   trips {
> -                        cpu_alert0: cpu_alert0 {
> -                                    temperature = <65000>;
> -                                    hysteresis = <2000>;
> -                                    type = "passive";
> -                        };
> -
> -                        cpu_alert1: cpu_alert1 {
> -                                    temperature = <70000>;
> -                                    hysteresis = <2000>;
> -                                    type = "passive";
> -                        };
> -
> -                        cpu_alert2: cpu_alert2 {
> -                                    temperature = <75000>;
> -                                    hysteresis = <2000>;
> -                                    type = "passive";
> -                        };
> -
> -                        cpu_crit: cpu_crit {
> -                                    temperature = <95000>;
> -                                    hysteresis = <2000>;
> -                                    type = "critical";
> -                        };
> +                    cpu_alert0: cpu_alert0 {
> +                        temperature = <65000>;
> +                        hysteresis = <2000>;
> +                        type = "passive";
> +                    };
> +
> +                    cpu_alert1: cpu_alert1 {
> +                        temperature = <70000>;
> +                        hysteresis = <2000>;
> +                        type = "passive";
> +                    };
> +
> +                    cpu_alert2: cpu_alert2 {
> +                        temperature = <75000>;
> +                        hysteresis = <2000>;
> +                        type = "passive";
> +                    };
> +
> +                    cpu_crit: cpu_crit {
> +                        temperature = <95000>;
> +                        hysteresis = <2000>;
> +                        type = "critical";
> +                    };
>                   };
>   
>                   cooling-maps {
> -                        map0 {
> -                             trip = <&cpu_alert1>;
> -                             cooling-device = <&{/cpus/cpu@100/thermal-idle} 0 15 >,
> -                                              <&{/cpus/cpu@101/thermal-idle} 0 15>;
> -                        };
> -
> -                        map1 {
> -                             trip = <&cpu_alert2>;
> -                             cooling-device =
> -                                        <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> -                                        <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> -                       };
> +                    map0 {
> +                        trip = <&cpu_alert1>;
> +                        cooling-device = <&cpu_b0 0 15 >,
> +                                         <&cpu_b1 0 15>;

This is pointing to the DVFS cooling device, not the idle cooling 
device. Should it be <&cpu_b0_idle 0 15> and that label defined in 
thermal_idle ?

> +                    };
> +
> +                    map1 {
> +                        trip = <&cpu_alert2>;
> +                        cooling-device = <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> +                                         <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> +                    };
>                   };
> -          };
> +            };
> +        };
>       };
Rob Herring (Arm) Dec. 6, 2022, 5:38 p.m. UTC | #3
On Tue, Dec 6, 2022 at 11:15 AM Daniel Lezcano
<daniel.lezcano@linaro.org> wrote:
>
> On 11/11/2022 17:27, Rob Herring wrote:
> > The reference by path (&{/cpus/cpu@101/thermal-idle}) in the example causes
> > an error with new version of dtc:
> >
> > FATAL ERROR: Can't generate fixup for reference to path &{/cpus/cpu@100/thermal-idle}
> >
> > This is because the examples are built as an overlay and absolute paths
> > are not valid as references must be by label. The path was also not
> > resolvable because, by default, examples are placed under 'example-N'
> > nodes.
> >
> > As the example contains top-level nodes, the root node must be explicit for
> > the example to be extracted as-is. This changes the indentation for the
> > whole example, but the existing indentation is a mess of of random amounts.
> > Clean this up to be 4 spaces everywhere.
> >
> > Signed-off-by: Rob Herring <robh@kernel.org>
> > ---
> > The dtc update is in my tree, so I'd prefer to take this via the DT
> > tree.
> >
> >   .../bindings/thermal/thermal-idle.yaml        | 154 +++++++++---------
> >   1 file changed, 80 insertions(+), 74 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/thermal/thermal-idle.yaml b/Documentation/devicetree/bindings/thermal/thermal-idle.yaml
> > index cc938d7ad1f3..72d85eb64247 100644
> > --- a/Documentation/devicetree/bindings/thermal/thermal-idle.yaml
> > +++ b/Documentation/devicetree/bindings/thermal/thermal-idle.yaml
> > @@ -48,99 +48,105 @@ additionalProperties: false
> >
> >   examples:
> >     - |
> > -    #include <dt-bindings/thermal/thermal.h>
> > +    /{
> > +        #include <dt-bindings/thermal/thermal.h>
> >
> > -    // Example: Combining idle cooling device on big CPUs with cpufreq cooling device
> > -    cpus {
> > +        compatible = "foo";
> > +        model = "foo";
> > +        #address-cells = <1>;
> > +        #size-cells = <1>;
> > +
> > +        // Example: Combining idle cooling device on big CPUs with cpufreq cooling device
> > +        cpus {
> >               #address-cells = <2>;
> >               #size-cells = <0>;
> >
> >               /* ... */
> >
> > -                 cpu_b0: cpu@100 {
> > -                         device_type = "cpu";
> > -                         compatible = "arm,cortex-a72";
> > -                         reg = <0x0 0x100>;
> > -                         enable-method = "psci";
> > -                         capacity-dmips-mhz = <1024>;
> > -                         dynamic-power-coefficient = <436>;
> > -                         #cooling-cells = <2>; /* min followed by max */
> > -                         cpu-idle-states = <&CPU_SLEEP>, <&CLUSTER_SLEEP>;
> > -                         thermal-idle {
> > -                                 #cooling-cells = <2>;
> > -                                 duration-us = <10000>;
> > -                                 exit-latency-us = <500>;
> > -                         };
> > +            cpu_b0: cpu@100 {
> > +                device_type = "cpu";
> > +                compatible = "arm,cortex-a72";
> > +                reg = <0x0 0x100>;
> > +                enable-method = "psci";
> > +                capacity-dmips-mhz = <1024>;
> > +                dynamic-power-coefficient = <436>;
> > +                #cooling-cells = <2>; /* min followed by max */
> > +                cpu-idle-states = <&CPU_SLEEP>, <&CLUSTER_SLEEP>;
> > +                thermal-idle {
> > +                    #cooling-cells = <2>;
> > +                    duration-us = <10000>;
> > +                    exit-latency-us = <500>;
> > +                };
> > +            };
> > +
> > +            cpu_b1: cpu@101 {
> > +                device_type = "cpu";
> > +                compatible = "arm,cortex-a72";
> > +                reg = <0x0 0x101>;
> > +                enable-method = "psci";
> > +                capacity-dmips-mhz = <1024>;
> > +                dynamic-power-coefficient = <436>;
> > +                #cooling-cells = <2>; /* min followed by max */
> > +                cpu-idle-states = <&CPU_SLEEP>, <&CLUSTER_SLEEP>;
> > +                thermal-idle {
> > +                    #cooling-cells = <2>;
> > +                    duration-us = <10000>;
> > +                    exit-latency-us = <500>;
> >                   };
> > +            };
> >
> > -                cpu_b1: cpu@101 {
> > -                        device_type = "cpu";
> > -                        compatible = "arm,cortex-a72";
> > -                        reg = <0x0 0x101>;
> > -                        enable-method = "psci";
> > -                        capacity-dmips-mhz = <1024>;
> > -                        dynamic-power-coefficient = <436>;
> > -                        #cooling-cells = <2>; /* min followed by max */
> > -                        cpu-idle-states = <&CPU_SLEEP>, <&CLUSTER_SLEEP>;
> > -                        thermal-idle {
> > -                                #cooling-cells = <2>;
> > -                                duration-us = <10000>;
> > -                                exit-latency-us = <500>;
> > -                        };
> > -                 };
> > -
> > -          /* ... */
> > +            /* ... */
> >
> > -    };
> > +        };
> >
> > -    /* ... */
> > +        /* ... */
> >
> > -    thermal_zones {
> > -         cpu_thermal: cpu {
> > +        thermal_zones {
> > +            cpu_thermal: cpu {
> >                   polling-delay-passive = <100>;
> >                   polling-delay = <1000>;
> >
> >                   /* ... */
> >
> >                   trips {
> > -                        cpu_alert0: cpu_alert0 {
> > -                                    temperature = <65000>;
> > -                                    hysteresis = <2000>;
> > -                                    type = "passive";
> > -                        };
> > -
> > -                        cpu_alert1: cpu_alert1 {
> > -                                    temperature = <70000>;
> > -                                    hysteresis = <2000>;
> > -                                    type = "passive";
> > -                        };
> > -
> > -                        cpu_alert2: cpu_alert2 {
> > -                                    temperature = <75000>;
> > -                                    hysteresis = <2000>;
> > -                                    type = "passive";
> > -                        };
> > -
> > -                        cpu_crit: cpu_crit {
> > -                                    temperature = <95000>;
> > -                                    hysteresis = <2000>;
> > -                                    type = "critical";
> > -                        };
> > +                    cpu_alert0: cpu_alert0 {
> > +                        temperature = <65000>;
> > +                        hysteresis = <2000>;
> > +                        type = "passive";
> > +                    };
> > +
> > +                    cpu_alert1: cpu_alert1 {
> > +                        temperature = <70000>;
> > +                        hysteresis = <2000>;
> > +                        type = "passive";
> > +                    };
> > +
> > +                    cpu_alert2: cpu_alert2 {
> > +                        temperature = <75000>;
> > +                        hysteresis = <2000>;
> > +                        type = "passive";
> > +                    };
> > +
> > +                    cpu_crit: cpu_crit {
> > +                        temperature = <95000>;
> > +                        hysteresis = <2000>;
> > +                        type = "critical";
> > +                    };
> >                   };
> >
> >                   cooling-maps {
> > -                        map0 {
> > -                             trip = <&cpu_alert1>;
> > -                             cooling-device = <&{/cpus/cpu@100/thermal-idle} 0 15 >,
> > -                                              <&{/cpus/cpu@101/thermal-idle} 0 15>;
> > -                        };
> > -
> > -                        map1 {
> > -                             trip = <&cpu_alert2>;
> > -                             cooling-device =
> > -                                        <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
> > -                                        <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> > -                       };
> > +                    map0 {
> > +                        trip = <&cpu_alert1>;
> > +                        cooling-device = <&cpu_b0 0 15 >,
> > +                                         <&cpu_b1 0 15>;
>
> This is pointing to the DVFS cooling device, not the idle cooling
> device. Should it be <&cpu_b0_idle 0 15> and that label defined in
> thermal_idle ?

Ah, yes indeed. I'll fix that up with a label to the correct node.

And note that 'thermal-idle' needs to be added to cpu node schema.
That one currently allows anything extra which I'm working on
addressing.

Rob
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/thermal/thermal-idle.yaml b/Documentation/devicetree/bindings/thermal/thermal-idle.yaml
index cc938d7ad1f3..72d85eb64247 100644
--- a/Documentation/devicetree/bindings/thermal/thermal-idle.yaml
+++ b/Documentation/devicetree/bindings/thermal/thermal-idle.yaml
@@ -48,99 +48,105 @@  additionalProperties: false
 
 examples:
   - |
-    #include <dt-bindings/thermal/thermal.h>
+    /{
+        #include <dt-bindings/thermal/thermal.h>
 
-    // Example: Combining idle cooling device on big CPUs with cpufreq cooling device
-    cpus {
+        compatible = "foo";
+        model = "foo";
+        #address-cells = <1>;
+        #size-cells = <1>;
+
+        // Example: Combining idle cooling device on big CPUs with cpufreq cooling device
+        cpus {
             #address-cells = <2>;
             #size-cells = <0>;
 
             /* ... */
 
-                 cpu_b0: cpu@100 {
-                         device_type = "cpu";
-                         compatible = "arm,cortex-a72";
-                         reg = <0x0 0x100>;
-                         enable-method = "psci";
-                         capacity-dmips-mhz = <1024>;
-                         dynamic-power-coefficient = <436>;
-                         #cooling-cells = <2>; /* min followed by max */
-                         cpu-idle-states = <&CPU_SLEEP>, <&CLUSTER_SLEEP>;
-                         thermal-idle {
-                                 #cooling-cells = <2>;
-                                 duration-us = <10000>;
-                                 exit-latency-us = <500>;
-                         };
+            cpu_b0: cpu@100 {
+                device_type = "cpu";
+                compatible = "arm,cortex-a72";
+                reg = <0x0 0x100>;
+                enable-method = "psci";
+                capacity-dmips-mhz = <1024>;
+                dynamic-power-coefficient = <436>;
+                #cooling-cells = <2>; /* min followed by max */
+                cpu-idle-states = <&CPU_SLEEP>, <&CLUSTER_SLEEP>;
+                thermal-idle {
+                    #cooling-cells = <2>;
+                    duration-us = <10000>;
+                    exit-latency-us = <500>;
+                };
+            };
+
+            cpu_b1: cpu@101 {
+                device_type = "cpu";
+                compatible = "arm,cortex-a72";
+                reg = <0x0 0x101>;
+                enable-method = "psci";
+                capacity-dmips-mhz = <1024>;
+                dynamic-power-coefficient = <436>;
+                #cooling-cells = <2>; /* min followed by max */
+                cpu-idle-states = <&CPU_SLEEP>, <&CLUSTER_SLEEP>;
+                thermal-idle {
+                    #cooling-cells = <2>;
+                    duration-us = <10000>;
+                    exit-latency-us = <500>;
                 };
+            };
 
-                cpu_b1: cpu@101 {
-                        device_type = "cpu";
-                        compatible = "arm,cortex-a72";
-                        reg = <0x0 0x101>;
-                        enable-method = "psci";
-                        capacity-dmips-mhz = <1024>;
-                        dynamic-power-coefficient = <436>;
-                        #cooling-cells = <2>; /* min followed by max */
-                        cpu-idle-states = <&CPU_SLEEP>, <&CLUSTER_SLEEP>;
-                        thermal-idle {
-                                #cooling-cells = <2>;
-                                duration-us = <10000>;
-                                exit-latency-us = <500>;
-                        };
-                 };
-
-          /* ... */
+            /* ... */
 
-    };
+        };
 
-    /* ... */
+        /* ... */
 
-    thermal_zones {
-         cpu_thermal: cpu {
+        thermal_zones {
+            cpu_thermal: cpu {
                 polling-delay-passive = <100>;
                 polling-delay = <1000>;
 
                 /* ... */
 
                 trips {
-                        cpu_alert0: cpu_alert0 {
-                                    temperature = <65000>;
-                                    hysteresis = <2000>;
-                                    type = "passive";
-                        };
-
-                        cpu_alert1: cpu_alert1 {
-                                    temperature = <70000>;
-                                    hysteresis = <2000>;
-                                    type = "passive";
-                        };
-
-                        cpu_alert2: cpu_alert2 {
-                                    temperature = <75000>;
-                                    hysteresis = <2000>;
-                                    type = "passive";
-                        };
-
-                        cpu_crit: cpu_crit {
-                                    temperature = <95000>;
-                                    hysteresis = <2000>;
-                                    type = "critical";
-                        };
+                    cpu_alert0: cpu_alert0 {
+                        temperature = <65000>;
+                        hysteresis = <2000>;
+                        type = "passive";
+                    };
+
+                    cpu_alert1: cpu_alert1 {
+                        temperature = <70000>;
+                        hysteresis = <2000>;
+                        type = "passive";
+                    };
+
+                    cpu_alert2: cpu_alert2 {
+                        temperature = <75000>;
+                        hysteresis = <2000>;
+                        type = "passive";
+                    };
+
+                    cpu_crit: cpu_crit {
+                        temperature = <95000>;
+                        hysteresis = <2000>;
+                        type = "critical";
+                    };
                 };
 
                 cooling-maps {
-                        map0 {
-                             trip = <&cpu_alert1>;
-                             cooling-device = <&{/cpus/cpu@100/thermal-idle} 0 15 >,
-                                              <&{/cpus/cpu@101/thermal-idle} 0 15>;
-                        };
-
-                        map1 {
-                             trip = <&cpu_alert2>;
-                             cooling-device =
-                                        <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
-                                        <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
-                       };
+                    map0 {
+                        trip = <&cpu_alert1>;
+                        cooling-device = <&cpu_b0 0 15 >,
+                                         <&cpu_b1 0 15>;
+                    };
+
+                    map1 {
+                        trip = <&cpu_alert2>;
+                        cooling-device = <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                         <&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                    };
                 };
-          };
+            };
+        };
     };