diff options
6 files changed, 244 insertions, 8 deletions
diff --git a/target/linux/ramips/dts/mt7620a_alfa-network_r36m-e4g.dts b/target/linux/ramips/dts/mt7620a_alfa-network_r36m-e4g.dts new file mode 100644 index 0000000000..ce839f72f1 --- /dev/null +++ b/target/linux/ramips/dts/mt7620a_alfa-network_r36m-e4g.dts @@ -0,0 +1,218 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "mt7620a.dtsi" + +#include <dt-bindings/gpio/gpio.h> +#include <dt-bindings/input/input.h> + +/ { + compatible = "alfa-network,r36m-e4g", "ralink,mt7620a-soc"; + model = "ALFA Network R36M-E4G"; + + aliases { + label-mac-device = &wmac; + 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 = <KEY_RESTART>; + }; + + rfkill { + label = "rfkill"; + gpios = <&gpio1 7 GPIO_ACTIVE_LOW>; + linux,code = <KEY_RFKILL>; + }; + }; + + 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 d3de3074b2..8aea7f05f1 100644 --- a/target/linux/ramips/image/mt7620.mk +++ b/target/linux/ramips/image/mt7620.mk @@ -35,6 +35,15 @@ define Device/alfa-network_ac1200rm endef TARGET_DEVICES += alfa-network_ac1200rm +define Device/alfa-network_r36m-e4g + MTK_SOC := mt7620a + IMAGE_SIZE := 16064k + DEVICE_VENDOR := ALFA Network + DEVICE_MODEL := 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 MTK_SOC := mt7620a IMAGE_SIZE := 16064k diff --git a/target/linux/ramips/mt7620/base-files/etc/board.d/01_leds b/target/linux/ramips/mt7620/base-files/etc/board.d/01_leds index 59f0fe8dab..d88fdfb043 100755 --- a/target/linux/ramips/mt7620/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/mt7620/base-files/etc/board.d/01_leds @@ -24,6 +24,11 @@ aigale,ai-br100) alfa-network,ac1200rm) set_wifi_led "$boardname:green:wlan2g" "wlan1" ;; +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/mt7620/base-files/etc/board.d/02_network b/target/linux/ramips/mt7620/base-files/etc/board.d/02_network index 1b51f17485..12820f3a36 100755 --- a/target/linux/ramips/mt7620/base-files/etc/board.d/02_network +++ b/target/linux/ramips/mt7620/base-files/etc/board.d/02_network @@ -32,6 +32,11 @@ ramips_setup_interfaces() ucidef_add_switch "switch0" \ "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0" ;; + alfa-network,r36m-e4g|\ + zbtlink,zbt-we1026-h-32m) + ucidef_add_switch "switch0" \ + "3:lan" "4:wan" "6@eth0" + ;; alfa-network,tube-e4g|\ buffalo,wmr-300|\ dlink,dch-m225|\ @@ -190,10 +195,6 @@ ramips_setup_interfaces() ucidef_add_switch "switch0" \ "0:lan" "6t@eth0" ;; - zbtlink,zbt-we1026-h-32m) - ucidef_add_switch "switch0" \ - "3:lan" "4:wan" "6@eth0" - ;; zbtlink,zbt-we2026) ucidef_add_switch "switch0" \ "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan:5" "6@eth0" @@ -259,6 +260,11 @@ ramips_setup_macs() zbtlink,zbt-wr8305rt) wan_mac=$(macaddr_add "$(cat /sys/class/net/eth0/address)" 1) ;; + alfa-network,r36m-e4g|\ + zbtlink,zbt-we1026-h-32m) + wan_mac=$(mtd_get_mac_binary factory 0x2e) + label_mac=$(mtd_get_mac_binary factory 0x4) + ;; dlink,dch-m225) lan_mac=$(mtd_get_mac_ascii factory lanmac) ;; @@ -314,10 +320,6 @@ ramips_setup_macs() zbtlink,zbt-we1026-5g-16m) label_mac=$(mtd_get_mac_binary factory 0x4) ;; - zbtlink,zbt-we1026-h-32m) - wan_mac=$(mtd_get_mac_binary factory 0x2e) - label_mac=$(mtd_get_mac_binary factory 0x4) - ;; zyxel,keenetic-omni|\ zyxel,keenetic-omni-ii|\ zyxel,keenetic-viva) diff --git a/target/linux/ramips/mt7620/base-files/etc/init.d/bootcount b/target/linux/ramips/mt7620/base-files/etc/init.d/bootcount index c7b6919926..06316e48ca 100755 --- a/target/linux/ramips/mt7620/base-files/etc/init.d/bootcount +++ b/target/linux/ramips/mt7620/base-files/etc/init.d/bootcount @@ -5,6 +5,7 @@ START=99 boot() { case $(board_name) in alfa-network,ac1200rm|\ + 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/mt7620/base-files/lib/upgrade/platform.sh b/target/linux/ramips/mt7620/base-files/lib/upgrade/platform.sh index aad243c1f9..9f71dc918e 100755 --- a/target/linux/ramips/mt7620/base-files/lib/upgrade/platform.sh +++ b/target/linux/ramips/mt7620/base-files/lib/upgrade/platform.sh @@ -17,6 +17,7 @@ platform_do_upgrade() { case "$board" in alfa-network,ac1200rm|\ + alfa-network,r36m-e4g|\ alfa-network,tube-e4g) [ "$(fw_printenv -n dual_image 2>/dev/null)" = "1" ] &&\ [ -n "$(find_mtd_part backup)" ] && { |