Re: [PATCH v2 0/2] Add a generic virtual thermal sensor

From: Alexandre Bailon
Date: Fri Sep 17 2021 - 09:31:44 EST


Hi Daniel,

On 9/17/21 2:41 PM, Daniel Lezcano wrote:
On 17/09/2021 09:27, Alexandre Bailon wrote:
This series add a virtual thermal sensor.
It could be used to get a temperature using some thermal sensors.
Currently, the supported operations are max, min and avg.
The virtual sensor could be easily extended to support others operations.

Note:
Currently, thermal drivers must explicitly register their sensors to make them
available to the virtual sensor.
This doesn't seem a good solution to me and I think it would be preferable to
update the framework to register the list of each available sensors.
Why must the drivers do that ?
Because there are no central place where thermal sensor are registered.
The only other way I found was to update thermal_of.c,
to register the thermal sensors and make them available later to the virtual thermal sensor.

To work, the virtual thermal need to get the sensor_data the ops from the thermal sensor.
And as far I know, this is only registered in thermal_of.c, in the thermal zone data
but I can't access it directly from the virtual thermal sensor.

How would you do it ?

Thanks,
Alexandre

Changes in v2:
- Fix some warnings / errors reported by kernel test robot
- rename some struct and functions with a more accurate name
- update the dt bindings: rename type attribute to aggregation-function
- factorize a little bit the aggregation functions

Alexandre Bailon (2):
dt-bindings: Add bindings for the virtual thermal sensor
thermal: add a virtual sensor to aggregate temperatures

.../thermal/virtual,thermal-sensor.yaml | 67 +++
drivers/thermal/Kconfig | 8 +
drivers/thermal/Makefile | 1 +
drivers/thermal/virtual-sensor.h | 51 +++
drivers/thermal/virtual_sensor.c | 400 ++++++++++++++++++
include/dt-bindings/thermal/virtual-sensor.h | 15 +
6 files changed, 542 insertions(+)
create mode 100644 Documentation/devicetree/bindings/thermal/virtual,thermal-sensor.yaml
create mode 100644 drivers/thermal/virtual-sensor.h
create mode 100644 drivers/thermal/virtual_sensor.c
create mode 100644 include/dt-bindings/thermal/virtual-sensor.h