Message ID | 20191004090114.30694-5-glaroque@baylibre.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | Add support of New Amlogic temperature sensor for G12 SoCs | expand |
On Fri, Oct 4, 2019 at 2:31 PM Guillaume La Roque <glaroque@baylibre.com> 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@googlemail.com> > Reviewed-by: Neil Armstrong <narmstrong@baylibre.com> > Tested-by: Christian Hewitt <christianshewitt@gmail.com> > Tested-by: Kevin Hilman <khilman@baylibre.com> > Signed-off-by: Guillaume La Roque <glaroque@baylibre.com> > --- > .../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 >
Hi, On 10/16/19 1:20 AM, Amit Kucheria wrote: > On Fri, Oct 4, 2019 at 2:31 PM Guillaume La Roque <glaroque@baylibre.com> 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@googlemail.com> >> Reviewed-by: Neil Armstrong <narmstrong@baylibre.com> >> Tested-by: Christian Hewitt <christianshewitt@gmail.com> >> Tested-by: Kevin Hilman <khilman@baylibre.com> >> Signed-off-by: Guillaume La Roque <glaroque@baylibre.com> >> --- >> .../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? it's working for me. thanks for your review. >> + 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 >>
On Fri, Oct 4, 2019 at 2:31 PM Guillaume La Roque <glaroque@baylibre.com> 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@googlemail.com> > Reviewed-by: Neil Armstrong <narmstrong@baylibre.com> > Tested-by: Christian Hewitt <christianshewitt@gmail.com> > Tested-by: Kevin Hilman <khilman@baylibre.com> > Signed-off-by: Guillaume La Roque <glaroque@baylibre.com> Reviewed-by: Amit Kucheria <amit.kucheria@linaro.org> > --- > .../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>; > + 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 >
Guillaume La Roque <glaroque@baylibre.com> writes: > 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) nit: subject should be "arm64: dts: amlogic" (not meson). I fixed it up when applying, Kevin
Kevin Hilman <khilman@baylibre.com> writes: > Guillaume La Roque <glaroque@baylibre.com> writes: > >> 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) > > nit: subject should be "arm64: dts: amlogic" (not meson). > > I fixed it up when applying, I got it backwards, this one was right, the other ones with "amlogic" should be "meson". I (re)fixed it in my 'v5.5/dt64' branch. Kevin
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>; + 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>; }; };