diff mbox series

[SRU,M:raspi] ARM: dts: bcm2712-rpi-5-b: Add fan speed dtparams

Message ID 20240312095236.167959-1-juerg.haefliger@canonical.com
State New
Headers show
Series [SRU,M:raspi] ARM: dts: bcm2712-rpi-5-b: Add fan speed dtparams | expand

Commit Message

Juerg Haefliger March 12, 2024, 9:52 a.m. UTC
From: Phil Elwell <phil@raspberrypi.com>

BugLink: https://bugs.launchpad.net/bugs/2054921

Add dtparams for adjusting the Pi 5 cooling fan speeds and temperature
thresholds.

See: https://github.com/raspberrypi/linux/issues/5820

Signed-off-by: Phil Elwell <phil@raspberrypi.com>
(backported from commit 83d4e02e4b66625578dc9421e2c69834af392947 rpi-6.6.y)
[juergh: Adjusted context.]
Signed-off-by: Juerg Haefliger <juerg.haefliger@canonical.com>
---
 .../arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts | 13 ++++++++++
 arch/arm/boot/dts/overlays/README             | 25 +++++++++++++++++++
 2 files changed, 38 insertions(+)

Comments

Manuel Diewald March 12, 2024, 10:19 a.m. UTC | #1
On Tue, Mar 12, 2024 at 10:52:36AM +0100, Juerg Haefliger wrote:
> From: Phil Elwell <phil@raspberrypi.com>
> 
> BugLink: https://bugs.launchpad.net/bugs/2054921
> 
> Add dtparams for adjusting the Pi 5 cooling fan speeds and temperature
> thresholds.
> 
> See: https://github.com/raspberrypi/linux/issues/5820
> 
> Signed-off-by: Phil Elwell <phil@raspberrypi.com>
> (backported from commit 83d4e02e4b66625578dc9421e2c69834af392947 rpi-6.6.y)
> [juergh: Adjusted context.]
> Signed-off-by: Juerg Haefliger <juerg.haefliger@canonical.com>
> ---
>  .../arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts | 13 ++++++++++
>  arch/arm/boot/dts/overlays/README             | 25 +++++++++++++++++++
>  2 files changed, 38 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts b/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts
> index 085ff354730e..14eeb769727c 100644
> --- a/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts
> +++ b/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts
> @@ -820,5 +820,18 @@ __overrides__ {
>  		act_led_trigger = <&act_led>, "linux,default-trigger";
>  		pwr_led_activelow = <&pwr_led>, "gpios:8";
>  		pwr_led_trigger = <&pwr_led>, "linux,default-trigger";
> +
> +		fan_temp0 = <&cpu_tepid>,"temperature:0";
> +		fan_temp1 = <&cpu_warm>,"temperature:0";
> +		fan_temp2 = <&cpu_hot>,"temperature:0";
> +		fan_temp3 = <&cpu_vhot>,"temperature:0";
> +		fan_temp0_hyst = <&cpu_tepid>,"hysteresis:0";
> +		fan_temp1_hyst = <&cpu_warm>,"hysteresis:0";
> +		fan_temp2_hyst = <&cpu_hot>,"hysteresis:0";
> +		fan_temp3_hyst = <&cpu_vhot>,"hysteresis:0";
> +		fan_temp0_speed = <&fan>, "cooling-levels:4";
> +		fan_temp1_speed = <&fan>, "cooling-levels:8";
> +		fan_temp2_speed = <&fan>, "cooling-levels:12";
> +		fan_temp3_speed = <&fan>, "cooling-levels:16";
>  	};
>  };
> diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README
> index 7f5fda92d623..fb8f8c60e9ba 100644
> --- a/arch/arm/boot/dts/overlays/README
> +++ b/arch/arm/boot/dts/overlays/README
> @@ -209,6 +209,31 @@ Params:
>                                  to negotiate. Legal values are 10, 100 and
>                                  1000 (default 1000). Pi3B+ only.
>  
> +        fan_temp0               Temperature threshold (in millicelcius) for
> +                                1st cooling level (default 50000). Pi5 only.
> +        fan_temp0_hyst          Temperature hysteresis (in millicelcius) for
> +                                1st cooling level (default 5000). Pi5 only.
> +        fan_temp0_speed         Fan PWM setting for 1st cooling level (0-255,
> +                                default 75). Pi5 only.
> +        fan_temp1               Temperature threshold (in millicelcius) for
> +                                2nd cooling level (default 60000). Pi5 only.
> +        fan_temp1_hyst          Temperature hysteresis (in millicelcius) for
> +                                2nd cooling level (default 5000). Pi5 only.
> +        fan_temp1_speed         Fan PWM setting for 2nd cooling level (0-255,
> +                                default 125). Pi5 only.
> +        fan_temp2               Temperature threshold (in millicelcius) for
> +                                3rd cooling level (default 67500). Pi5 only.
> +        fan_temp2_hyst          Temperature hysteresis (in millicelcius) for
> +                                3rd cooling level (default 5000). Pi5 only.
> +        fan_temp2_speed         Fan PWM setting for 3rd cooling level (0-255,
> +                                default 175). Pi5 only.
> +        fan_temp3               Temperature threshold (in millicelcius) for
> +                                4th cooling level (default 75000). Pi5 only.
> +        fan_temp3_hyst          Temperature hysteresis (in millicelcius) for
> +                                4th cooling level (default 5000). Pi5 only.
> +        fan_temp3_speed         Fan PWM setting for 4th cooling level (0-255,
> +                                default 250). Pi5 only.
> +
>          hdmi                    Set to "off" to disable the HDMI interface
>                                  (default "on")
>  
> -- 
> 2.40.1
> 
> 
> -- 
> kernel-team mailing list
> kernel-team@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team

