LoongArch: dts: Add PWM support to Loongson-2K1000
authorBinbin Zhou <zhoubinbin@loongson.cn>
Thu, 5 Jun 2025 12:34:34 +0000 (20:34 +0800)
committerHuacai Chen <chenhuacai@loongson.cn>
Fri, 6 Jun 2025 10:51:16 +0000 (18:51 +0800)
The module is supported, enable it.

Also, add the pwm-fan and cooling-maps associated with it.

Reviewed-by: Yanteng Si <si.yanteng@linux.dev>
Signed-off-by: Binbin Zhou <zhoubinbin@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
arch/loongarch/boot/dts/loongson-2k1000-ref.dts
arch/loongarch/boot/dts/loongson-2k1000.dtsi

index 3514ea78f525651050f58765f9606fb675e3daac..78ea995abf1c6570f6c4086aaca7e248b006c08a 100644 (file)
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 
+#include "dt-bindings/thermal/thermal.h"
 #include "loongson-2k1000.dtsi"
 
 / {
                        linux,cma-default;
                };
        };
+
+       fan0: pwm-fan {
+               compatible = "pwm-fan";
+               cooling-levels = <255 153 85 25>;
+               pwms = <&pwm1 0 100000 0>;
+               #cooling-cells = <2>;
+       };
 };
 
 &gmac0 {
        #size-cells = <0>;
 };
 
+&pwm1 {
+       status = "okay";
+
+       pinctrl-0 = <&pwm1_pins_default>;
+       pinctrl-names = "default";
+};
+
+&cpu_thermal {
+       cooling-maps {
+               map0 {
+                       trip = <&cpu_alert>;
+                       cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+               };
+       };
+};
+
 &ehci0 {
        status = "okay";
 };
index 8dff2aa5241717b0fb2a31637bd5f6a56c8ea902..1da3beb00f0ec1d672d3c3c68d71faf6ee9d2079 100644 (file)
@@ -68,7 +68,7 @@
        };
 
        thermal-zones {
-               cpu-thermal {
+               cpu_thermal: cpu-thermal {
                        polling-delay-passive = <1000>;
                        polling-delay = <5000>;
                        thermal-sensors = <&tsensor 0>;
                        status = "disabled";
                };
 
+               pwm@1fe22000 {
+                       compatible = "loongson,ls2k1000-pwm", "loongson,ls7a-pwm";
+                       reg = <0x0 0x1fe22000 0x0 0x10>;
+                       interrupt-parent = <&liointc0>;
+                       interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk LOONGSON2_APB_CLK>;
+                       #pwm-cells = <3>;
+                       status = "disabled";
+               };
+
+               pwm1: pwm@1fe22010 {
+                       compatible = "loongson,ls2k1000-pwm", "loongson,ls7a-pwm";
+                       reg = <0x0 0x1fe22010 0x0 0x10>;
+                       interrupt-parent = <&liointc0>;
+                       interrupts = <25 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk LOONGSON2_APB_CLK>;
+                       #pwm-cells = <3>;
+                       status = "disabled";
+               };
+
+               pwm@1fe22020 {
+                       compatible = "loongson,ls2k1000-pwm", "loongson,ls7a-pwm";
+                       reg = <0x0 0x1fe22020 0x0 0x10>;
+                       interrupt-parent = <&liointc0>;
+                       interrupts = <26 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk LOONGSON2_APB_CLK>;
+                       #pwm-cells = <3>;
+                       status = "disabled";
+               };
+
+               pwm@1fe22030 {
+                       compatible = "loongson,ls2k1000-pwm", "loongson,ls7a-pwm";
+                       reg = <0x0 0x1fe22030 0x0 0x10>;
+                       interrupt-parent = <&liointc0>;
+                       interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk LOONGSON2_APB_CLK>;
+                       #pwm-cells = <3>;
+                       status = "disabled";
+               };
+
                pmc: power-management@1fe27000 {
                        compatible = "loongson,ls2k1000-pmc", "loongson,ls2k0500-pmc", "syscon";
                        reg = <0x0 0x1fe27000 0x0 0x58>;