]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
arm64: tegra: Enable PWM fan on the Jetson TX1 Devkit
authorAaron Kling <webgeek1234@gmail.com>
Thu, 1 May 2025 22:32:23 +0000 (17:32 -0500)
committerThierry Reding <treding@nvidia.com>
Thu, 8 May 2025 20:57:27 +0000 (22:57 +0200)
This is based on 6f78a94, which enabled added the fan and thermal zones
for the Jetson Nano Devkit. The fan and thermal characteristics of the
two devkits are similar, so using the same configuration.

Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
Link: https://lore.kernel.org/r/20250501-tx1-therm-v2-1-abdb1922c001@gmail.com
Signed-off-by: Thierry Reding <treding@nvidia.com>
arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi

index 83ed6ac2a8d8f403fb588edce83dc401065c162f..584461f3a6196c4327e958b424dfd2139cd43965 100644 (file)
                };
        };
 
+       fan: pwm-fan {
+               compatible = "pwm-fan";
+               pwms = <&pwm 3 45334>;
+               fan-supply = <&vdd_fan>;
+               interrupt-parent = <&gpio>;
+               interrupts = <TEGRA_GPIO(K, 7) IRQ_TYPE_EDGE_RISING>;
+
+               /* cooling level (0, 1, 2, 3) - pwm inverted */
+               cooling-levels = <255 128 64 0>;
+               #cooling-cells = <2>;
+       };
+
        vdd_sys_mux: regulator-vdd-sys-mux {
                compatible = "regulator-fixed";
                regulator-name = "VDD_SYS_MUX";
                enable-active-high;
                vin-supply = <&vdd_5v0_sys>;
        };
+
+       vdd_fan: regulator-vdd-fan {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_FAN";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&exp1 4 GPIO_ACTIVE_LOW>;
+               vin-supply = <&vdd_5v0_sys>;
+
+               regulator-enable-ramp-delay = <284>;
+       };
+
+       thermal-zones {
+               cpu-thermal {
+                       trips {
+                               cpu_trip_critical: critical {
+                                       temperature = <96500>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+
+                               cpu_trip_hot: hot {
+                                       temperature = <70000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+
+                               cpu_trip_active: active {
+                                       temperature = <50000>;
+                                       hysteresis = <2000>;
+                                       type = "active";
+                               };
+
+                               cpu_trip_passive: passive {
+                                       temperature = <30000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       cooling-device = <&fan 3 3>;
+                                       trip = <&cpu_trip_critical>;
+                               };
+
+                               map1 {
+                                       cooling-device = <&fan 2 2>;
+                                       trip = <&cpu_trip_hot>;
+                               };
+
+                               map2 {
+                                       cooling-device = <&fan 1 1>;
+                                       trip = <&cpu_trip_active>;
+                               };
+
+                               map3 {
+                                       cooling-device = <&fan 0 0>;
+                                       trip = <&cpu_trip_passive>;
+                               };
+                       };
+               };
+       };
 };