On 06/06/2024 11:06, 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]>
> ---
> Changes since v1: [0]
> - Drop min/max state to comply with bindings
> - Drop ddr_thermal node
> - Add cpu_thermal trips
> - Use cooling map2 to avoid clashing with dtsi inherited maps
>
> [0] https://patchwork.kernel.org/project/linux-amlogic/patch/[email protected]/
>
> .../dts/amlogic/meson-g12b-radxa-zero2.dts | 24 +++++++++++++++++++
> 1 file changed, 24 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..8445701100d0 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,13 @@ memory@0 {
> reg = <0x0 0x0 0x0 0x80000000>;
> };
>
> + fan0: pwm-fan {
> + compatible = "pwm-fan";
> + #cooling-cells = <2>;
> + 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 +293,23 @@ &cpu103 {
> clock-latency = <50000>;
> };
>
> +&cpu_thermal {
> + trips {
> + cpu_active: cpu-active {
> + temperature = <70000>; /* millicelsius */
> + hysteresis = <2000>; /* millicelsius */
> + type = "active";
> + };
> + };
> +
> + cooling-maps {
> + map2 {
> + trip = <&cpu_active>;
> + cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> + };
> + };
> +};
> +
> &frddr_a {
> status = "okay";
> };
Reviewed-by: Neil Armstrong <[email protected]>