Acked-by: Manuel Diewald <manuel.diewald@canonical.com>
Andrei Gherzan March 13, 2024, 10:22 a.m. UTC | #2
On 24/03/12 10:52AM, Juerg Haefliger wrote:
> From: Phil Elwell <phil@raspberrypi.com>
> 
> BugLink: https://bugs.launchpad.net/bugs/2054921
> 
> Add dtparams for adjusting the Pi 5 cooling fan speeds and temperature
> thresholds.
> 
> See: https://github.com/raspberrypi/linux/issues/5820
> 
> Signed-off-by: Phil Elwell <phil@raspberrypi.com>
> (backported from commit 83d4e02e4b66625578dc9421e2c69834af392947 rpi-6.6.y)
> [juergh: Adjusted context.]
> Signed-off-by: Juerg Haefliger <juerg.haefliger@canonical.com>
> ---
>  .../arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts | 13 ++++++++++
>  arch/arm/boot/dts/overlays/README             | 25 +++++++++++++++++++
>  2 files changed, 38 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts b/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts
> index 085ff354730e..14eeb769727c 100644
> --- a/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts
> +++ b/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts
> @@ -820,5 +820,18 @@ __overrides__ {
>  		act_led_trigger = <&act_led>, "linux,default-trigger";
>  		pwr_led_activelow = <&pwr_led>, "gpios:8";
>  		pwr_led_trigger = <&pwr_led>, "linux,default-trigger";
> +
> +		fan_temp0 = <&cpu_tepid>,"temperature:0";
> +		fan_temp1 = <&cpu_warm>,"temperature:0";
> +		fan_temp2 = <&cpu_hot>,"temperature:0";
> +		fan_temp3 = <&cpu_vhot>,"temperature:0";
> +		fan_temp0_hyst = <&cpu_tepid>,"hysteresis:0";
> +		fan_temp1_hyst = <&cpu_warm>,"hysteresis:0";
> +		fan_temp2_hyst = <&cpu_hot>,"hysteresis:0";
> +		fan_temp3_hyst = <&cpu_vhot>,"hysteresis:0";
> +		fan_temp0_speed = <&fan>, "cooling-levels:4";
> +		fan_temp1_speed = <&fan>, "cooling-levels:8";
> +		fan_temp2_speed = <&fan>, "cooling-levels:12";
> +		fan_temp3_speed = <&fan>, "cooling-levels:16";
>  	};
>  };
> diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README
> index 7f5fda92d623..fb8f8c60e9ba 100644
> --- a/arch/arm/boot/dts/overlays/README
> +++ b/arch/arm/boot/dts/overlays/README
> @@ -209,6 +209,31 @@ Params:
>                                  to negotiate. Legal values are 10, 100 and
>                                  1000 (default 1000). Pi3B+ only.
>  
> +        fan_temp0               Temperature threshold (in millicelcius) for
> +                                1st cooling level (default 50000). Pi5 only.
> +        fan_temp0_hyst          Temperature hysteresis (in millicelcius) for
> +                                1st cooling level (default 5000). Pi5 only.
> +        fan_temp0_speed         Fan PWM setting for 1st cooling level (0-255,
> +                                default 75). Pi5 only.
> +        fan_temp1               Temperature threshold (in millicelcius) for
> +                                2nd cooling level (default 60000). Pi5 only.
> +        fan_temp1_hyst          Temperature hysteresis (in millicelcius) for
> +                                2nd cooling level (default 5000). Pi5 only.
> +        fan_temp1_speed         Fan PWM setting for 2nd cooling level (0-255,
> +                                default 125). Pi5 only.
> +        fan_temp2               Temperature threshold (in millicelcius) for
> +                                3rd cooling level (default 67500). Pi5 only.
> +        fan_temp2_hyst          Temperature hysteresis (in millicelcius) for
> +                                3rd cooling level (default 5000). Pi5 only.
> +        fan_temp2_speed         Fan PWM setting for 3rd cooling level (0-255,
> +                                default 175). Pi5 only.
> +        fan_temp3               Temperature threshold (in millicelcius) for
> +                                4th cooling level (default 75000). Pi5 only.
> +        fan_temp3_hyst          Temperature hysteresis (in millicelcius) for
> +                                4th cooling level (default 5000). Pi5 only.
> +        fan_temp3_speed         Fan PWM setting for 4th cooling level (0-255,
> +                                default 250). Pi5 only.
> +
>          hdmi                    Set to "off" to disable the HDMI interface
>                                  (default "on")

