diff --git a/target/linux/ramips/base-files/etc/board.d/01_leds b/target/linux/ramips/base-files/etc/board.d/01_leds index f5e914c518..83cb88ad5c 100755 --- a/target/linux/ramips/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/base-files/etc/board.d/01_leds @@ -38,6 +38,11 @@ alfa-network,awusfree1|\ edimax,br-6478ac-v2) set_wifi_led "$boardname:blue:wlan" ;; +alfa-network,r36m-e4g) + ucidef_set_led_netdev "4g" "4g" "$boardname:orange:4g" "wwan0" + ucidef_set_led_switch "lan" "lan" "$boardname:green:lan" "switch0" "0x8" + ucidef_set_led_switch "wan" "wan" "$boardname:green:wan" "switch0" "0x10" + ;; alfa-network,tube-e4g) ucidef_set_led_netdev "4g" "4g" "$boardname:green:4g" "wwan0" ucidef_set_led_netdev "lan" "lan" "$boardname:blue:lan" "eth0" diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network index 9569232784..f91a8248e5 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -171,6 +171,11 @@ ramips_setup_interfaces() wrh-300cr) ucidef_set_interface_lan "eth0" ;; + alfa-network,r36m-e4g|\ + wcr-1166ds) + ucidef_add_switch "switch0" \ + "3:lan" "4:wan" "6@eth0" + ;; dlink,dwr-118-a1) ucidef_add_switch "switch0" \ "1:lan:2" "2:lan:3" "3:lan:1" "4:lan:0" "5:wan" "6@eth0" @@ -425,10 +430,6 @@ ramips_setup_interfaces() ucidef_add_switch "switch0" \ "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5@eth0" ;; - wcr-1166ds) - ucidef_add_switch "switch0" \ - "3:lan" "4:wan" "6@eth0" - ;; wcr-150gn|\ we1026-5g-16m) ucidef_add_switch "switch0" \ @@ -500,6 +501,7 @@ ramips_setup_macs() lan_mac=$(mtd_get_mac_binary factory 57344) wan_mac=$(mtd_get_mac_binary factory 57350) ;; + alfa-network,r36m-e4g|\ carambola|\ freestation5|\ w502u|\ diff --git a/target/linux/ramips/base-files/etc/init.d/bootcount b/target/linux/ramips/base-files/etc/init.d/bootcount index 12326de0e3..251d8ddf65 100755 --- a/target/linux/ramips/base-files/etc/init.d/bootcount +++ b/target/linux/ramips/base-files/etc/init.d/bootcount @@ -8,6 +8,7 @@ start() { case $(board_name) in alfa-network,ac1200rm|\ alfa-network,awusfree1|\ + alfa-network,r36m-e4g|\ alfa-network,tube-e4g) [ -n "$(fw_printenv bootcount bootchanged 2>/dev/null)" ] &&\ echo -e "bootcount\nbootchanged\n" | /usr/sbin/fw_setenv -s - diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh index eff2ba967c..b2214e0113 100755 --- a/target/linux/ramips/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh @@ -41,6 +41,7 @@ platform_do_upgrade() { case "$board" in alfa-network,ac1200rm|\ alfa-network,awusfree1|\ + alfa-network,r36m-e4g|\ alfa-network,tube-e4g) [ "$(fw_printenv -n dual_image 2>/dev/null)" = "1" ] &&\ [ -n "$(find_mtd_part backup)" ] && { diff --git a/target/linux/ramips/dts/R36M-E4G.dts b/target/linux/ramips/dts/R36M-E4G.dts new file mode 100644 index 0000000000..8d7d512d27 --- /dev/null +++ b/target/linux/ramips/dts/R36M-E4G.dts @@ -0,0 +1,217 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "mt7620a.dtsi" + +#include +#include + +/ { + compatible = "alfa-network,r36m-e4g", "ralink,mt7620a-soc"; + model = "ALFA Network R36M-E4G"; + + aliases { + led-boot = &led_system; + led-failsafe = &led_system; + led-running = &led_system; + led-upgrade = &led_system; + }; + + chosen { + bootargs = "console=ttyS1,115200"; + }; + + gpio-export { + compatible = "gpio-export"; + #size-cells = <0>; + + modem-enable { + gpio-export,name = "modem-enable"; + gpio-export,output = <1>; + gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>; + }; + + modem-rf-enable { + gpio-export,name = "modem-rf-enable"; + gpio-export,output = <1>; + gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>; + }; + + rtc-enable { + gpio-export,name = "rtc-enable"; + gpio-export,output = <1>; + gpio-export,direction_may_change = <1>; + gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; + }; + + sim-select { + gpio-export,name = "sim-select"; + gpio-export,output = <0>; + gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>; + }; + + sim1-detect { + gpio-export,name = "sim1-detect"; + gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>; + }; + + sim2-detect { + gpio-export,name = "sim2-detect"; + gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>; + }; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + rfkill { + label = "rfkill"; + gpios = <&gpio1 7 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + leds { + compatible = "gpio-leds"; + + 4g { + label = "r36m-e4g:orange:4g"; + gpios = <&gpio1 3 GPIO_ACTIVE_LOW>; + }; + + lan { + label = "r36m-e4g:green:lan"; + gpios = <&gpio2 3 GPIO_ACTIVE_LOW>; + }; + + led_system: system { + label = "r36m-e4g:green:system"; + gpios = <&gpio2 0 GPIO_ACTIVE_LOW>; + default-state = "keep"; + }; + + sim1 { + label = "r36m-e4g:green:sim1"; + gpios = <&gpio1 5 GPIO_ACTIVE_LOW>; + default-state = "keep"; + }; + + sim2 { + label = "r36m-e4g:green:sim2"; + gpios = <&gpio2 2 GPIO_ACTIVE_LOW>; + default-state = "keep"; + }; + + wan { + label = "r36m-e4g:green:wan"; + gpios = <&gpio2 4 GPIO_ACTIVE_LOW>; + }; + + wlan { + label = "r36m-e4g:orange:wlan"; + gpios = <&gpio3 0 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy0radio"; + }; + }; +}; + +&ehci { + status = "okay"; +}; + +ðernet { + mtd-mac-address = <&factory 0x28>; +}; + +&gpio1 { + status = "okay"; +}; + +&gpio2 { + status = "okay"; +}; + +&gpio3 { + status = "okay"; +}; + +&gsw { + mediatek,port4 = "ephy"; +}; + +&i2c { + status = "okay"; +}; + +&ohci { + status = "okay"; +}; + +&pinctrl { + state_default: pinctrl0 { + gpio { + ralink,group = "ephy", "pcie", "rgmii1", "wled"; + ralink,function = "gpio"; + }; + }; +}; + +&spi0 { + status = "okay"; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <50000000>; + m25p,fast-read; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x30000>; + read-only; + }; + + partition@30000 { + label = "u-boot-env"; + reg = <0x30000 0x1000>; + }; + + partition@31000 { + label = "config"; + reg = <0x31000 0xf000>; + read-only; + }; + + factory: partition@40000 { + label = "factory"; + reg = <0x40000 0x10000>; + read-only; + }; + + partition@50000 { + compatible = "denx,uimage"; + label = "firmware"; + reg = <0x50000 0xfb0000>; + }; + }; + }; +}; + +&uart { + status = "okay"; +}; + +&wmac { + ralink,mtd-eeprom = <&factory 0>; +}; diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk index dc1fa09fe0..fff10425a7 100644 --- a/target/linux/ramips/image/mt7620.mk +++ b/target/linux/ramips/image/mt7620.mk @@ -51,6 +51,14 @@ define Device/alfa-network_ac1200rm endef TARGET_DEVICES += alfa-network_ac1200rm +define Device/alfa-network_r36m-e4g + DTS := R36M-E4G + IMAGE_SIZE := 16064k + DEVICE_TITLE := ALFA Network R36M-E4G + DEVICE_PACKAGES := kmod-i2c-ralink kmod-usb2 kmod-usb-ohci uboot-envtools uqmi +endef +TARGET_DEVICES += alfa-network_r36m-e4g + define Device/alfa-network_tube-e4g DTS := TUBE-E4G IMAGE_SIZE := 16064k