From 869376710d70b1e2c9f5265bc8840738794bb280 Mon Sep 17 00:00:00 2001 From: Kristian Evensen Date: Thu, 16 May 2019 15:38:00 +0200 Subject: [PATCH] ramips: Add support for ZBT WE826-E ZBT WE826-E is a dual-SIM version of the ZBT WE826. The router has the following specifications: - MT7620A (580 MHz) - 128MB RAM - 32MB of flash (SPI NOR) - 5x 10/100Mbps Ethernet (MT7620A built-in switch) - 1x microSD slot - 1x miniPCIe slot (only USB2.0 bus) - 2x SIM card slots (standard size) - 1x USB2.0 port - 1x 2.4GHz wifi (rt2800) - 10x LEDs (4 GPIO-controlled) - 1x reset button The following have been tested and working: - Ethernet switch - wifi - miniPCIe slot - USB port - microSD slot - sysupgrade - reset button Installation and recovery: In order to install OpenWRT the first time or recover the router, you can use the web-based recovery system. Keep the reset button pressed during boot and access 192.168.1.1 in your browser when your machine obtains an IP address. Upload the firmware to start the recovery process. How to swap SIMs: You control which SIM slot to use by writing 0/1 to /sys/class/gpio/gpio13/value. In order for the change to take effect, you can either use AT-commands (AT+CFUN) or power-cycle the modem (write 0/1 to /sys/class/gpio/gpio14/value). Signed-off-by: Kristian Evensen --- .../ramips/base-files/etc/board.d/01_leds | 3 +- .../ramips/base-files/etc/board.d/02_network | 1 + .../base-files/etc/board.d/03_gpio_switches | 4 + target/linux/ramips/dts/ZBT-WE826-E.dts | 84 +++++++++++++++++++ target/linux/ramips/image/mt7620.mk | 9 ++ 5 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 target/linux/ramips/dts/ZBT-WE826-E.dts 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 9d42720c600..b55ca0413eb 100755 --- a/target/linux/ramips/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/base-files/etc/board.d/01_leds @@ -252,7 +252,8 @@ mr200) mtc,wr1201) ucidef_set_led_switch "eth_link" "LAN link" "$boardname:green:eth_link" "switch0" "0x0f" ;; -mzk-ex750np) +mzk-ex750np|\ +zbtlink,zbt-we826-e) set_wifi_led "$boardname:red:wifi" ;; netgear,r6120) 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 b0037a0ce21..2e56678cf5f 100755 --- a/target/linux/ramips/base-files/etc/board.d/02_network +++ b/target/linux/ramips/base-files/etc/board.d/02_network @@ -133,6 +133,7 @@ ramips_setup_interfaces() youku,yk-l2|\ zbt-ape522ii|\ zbt-we1326|\ + zbtlink,zbt-we826-e|\ zbtlink,zbt-we3526|\ zbt-we826-16M|\ zbt-we826-32M|\ diff --git a/target/linux/ramips/base-files/etc/board.d/03_gpio_switches b/target/linux/ramips/base-files/etc/board.d/03_gpio_switches index fc376a4d1fa..8abe107a7c7 100755 --- a/target/linux/ramips/base-files/etc/board.d/03_gpio_switches +++ b/target/linux/ramips/base-files/etc/board.d/03_gpio_switches @@ -32,6 +32,10 @@ ubnt-erx-sfp) ucidef_add_gpio_switch "poe_power_port3" "PoE Power Port3" "499" ucidef_add_gpio_switch "poe_power_port4" "PoE Power Port4" "500" ;; +zbtlink,zbt-we826-e) + ucidef_add_gpio_switch "sim_switch" "SIM slot switch" "13" + ucidef_add_gpio_switch "power_mpcie" "mPCIe power" "14" "1" + ;; esac board_config_flush diff --git a/target/linux/ramips/dts/ZBT-WE826-E.dts b/target/linux/ramips/dts/ZBT-WE826-E.dts new file mode 100644 index 00000000000..ce97b037153 --- /dev/null +++ b/target/linux/ramips/dts/ZBT-WE826-E.dts @@ -0,0 +1,84 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "ZBT-WE826.dtsi" + +/ { + compatible = "zbtlink,zbt-we826-e", "zbtlink,zbt-we826", "ralink,mt7620a-soc"; + model = "ZBT-WE826-E"; + + /delete-node/ leds; + + leds { + compatible = "gpio-leds"; + + led_power: gsm { + label = "zbt-we826-e:blue:gsm"; + gpios = <&gpio0 9 GPIO_ACTIVE_LOW>; + }; + + signal { + label = "zbt-we826-e:green:signal"; + gpios = <&gpio0 11 GPIO_ACTIVE_LOW>; + }; + + sim { + label = "zbt-we826-e:red:sim"; + gpios = <&gpio0 12 GPIO_ACTIVE_LOW>; + }; + + air { + label = "zbt-we826-e:red:wifi"; + gpios = <&gpio3 0 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&spi0 { + status = "okay"; + + flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <10000000>; + + 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 0x10000>; + read-only; + }; + + factory: partition@40000 { + label = "factory"; + reg = <0x40000 0x10000>; + read-only; + }; + + firmware: partition@50000 { + compatible = "denx,uimage"; + label = "firmware"; + reg = <0x50000 0x1fb0000>; + }; + }; + }; +}; + +&pinctrl { + state_default: pinctrl0 { + default { + ralink,group = "i2c", "uartf", "wled"; + ralink,function = "gpio"; + }; + }; +}; diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk index bad92ca0b9e..cf38aa2cb1b 100644 --- a/target/linux/ramips/image/mt7620.mk +++ b/target/linux/ramips/image/mt7620.mk @@ -818,6 +818,15 @@ define Device/zbt-we826-32M endef TARGET_DEVICES += zbt-we826-32M +define Device/zbtlink_zbt-we826-e + DTS := ZBT-WE826-E + IMAGE_SIZE := 32448k + DEVICE_TITLE := Zbtlink ZBT-WE826-E + DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci kmod-sdhci-mt7620 uqmi \ + kmod-usb-serial kmod-usb-serial-option +endef +TARGET_DEVICES += zbtlink_zbt-we826-e + define Device/zbt-wr8305rt DTS := ZBT-WR8305RT DEVICE_TITLE := Zbtlink ZBT-WR8305RT