--- /dev/null
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "ar9344_teltonika_rut9xx.dtsi"
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+ model = "Teltonika RUT955 H7V3C0";
+ compatible = "teltonika,rut955-h7v3c0", "teltonika,rut9xx", "qca,ar9344";
+
+ aliases {
+ led-boot = &led_system_green;
+ led-failsafe = &led_system_red;
+ led-running = &led_system_green;
+ led-upgrade = &led_system_red;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ signal0 {
+ label = "rut955:green:signal0";
+ gpios = <&gpio_ext 0 GPIO_ACTIVE_HIGH>;
+ };
+
+ signal1 {
+ label = "rut955:green:signal1";
+ gpios = <&gpio_ext 1 GPIO_ACTIVE_HIGH>;
+ };
+
+ signal2 {
+ label = "rut955:green:signal2";
+ gpios = <&gpio_ext 2 GPIO_ACTIVE_HIGH>;
+ };
+
+ signal3 {
+ label = "rut955:green:signal3";
+ gpios = <&gpio_ext 3 GPIO_ACTIVE_HIGH>;
+ };
+
+ signal4 {
+ label = "rut955:green:signal4";
+ gpios = <&gpio_ext 4 GPIO_ACTIVE_HIGH>;
+ };
+
+ led_system_red: system_red {
+ label = "rut955:red:system";
+ gpios = <&gpio_ext 5 GPIO_ACTIVE_HIGH>;
+ };
+
+ led_system_green: system_green {
+ label = "rut955:green:system";
+ gpios = <&gpio_ext 6 GPIO_ACTIVE_HIGH>;
+ default-state = "on";
+ };
+ };
+};
+
+&gpio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&jtag_disable_pins>;
+
+ gpio-line-names = "RS485_D", "led_wan", "wmac_lna", "mmc_cs",
+ "EXT_INT", "", "", "",
+ "", "", "", "",
+ "", "led_lan2", "led_lan1", "",
+ "i2c_scl", "i2c_sda", "", "",
+ "", "", "led_lan3", "",
+ "", "", "", "",
+ "", "", "", "";
+
+ ext_lna {
+ gpio-hog;
+ gpios = <2 GPIO_ACTIVE_HIGH>;
+ output-high;
+ line-name = "rut955:wmac:ext_lna";
+ };
+
+ mmc_cs {
+ gpio-hog;
+ gpios = <3 GPIO_ACTIVE_HIGH>;
+ output-high;
+ line-name = "rut955:mmc:cs";
+ };
+
+ ext_int {
+ gpio-hog;
+ gpios = <4 GPIO_ACTIVE_LOW>;
+ input;
+ line-name = "rut955:ext:int";
+ };
+
+ uart1_td {
+ gpio-hog;
+ gpios = <18 GPIO_ACTIVE_HIGH>;
+ output-high;
+ line-name = "rut955:uart1:td";
+ };
+
+ uart1_rd {
+ gpio-hog;
+ gpios = <11 GPIO_ACTIVE_LOW>;
+ input;
+ line-name = "rut955:uart1:rd";
+ };
+
+ led_wan {
+ gpio-hog;
+ gpios = <1 GPIO_ACTIVE_HIGH>;
+ output-high;
+ line-name = "rut955:led:wan";
+ };
+
+ led_lan2 {
+ gpio-hog;
+ gpios = <13 GPIO_ACTIVE_HIGH>;
+ output-high;
+ line-name = "rut955:led:lan2";
+ };
+
+ led_lan1 {
+ gpio-hog;
+ gpios = <14 GPIO_ACTIVE_HIGH>;
+ output-high;
+ line-name = "rut955:led:lan1";
+ };
+
+ led_lan3 {
+ gpio-hog;
+ gpios = <22 GPIO_ACTIVE_HIGH>;
+ output-high;
+ line-name = "rut955:led:lan3";
+ };
+};
+
+&i2c0 {
+ gpio_ext: gpio_ext@74 {
+ status = "okay";
+
+ compatible = "nxp,pca9539";
+ reg = <0x74>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+
+ reset-gpios = <&gpio 21 GPIO_ACTIVE_HIGH>;
+
+ interrupt-parent = <&gpio>;
+ interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ gpio-line-names = "signal_bar0", "signal_bar1", "signal_bar2", "signal_bar3",
+ "signal_bar4", "status_red", "status_green", "sim_sel",
+ "DOUT1", "DOUT2", "DIN2", "DIN1",
+ "MON", "MRST", "SDCD", "RS485_R";
+ };
+};
+
+&hs_uart {
+ dtr-gpios = <&gpio_ext 15 GPIO_ACTIVE_HIGH>;
+}
+
+ð0 {
+ status = "okay";
+
+ phy-handle = <&swphy4>;
+
+ mtd-mac-address = <&config 0x0>;
+ mtd-mac-address-increment = <1>;
+};
+
+ð1 {
+ status = "okay";
+
+ mtd-mac-address = <&config 0x0>;
+};
+
+&builtin_switch {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pmx_leds_switch>;
+};
+
+&wmac {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pmx_ext_lna>;
+};
+
+&pinmux {
+ pmx_ext_lna: ext_lna {
+ // EXT_LNA0 on GPIO 2
+ pinctrl-single,bits = <0x0 0x002e0000 0x00ff0000>;
+ };
+};