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 + +/ { + 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>; + }; +}; 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