Hi Rob, On Wed, 8 Jan 2020 at 15:03, Rob Herring <robh@xxxxxxxxxx> wrote: > > On Thu, Dec 19, 2019 at 11:19:27PM +0100, Daniel Lezcano wrote: > > Add DT documentation to add an idle state as a cooling device. The CPU > > is actually the cooling device but the definition is already used by > > frequency capping. As we need to make cpufreq capping and idle > > injection to co-exist together on the system in order to mitigate at > > different trip points, the CPU can not be used as the cooling device > > for idle injection. The idle state can be seen as an hardware feature > > and therefore as a component for the passive mitigation. > > > > Signed-off-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx> > > --- > > Documentation/devicetree/bindings/arm/idle-states.txt | 11 +++++++++++ > > 1 file changed, 11 insertions(+) > > This is now a schema in my tree. Can you rebase on that and I'll pick up > the binding change. Mmh, I'm now having some doubts about this binding because it will restrict any improvement of the cooling device for the future. It looks like adding a node to the CPU for the cooling device is more adequate. eg: CPU0: cpu@300 { device_type = "cpu"; compatible = "arm,cortex-a9"; reg = <0x300>; /* cpufreq controls */ operating-points = <998400 0 800000 0 400000 0 200000 0>; clocks = <&prcmu_clk PRCMU_ARMSS>; clock-names = "cpu"; clock-latency = <20000>; #cooling-cells = <2>; thermal-idle { #cooling-cells = <2>; }; }; [ ... ] cooling-device = <&{/cpus/cpu@300/thermal-idle} THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; A quick test with different configurations combination shows it is much more flexible and it is open for future changes. What do you think?