Re: [PATCH 1/2] dt-bindings: thermal: Update the bindings to support multiple sensors

From: Daniel Lezcano
Date: Thu Feb 24 2022 - 05:00:19 EST



Hi Alexandre,

thanks for your series

On 18/02/2022 09:46, Alexandre Bailon wrote:
This adds two optionals properties and update the thermal-sensors
property description to support multiple sensors with a thermal zone.


I think it would make sense to first send a patch fixing the missing attribute from txt -> yaml translation with the Fixes tag which was:

"A list of thermal sensor phandles and sensor specifier
Type: list of used while monitoring the thermal zone"

And add in the description if there are more than one sensor, then the max value will be returned. Then provide the code to get the max value.

The second series of changes would be the other aggregations and the implementation.


---
.../bindings/thermal/thermal-zones.yaml | 30 +++++++++++++++++--
1 file changed, 27 insertions(+), 3 deletions(-)

diff --git a/Documentation/devicetree/bindings/thermal/thermal-zones.yaml b/Documentation/devicetree/bindings/thermal/thermal-zones.yaml
index 2d34f3ccb2572..9f944c2364589 100644
--- a/Documentation/devicetree/bindings/thermal/thermal-zones.yaml
+++ b/Documentation/devicetree/bindings/thermal/thermal-zones.yaml
@@ -77,10 +77,24 @@ patternProperties:
thermal-sensors:
$ref: /schemas/types.yaml#/definitions/phandle-array
- maxItems: 1
description:
- The thermal sensor phandle and sensor specifier used to monitor this
- thermal zone.
+ An array of thermal sensor phandle and sensor specifier used to
+ monitor this thermal zone.
+ If the array contains more than one sensor then the returned value
+ is the maximum unless aggregation-min or aggregation-avg properties
+ are set.
+
+ aggregation-min:
+ type: boolean
+ description:
+ Return the minimum temperature when the thermal monitor multiple
+ sensors.
+
+ aggregation-avg:
+ type: boolean
+ description:
+ Return the average temperature when the thermal monitor multiple
+ sensors.

Maybe 'aggregation' could be a string?

aggregation = "max";
aggregation = "min";
aggregation = "avg";

It should be in the optional section and probably a conditional if thermal-sensors has more than one item

coefficients:
$ref: /schemas/types.yaml#/definitions/uint32-array
@@ -338,5 +352,15 @@ examples:
};
};
};
+
+ /* ... */
+
+ soc-max-thermal {
+ polling-delay-passive = <250>;
+ polling-delay = <1000>;
+ thermal-sensors = <&tsens0 5>, <&tsens0 11>;
+ trips {};
+ cooling-maps {};
+ };
};
...


--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog