On 25/06/2021 13:03, Frank Wunderlich wrote: > Hi > >> Gesendet: Freitag, 25. Juni 2021 um 11:57 Uhr >> Von: "Daniel Lezcano" <daniel.lezcano@xxxxxxxxxx> > >> You should not add the fan in the mt7622.dtsi itself but in the board >> specific file where there is a fan output on it. mt7622.dtsi is supposed >> to be the SoC itself AFAICT. >> >> For instance: >> >> https://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux.git/tree/arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi#n39 >> >> https://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux.git/tree/arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi#n164 > >>> @@ -170,14 +177,12 @@ >>> cooling-maps { >>> map0 { >>> trip = <&cpu_passive>; >>> - cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, >>> - <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; >>> + cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; >>> }; >> >> fan == active trip point >> >> This is referring to the passive trip point. So it should point to the >> CPU as it is now. Note the order of mitigation is inverted regarding the >> proposal description. > > but we need to disable the passive trip as cpu-trotteling starts there...the higher temperature trips are currently not reached Sorry, can you rephrase it ? I'm not getting the point. > summary > > moving fan and cpu_thermal-override to bananapi-r64.dts > > passive-trip: cooling-device = <&cpu0/1 0 0> as in erics Patch > active trip: cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; > the other 2 unchanged > > but i suggest changing the temperature points in mt7622 dtsi as this is SoC specific > > so basicly: > > --- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi > +++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi > @@ -143,13 +143,13 @@ cpu_thermal: cpu-thermal { > > trips { > cpu_passive: cpu-passive { > - temperature = <47000>; > + temperature = <70000>; May be increase the passive temp to 75°C. > hysteresis = <2000>; > type = "passive"; > }; > > cpu_active: cpu-active { > - temperature = <67000>; > + temperature = <80000>; > hysteresis = <2000>; > type = "active"; > }; Move the active trip 'cpu_active' to mt7622-bananapi-bpi-r64.dts. and set it to 70°C in the mt7622-bananapi-bpi-r64.dts, so the fan will act before the cpu throttling. The behavior should be the following: The temperature reaches 70°C, the fan will start, if the temperature continues to increase, it will increase the speed. If the temperature reaches 75°C, the fan is still rotating at full speed but the cpu begins to be throttled. AFAIU, it is a Cortex-A53 running @1.35GH, so except the board is in a black metal box under the sun, I don't see how we can reach this thermal limits. > @@ -170,8 +170,8 @@ cpu-crit { > cooling-maps { > map0 { > trip = <&cpu_passive>; > - cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, > - <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; > + cooling-device = <&cpu0 0 0>, > + <&cpu1 0 0>; You should keep it untouched. > }; > > map1 { > @@ -428,6 +428,7 @@ uart3: serial@11005000 { > pwm: pwm@11006000 { > compatible = "mediatek,mt7622-pwm"; > reg = <0 0x11006000 0 0x1000>; > + #pwm-cells = <3>; > interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_LOW>; > clocks = <&topckgen CLK_TOP_PWM_SEL>, > <&pericfg CLK_PERI_PWM_PD>, > > --- a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts > +++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts > @@ -37,6 +37,13 @@ cpu@1 { > }; > }; > > + fan0: pwm-fan { > + compatible = "pwm-fan"; > + #cooling-cells = <2>; > + pwms = <&pwm 2 10000 0>; > + cooling-levels = <0 102 170 230>; > + }; > + > gpio-keys { > compatible = "gpio-keys"; > > @@ -582,6 +589,29 @@ &u3phy { > status = "okay"; > }; > > +&cpu_thermal { > + cooling-maps { > + map1 { > + trip = <&cpu_active>; > + cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; > + }; > + }; > +}; > + > &uart0 { > pinctrl-names = "default"; > pinctrl-0 = <&uart0_pins>; > -- <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog