On Fri, Oct 4, 2019 at 2:31 PM Guillaume La Roque <glaroque@xxxxxxxxxxxx> wrote: > > Add minimal thermal zone for two temperature sensor > One is located close to the DDR and the other one is > located close to the PLLs (between the CPU and GPU) > > Acked-by: Martin Blumenstingl <martin.blumenstingl@xxxxxxxxxxxxxx> > Reviewed-by: Neil Armstrong <narmstrong@xxxxxxxxxxxx> > Tested-by: Christian Hewitt <christianshewitt@xxxxxxxxx> > Tested-by: Kevin Hilman <khilman@xxxxxxxxxxxx> > Signed-off-by: Guillaume La Roque <glaroque@xxxxxxxxxxxx> > --- > .../boot/dts/amlogic/meson-g12-common.dtsi | 57 +++++++++++++++++++ > 1 file changed, 57 insertions(+) > > diff --git a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi > index 0660d9ef6a86..a98c16e163c2 100644 > --- a/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi > +++ b/arch/arm64/boot/dts/amlogic/meson-g12-common.dtsi > @@ -12,6 +12,7 @@ > #include <dt-bindings/interrupt-controller/arm-gic.h> > #include <dt-bindings/reset/amlogic,meson-axg-audio-arb.h> > #include <dt-bindings/reset/amlogic,meson-g12a-reset.h> > +#include <dt-bindings/thermal/thermal.h> > > / { > interrupt-parent = <&gic>; > @@ -94,6 +95,61 @@ > #size-cells = <2>; > ranges; > > + thermal-zones { > + cpu_thermal: cpu-thermal { > + polling-delay = <1000>; > + polling-delay-passive = <100>; Ordinarily, you would need to set these delays to 0 in interrupt mode to prevent polling overhead. I've just submitted a patch to of-thermal that should fix this requirement. Could you check if it works for you? > + thermal-sensors = <&cpu_temp>; > + > + trips { > + cpu_passive: cpu-passive { > + temperature = <85000>; /* millicelsius */ > + hysteresis = <2000>; /* millicelsius */ > + type = "passive"; > + }; > + > + cpu_hot: cpu-hot { > + temperature = <95000>; /* millicelsius */ > + hysteresis = <2000>; /* millicelsius */ > + type = "hot"; > + }; > + > + cpu_critical: cpu-critical { > + temperature = <110000>; /* millicelsius */ > + hysteresis = <2000>; /* millicelsius */ > + type = "critical"; > + }; > + }; > + }; > + > + ddr_thermal: ddr-thermal { > + polling-delay = <1000>; > + polling-delay-passive = <100>; > + thermal-sensors = <&ddr_temp>; > + > + trips { > + ddr_passive: ddr-passive { > + temperature = <85000>; /* millicelsius */ > + hysteresis = <2000>; /* millicelsius */ > + type = "passive"; > + }; > + > + ddr_critical: ddr-critical { > + temperature = <110000>; /* millicelsius */ > + hysteresis = <2000>; /* millicelsius */ > + type = "critical"; > + }; > + }; > + > + cooling-maps { > + map { > + trip = <&ddr_passive>; > + cooling-device = <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; > + }; > + }; > + }; > + }; > + > ethmac: ethernet@ff3f0000 { > compatible = "amlogic,meson-axg-dwmac", > "snps,dwmac-3.70a", > @@ -2412,6 +2468,7 @@ > assigned-clock-rates = <0>, /* Do Nothing */ > <800000000>, > <0>; /* Do Nothing */ > + #cooling-cells = <2>; > }; > }; > > -- > 2.17.1 >