aboutsummaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
Diffstat (limited to 'target')
-rw-r--r--target/linux/ath79/dts/ar9344_teltonika_rut955-h7v3c0.dts197
-rwxr-xr-xtarget/linux/ath79/generic/base-files/etc/board.d/02_network3
-rwxr-xr-xtarget/linux/ath79/generic/base-files/etc/board.d/03_gpio_switches8
-rw-r--r--target/linux/ath79/generic/config-default6
-rw-r--r--target/linux/ath79/image/generic.mk6
5 files changed, 219 insertions, 1 deletions
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
index 0000000000..426c6ac179
--- /dev/null
+++ b/target/linux/ath79/dts/ar9344_teltonika_rut955-h7v3c0.dts
@@ -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>;
+ };
+};
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/02_network b/target/linux/ath79/generic/base-files/etc/board.d/02_network
index d7f7eed829..9768e4e076 100755
--- a/target/linux/ath79/generic/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/generic/base-files/etc/board.d/02_network
@@ -228,7 +228,8 @@ ath79_setup_interfaces()
ucidef_add_switch "switch0" \
"0@eth0" "1:lan" "2:lan" "3:wan"
;;
- teltonika,rut955)
+ teltonika,rut955|\
+ teltonika,rut955-h7v3c0)
ucidef_set_interface_wan "eth1"
ucidef_add_switch "switch0" \
"0@eth0" "2:lan:3" "3:lan:2" "4:lan:1"
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/03_gpio_switches b/target/linux/ath79/generic/base-files/etc/board.d/03_gpio_switches
index 051c468f87..66b2a3e1d8 100755
--- a/target/linux/ath79/generic/base-files/etc/board.d/03_gpio_switches
+++ b/target/linux/ath79/generic/base-files/etc/board.d/03_gpio_switches
@@ -50,6 +50,14 @@ teltonika,rut955)
ucidef_add_gpio_switch "modem_rst" "Modem reset" "507" "0"
ucidef_add_gpio_switch "DOUT3" "DOUT3" "508" "0"
;;
+teltonika,rut955-h7v3c0)
+ ucidef_add_gpio_switch "sim_sel" "SIM select" "503" "1"
+ ucidef_add_gpio_switch "DOUT1" "DOUT1 (OC)" "504" "0"
+ ucidef_add_gpio_switch "DOUT2" "DOUT2 (Relay)" "505" "0"
+ ucidef_add_gpio_switch "modem_vbus" "Modem enable" "508" "1"
+ ucidef_add_gpio_switch "modem_rst" "Modem reset" "509" "0"
+ ;;
+
tplink,archer-c25-v1)
ucidef_add_gpio_switch "led_control" "LED control" "21" "0"
ucidef_add_gpio_switch "led_reset" "LED reset" "19" "1"
diff --git a/target/linux/ath79/generic/config-default b/target/linux/ath79/generic/config-default
index 5459bafd7d..d49df6bbee 100644
--- a/target/linux/ath79/generic/config-default
+++ b/target/linux/ath79/generic/config-default
@@ -1,8 +1,14 @@
CONFIG_AT803X_PHY=y
CONFIG_BCM_NET_PHYLIB=y
CONFIG_BROADCOM_PHY=y
+CONFIG_GPIO_PCA953X=y
+CONFIG_GPIO_PCA953X_IRQ=y
CONFIG_GPIO_WATCHDOG=y
CONFIG_GPIO_WATCHDOG_ARCH_INITCALL=y
+CONFIG_I2C=y
+CONFIG_I2C_ALGOBIT=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_GPIO=y
CONFIG_INTEL_XWAY_PHY=y
CONFIG_IP17XX_PHY=y
CONFIG_LEDS_RESET=y
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index 321615f014..8d8767ddf6 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -1158,6 +1158,12 @@ define Device/teltonika_rut955
endef
TARGET_DEVICES += teltonika_rut955
+define Device/teltonika_rut955-h7v3c0
+ $(Device/teltonika_rut955)
+ DEVICE_VARIANT := H7V3C0
+endef
+TARGET_DEVICES += teltonika_rut955-h7v3c0
+
define Device/trendnet_tew-823dru
SOC := qca9558
DEVICE_VENDOR := Trendnet