ath79: add support for Teltonika RUT955 H7V3C0
[openwrt/staging/wigyori.git] / target / linux / ath79 / dts / ar9344_teltonika_rut955-h7v3c0.dts
diff --git a/target/linux/ath79/dts/ar9344_teltonika_rut955-h7v3c0.dts b/target/linux/ath79/dts/ar9344_teltonika_rut955-h7v3c0.dts
new file mode 100644 (file)
index 0000000..426c6ac
--- /dev/null
@@ -0,0 +1,197 @@
+// 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>;
+}
+
+&eth0 {
+       status = "okay";
+
+       phy-handle = <&swphy4>;
+
+       mtd-mac-address = <&config 0x0>;
+       mtd-mac-address-increment = <1>;
+};
+
+&eth1 {
+       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>;
+       };
+};