From: Daniel Golle <daniel@makrotopia.org>
Date: Tue, 21 Dec 2021 21:50:32 +0000 (+0000)
Subject: mvebu: puzzle-m901: add LEDs, fan and reset button
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=3684b494ddd540b811de44497f0d11309bfd1911;p=openwrt%2Fstaging%2Fynezz.git

mvebu: puzzle-m901: add LEDs, fan and reset button

Wire up MCU driver for LEDs, fan and temperature sensor, and add
GPIO reset button just like on the M902 also on the Puzzle M901.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
---

diff --git a/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/cn9131-puzzle-m901.dts b/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/cn9131-puzzle-m901.dts
index 58e749490a..acf2ed6422 100644
--- a/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/cn9131-puzzle-m901.dts
+++ b/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/cn9131-puzzle-m901.dts
@@ -8,6 +8,7 @@
 #include "cn9130.dtsi"
 
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
 
 / {
 	model = "iEi Puzzle-M901";
@@ -31,12 +32,26 @@
 		gpio2 = &cp0_gpio2;
 		gpio3 = &cp1_gpio1;
 		gpio4 = &cp1_gpio2;
+		led-boot = &led_power;
+		led-failsafe = &led_info;
+		led-running = &led_power;
+		led-upgrade = &led_info;
 	};
 
 	memory@00000000 {
 		device_type = "memory";
 		reg = <0x0 0x0 0x0 0x80000000>;
 	};
+
+	gpio_keys {
+		compatible = "gpio-keys";
+
+		reset {
+			label = "Reset";
+			linux,code = <KEY_RESTART>;
+			gpios = <&cp0_gpio2 4 GPIO_ACTIVE_LOW>;
+		};
+	};
 };
 
 &uart0 {
@@ -45,6 +60,75 @@
 
 &cp0_uart0 {
 	status = "okay";
+
+	puzzle-mcu {
+		compatible = "iei,wt61p803-puzzle";
+		#address-cells = <1>;
+		#size-cells = <1>;
+		current-speed = <115200>;
+		enable-beep;
+		status = "okay";
+
+		leds {
+			compatible = "iei,wt61p803-puzzle-leds";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			status = "okay";
+
+			led@0 {
+				reg = <0>;
+				label = "white:network";
+				active-low;
+			};
+
+			led@1 {
+				reg = <1>;
+				label = "green:cloud";
+				active-low;
+			};
+
+			led_info: led@2 {
+				reg = <2>;
+				label = "orange:info";
+				active-low;
+			};
+
+			led_power: led@3 {
+				reg = <3>;
+				label = "yellow:power";
+				active-low;
+				default-state = "on";
+			};
+		};
+
+		hwmon {
+			compatible = "iei,wt61p803-puzzle-hwmon";
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			chassis_fan_group0: fan-group@0 {
+				#cooling-cells = <2>;
+				reg = <0x00>;
+				cooling-levels = <64 102 170 230 250>;
+			};
+		};
+	};
+};
+
+&ap_thermal_cpu1 {
+	trips {
+		cpu_active: cpu-active {
+			temperature = <44000>;
+			hysteresis = <2000>;
+			type = "active";
+		};
+	};
+	cooling-maps {
+		fan-map {
+			trip = <&cpu_active>;
+			cooling-device = <&chassis_fan_group0 64 THERMAL_NO_LIMIT>;
+		};
+	};
 };
 
 /* on-board eMMC - U9 */