On Sat, Jan 11, 2020 at 11:32 AM Daniel Lezcano <daniel.lezcano@xxxxxxxxxx> wrote: > > 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? Why do you need #cooling-cells in both cpu node and a child node? It's really only 1 device. Maybe you could add another cell to contain an idle state node if that helps? Rob