The A311D on Zero2 needs active cooling and the board includes a header to
connect a simple fan. Add pwm-fan support with basic thermal properties so
the fan runs when connected.
Suggested-by: Yuntian Zhang <[email protected]>
Signed-off-by: Christian Hewitt <[email protected]>
---
.../dts/amlogic/meson-g12b-radxa-zero2.dts | 27 +++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts
index 890f5bfebb03..895b6ea67180 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts
@@ -33,6 +33,15 @@ memory@0 {
reg = <0x0 0x0 0x0 0x80000000>;
};
+ fan0: pwm-fan {
+ compatible = "pwm-fan";
+ #cooling-cells = <2>;
+ cooling-min-state = <0>;
+ cooling-max-state = <4>;
+ cooling-levels = <0 64 128 192 255>;
+ pwms = <&pwm_AO_ab 0 40000 0>;
+ };
+
gpio-keys-polled {
compatible = "gpio-keys-polled";
poll-interval = <100>;
@@ -286,6 +295,24 @@ &cpu103 {
clock-latency = <50000>;
};
+&cpu_thermal {
+ cooling-maps {
+ map0 {
+ trip = <&cpu_passive>;
+ cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
+};
+
+&ddr_thermal {
+ cooling-maps {
+ map0 {
+ trip = <&ddr_passive>;
+ cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+ };
+};
+
&frddr_a {
status = "okay";
};
--
2.34.1
On 28/10/2023 09:54, Christian Hewitt wrote:
> The A311D on Zero2 needs active cooling and the board includes a header to
> connect a simple fan. Add pwm-fan support with basic thermal properties so
> the fan runs when connected.
>
> Suggested-by: Yuntian Zhang <[email protected]>
> Signed-off-by: Christian Hewitt <[email protected]>
> ---
> .../dts/amlogic/meson-g12b-radxa-zero2.dts | 27 +++++++++++++++++++
> 1 file changed, 27 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts
> index 890f5bfebb03..895b6ea67180 100644
> --- a/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts
> +++ b/arch/arm64/boot/dts/amlogic/meson-g12b-radxa-zero2.dts
> @@ -33,6 +33,15 @@ memory@0 {
> reg = <0x0 0x0 0x0 0x80000000>;
> };
>
> + fan0: pwm-fan {
> + compatible = "pwm-fan";
> + #cooling-cells = <2>;
> + cooling-min-state = <0>;
> + cooling-max-state = <4>;
> + cooling-levels = <0 64 128 192 255>;
> + pwms = <&pwm_AO_ab 0 40000 0>;
> + };
> +
> gpio-keys-polled {
> compatible = "gpio-keys-polled";
> poll-interval = <100>;
> @@ -286,6 +295,24 @@ &cpu103 {
> clock-latency = <50000>;
> };
>
> +&cpu_thermal {
> + cooling-maps {
> + map0 {
> + trip = <&cpu_passive>;
> + cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> + };
> + };
> +};
> +
> +&ddr_thermal {
> + cooling-maps {
> + map0 {
> + trip = <&ddr_passive>;
> + cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> + };
> + };
> +};
You should instead add a new active trips, and use them for the fan cooling-map.
Look at how it's done on the Khadas VIM3s or Odroid boards.
Neil
> +
> &frddr_a {
> status = "okay";
> };