Re: [PATCH 1/2] DT: bindings: Add cooling cells for idle states
From: Daniel Lezcano
Date: Sat Jan 11 2020 - 12:33:02 EST
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?