dt-bindings: thermal: Add the idle cooling device
authorDaniel Lezcano <daniel.lezcano@linaro.org>
Wed, 29 Apr 2020 10:36:40 +0000 (12:36 +0200)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Tue, 19 May 2020 10:54:34 +0000 (12:54 +0200)
commit3b25846fbbca2ee3aaa67fe5abb750806d28a98e
tree195555b24e28abf5f89c26a1fff3fcc91a04747d
parent333cff6c963fbc8b9820ca2b6a8b2e22a572cd43
dt-bindings: thermal: Add the idle cooling device

Some devices are not able to cool down by reducing their voltage /
frequency because it could be not available or the system does not
allow voltage scaling. In this configuration, it is not possible to
use this strategy and the idle injection cooling device can be used
instead.

One idle cooling device is now present for the CPU as implemented by
the combination of the idle injection framework belonging to the power
capping framework and the thermal cooling device. The missing part is
the DT binding providing a way to describe how the cooling device will
work on the system.

A first iteration was done by making the cooling device to point to
the idle state. Unfortunately it does not make sense because it would
need to duplicate the idle state description for each CPU in order to
have a different phandle and make the thermal internal framework
happy.

It was proposed to add an cooling-cells to <3>, unfortunately the
thermal framework is expecting a value of <2> as stated by the
documentation and it is not possible from the cooling device generic
code to loop this third value to the back end cooling device.

Another proposal was to add a child 'thermal-idle' node as the SCMI
does. This approach allows to have a self-contained configuration for
the idle cooling device without colliding with the cpufreq cooling
device which is based on the CPU node. In addition, it allows to have
the cpufreq cooling device and the idle cooling device to co-exist
together as shown in the example.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Reviewed-by: Amit Kucheria <amit.kucheria@linaro.org>
Link: https://lore.kernel.org/r/20200429103644.5492-2-daniel.lezcano@linaro.org
Documentation/devicetree/bindings/thermal/thermal-idle.yaml [new file with mode: 0644]