ramips: add support for ALFA Network R36M-E4G
ALFA Network R36M-E4G is a dual-SIM, N300 Wi-Fi, compact size platform based on MediaTek MT7620A WiSoC. This product is designed for operation with 4G modem (can be bought in bundle with Quectel EC25, EG25 or EP06) but supports also Wi-Fi modules (miniPCIe slot has USB and PCIe buses). Specification: - MT7620A (580 MHz) - 64/128/256 MB of RAM (DDR2) - 16/32+ MB of FLASH (SPI NOR) - 2x 10/100 Mbps Ethernet, with passive PoE support (24 V) - 2T2R 2.4 GHz (MT7620A), with ext. LNA (RFFM4227) - 1x miniPCIe slot (with PCIe and USB 2.0 buses and optional 5 V) - 2x SIM slot (mini, micro) with detect and switch driven by GPIO - 2x u.fl antenna connectors (for Wi-Fi) - 8x LED (7 driven by GPIO) - 2x button (reset, wifi) - 2x UART (4-pin/2.54 mm pitch, 10-pin/1.27 mm pitch) headers on PCB - 1x I2C (4-pin, 1.27 mm pitch) header on PCB - 1x LED (8-pin, 1.27 mm pitch) header on PCB - 1x DC jack with lock (12 V) Other: - there is a dedicated, 4-pin connector for optional RTC module (Holtek HT138x) with 'enable' input, not available at the time of preparing support for this board - miniPCIe slot supports additional 5 V supply on pins 47 and 49 but a jumper resistor (R174) is not installed by default - U-Boot selects default SIM slot, based on value of 'default_sim' env variable: '1' or unset -> SIM1 (mini), '2' -> SIM2 (micro). This will work only if both slots are occupied, otherwise U-Boot will always select slot with SIM card inside (user can override it later, in user-space) - U-Boot resets the modem, using PERSTn signal, before starting kernel - this board supports 'dual image' feature (controlled by 'dual_image' U-Boot environment variable) Flash instruction: You can use the 'sysupgrade' image directly in vendor firmware which is based on OpenWrt (make sure to not preserve settings - use 'sysupgrade -n -F ...' command). Alternatively, use web recovery mode in U-Boot: 1. Power the device with reset button pressed, the modem LED will start blinking slowly and after ~3 seconds, when it starts blinking faster, you can release the button. 2. Setup static IP 192.168.1.2/24 on your PC. 3. Go to 192.168.1.1 in browser and upload 'sysupgrade' image. Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
This commit is contained in:
parent
bc173ddd83
commit
dfecf94c20
218
target/linux/ramips/dts/mt7620a_alfa-network_r36m-e4g.dts
Normal file
218
target/linux/ramips/dts/mt7620a_alfa-network_r36m-e4g.dts
Normal file
@ -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>;
|
||||
};
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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)
|
||||
|
@ -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 -
|
||||
|
@ -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)" ] && {
|
||||
|
Loading…
Reference in New Issue
Block a user