[PATCH] rockchip: rockpro64: Set cooling levels for pwm-fan

Kurt Miller kurt at intricatesoftware.com
Fri May 29 14:42:31 CEST 2020


On Fri, 2020-05-29 at 09:27 +0100, Peter Robinson wrote:
> On Thu, May 28, 2020 at 8:32 PM Kurt Miller <kurt at intricatesoftware.com> wrote:
> > 
> > 
> > The cooling levels are tuned to the fan that comes with the rockpro64 NAS
> > case. A gpu_thermal zone was not added because having two active cooling
> > maps control one physical fan causes them to compete for the fan speed
> > which results in erratic fan behavior.
> Is there any reason this shouldn't go to the linux kernel first and
> then be synced back to the standard rk3399-rockpro64.dtsi?

Is that a requirement? I do my primary development on OpenBSD and
while I use Linux for work tasks, I don't have available time right
now to push these changes to Linux kernel first.

> 
> > 
> > Signed-off-by: Kurt Miller <kurt at intricatesoftware.com>
> > ---
> > 
> >  arch/arm/dts/rk3399-rockpro64-u-boot.dtsi | 43 +++++++++++++++++++++++
> >  1 file changed, 43 insertions(+)
> > 
> > diff --git a/arch/arm/dts/rk3399-rockpro64-u-boot.dtsi b/arch/arm/dts/rk3399-rockpro64-u-boot.dtsi
> > index deaa3efd39..c0e0396758 100644
> > --- a/arch/arm/dts/rk3399-rockpro64-u-boot.dtsi
> > +++ b/arch/arm/dts/rk3399-rockpro64-u-boot.dtsi
> > @@ -13,6 +13,49 @@
> >         chosen {
> >                 u-boot,spl-boot-order = "same-as-spl", &sdmmc, &sdhci;
> >         };
> > +
> > +       fan: pwm-fan {
> > +               cooling-levels = <0 40 80 255>;
> > +       };
> > +};
> > +
> > +&cpu_thermal {
> > +       trips {
> > +               cpu_warm: cpu_warm {
> > +                       temperature = <50000>;
> > +                       hysteresis = <2000>;
> > +                       type = "active";
> > +               };
> > +
> > +               cpu_med: cpu_med {
> > +                       temperature = <60000>;
> > +                       hysteresis = <2000>;
> > +                       type = "active";
> > +               };
> > +
> > +               cpu_hot: cpu_hot {
> > +                       temperature = <65000>;
> > +                       hysteresis = <2000>;
> > +                       type = "active";
> > +               };
> > +       };
> > +
> > +       cooling-maps {
> > +               map2 {
> > +                       trip = <&cpu_warm>;
> > +                       cooling-device = <&fan THERMAL_NO_LIMIT 1>;
> > +               };
> > +
> > +               map3 {
> > +                       trip = <&cpu_med>;
> > +                       cooling-device = <&fan THERMAL_NO_LIMIT 2>;
> > +               };
> > +
> > +               map4 {
> > +                       trip = <&cpu_hot>;
> > +                       cooling-device = <&fan 2 THERMAL_NO_LIMIT>;
> > +               };
> > +       };
> >  };
> > 
> >  &vdd_center {
> > --
> > 2.26.2
> > 



More information about the U-Boot mailing list