Acked-by: Andrei Gherzan <andrei.gherzan@canonical.com>
Juerg Haefliger March 13, 2024, 1:59 p.m. UTC | #3
Applied to mantic:linux-raspi master-next branch.

...Juerg


On Tue, 12 Mar 2024 10:52:36 +0100
Juerg Haefliger <juerg.haefliger@canonical.com> wrote:

> From: Phil Elwell <phil@raspberrypi.com>
> 
> BugLink: https://bugs.launchpad.net/bugs/2054921
> 
> Add dtparams for adjusting the Pi 5 cooling fan speeds and temperature
> thresholds.
> 
> See: https://github.com/raspberrypi/linux/issues/5820
> 
> Signed-off-by: Phil Elwell <phil@raspberrypi.com>
> (backported from commit 83d4e02e4b66625578dc9421e2c69834af392947 rpi-6.6.y)
> [juergh: Adjusted context.]
> Signed-off-by: Juerg Haefliger <juerg.haefliger@canonical.com>
> ---
>  .../arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts | 13 ++++++++++
>  arch/arm/boot/dts/overlays/README             | 25 +++++++++++++++++++
>  2 files changed, 38 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts b/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts
> index 085ff354730e..14eeb769727c 100644
> --- a/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts
> +++ b/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts
> @@ -820,5 +820,18 @@ __overrides__ {
>  		act_led_trigger = <&act_led>, "linux,default-trigger";
>  		pwr_led_activelow = <&pwr_led>, "gpios:8";
>  		pwr_led_trigger = <&pwr_led>, "linux,default-trigger";
> +
> +		fan_temp0 = <&cpu_tepid>,"temperature:0";
> +		fan_temp1 = <&cpu_warm>,"temperature:0";
> +		fan_temp2 = <&cpu_hot>,"temperature:0";
> +		fan_temp3 = <&cpu_vhot>,"temperature:0";
> +		fan_temp0_hyst = <&cpu_tepid>,"hysteresis:0";
> +		fan_temp1_hyst = <&cpu_warm>,"hysteresis:0";
> +		fan_temp2_hyst = <&cpu_hot>,"hysteresis:0";
> +		fan_temp3_hyst = <&cpu_vhot>,"hysteresis:0";
> +		fan_temp0_speed = <&fan>, "cooling-levels:4";
> +		fan_temp1_speed = <&fan>, "cooling-levels:8";
> +		fan_temp2_speed = <&fan>, "cooling-levels:12";
> +		fan_temp3_speed = <&fan>, "cooling-levels:16";
>  	};
>  };
> diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README
> index 7f5fda92d623..fb8f8c60e9ba 100644
> --- a/arch/arm/boot/dts/overlays/README
> +++ b/arch/arm/boot/dts/overlays/README
> @@ -209,6 +209,31 @@ Params:
>                                  to negotiate. Legal values are 10, 100 and
>                                  1000 (default 1000). Pi3B+ only.
>  
> +        fan_temp0               Temperature threshold (in millicelcius) for
> +                                1st cooling level (default 50000). Pi5 only.
> +        fan_temp0_hyst          Temperature hysteresis (in millicelcius) for
> +                                1st cooling level (default 5000). Pi5 only.
> +        fan_temp0_speed         Fan PWM setting for 1st cooling level (0-255,
> +                                default 75). Pi5 only.
> +        fan_temp1               Temperature threshold (in millicelcius) for
> +                                2nd cooling level (default 60000). Pi5 only.
> +        fan_temp1_hyst          Temperature hysteresis (in millicelcius) for
> +                                2nd cooling level (default 5000). Pi5 only.
> +        fan_temp1_speed         Fan PWM setting for 2nd cooling level (0-255,
> +                                default 125). Pi5 only.
> +        fan_temp2               Temperature threshold (in millicelcius) for
> +                                3rd cooling level (default 67500). Pi5 only.
> +        fan_temp2_hyst          Temperature hysteresis (in millicelcius) for
> +                                3rd cooling level (default 5000). Pi5 only.
> +        fan_temp2_speed         Fan PWM setting for 3rd cooling level (0-255,
> +                                default 175). Pi5 only.
> +        fan_temp3               Temperature threshold (in millicelcius) for
> +                                4th cooling level (default 75000). Pi5 only.
> +        fan_temp3_hyst          Temperature hysteresis (in millicelcius) for
> +                                4th cooling level (default 5000). Pi5 only.
> +        fan_temp3_speed         Fan PWM setting for 4th cooling level (0-255,
> +                                default 250). Pi5 only.
> +
>          hdmi                    Set to "off" to disable the HDMI interface
>                                  (default "on")
>
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts b/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts
index 085ff354730e..14eeb769727c 100644
--- a/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts
+++ b/arch/arm/boot/dts/broadcom/bcm2712-rpi-5-b.dts
@@ -820,5 +820,18 @@  __overrides__ {
 		act_led_trigger = <&act_led>, "linux,default-trigger";
 		pwr_led_activelow = <&pwr_led>, "gpios:8";
 		pwr_led_trigger = <&pwr_led>, "linux,default-trigger";
+
+		fan_temp0 = <&cpu_tepid>,"temperature:0";
+		fan_temp1 = <&cpu_warm>,"temperature:0";
+		fan_temp2 = <&cpu_hot>,"temperature:0";
+		fan_temp3 = <&cpu_vhot>,"temperature:0";
+		fan_temp0_hyst = <&cpu_tepid>,"hysteresis:0";
+		fan_temp1_hyst = <&cpu_warm>,"hysteresis:0";
+		fan_temp2_hyst = <&cpu_hot>,"hysteresis:0";
+		fan_temp3_hyst = <&cpu_vhot>,"hysteresis:0";
+		fan_temp0_speed = <&fan>, "cooling-levels:4";
+		fan_temp1_speed = <&fan>, "cooling-levels:8";
+		fan_temp2_speed = <&fan>, "cooling-levels:12";
+		fan_temp3_speed = <&fan>, "cooling-levels:16";
 	};
 };
diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README
index 7f5fda92d623..fb8f8c60e9ba 100644
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -209,6 +209,31 @@  Params:
                                 to negotiate. Legal values are 10, 100 and
                                 1000 (default 1000). Pi3B+ only.
 
+        fan_temp0               Temperature threshold (in millicelcius) for
+                                1st cooling level (default 50000). Pi5 only.
+        fan_temp0_hyst          Temperature hysteresis (in millicelcius) for
+                                1st cooling level (default 5000). Pi5 only.
+        fan_temp0_speed         Fan PWM setting for 1st cooling level (0-255,
+                                default 75). Pi5 only.
+        fan_temp1               Temperature threshold (in millicelcius) for
+                                2nd cooling level (default 60000). Pi5 only.
+        fan_temp1_hyst          Temperature hysteresis (in millicelcius) for
+                                2nd cooling level (default 5000). Pi5 only.
+        fan_temp1_speed         Fan PWM setting for 2nd cooling level (0-255,
+                                default 125). Pi5 only.
+        fan_temp2               Temperature threshold (in millicelcius) for
+                                3rd cooling level (default 67500). Pi5 only.
+        fan_temp2_hyst          Temperature hysteresis (in millicelcius) for
+                                3rd cooling level (default 5000). Pi5 only.
+        fan_temp2_speed         Fan PWM setting for 3rd cooling level (0-255,
+                                default 175). Pi5 only.
+        fan_temp3               Temperature threshold (in millicelcius) for
+                                4th cooling level (default 75000). Pi5 only.
+        fan_temp3_hyst          Temperature hysteresis (in millicelcius) for
+                                4th cooling level (default 5000). Pi5 only.
+        fan_temp3_speed         Fan PWM setting for 4th cooling level (0-255,
+                                default 250). Pi5 only.
+
         hdmi                    Set to "off" to disable the HDMI interface
                                 (default "on")