ath79: add support for GL.iNet GL-USB150
authorChen Minqiang <ptpt52@gmail.com>
Tue, 24 Nov 2020 17:53:39 +0000 (01:53 +0800)
committerPetr Štetiar <ynezz@true.cz>
Tue, 22 Dec 2020 18:11:50 +0000 (19:11 +0100)
Add support for the ar71xx supported GL.iNet GL-USB150 to ath79.

GL.iNet GL-USB150 is an USB dongle WiFi router, based on Atheros AR9331.

Specification:

- 400/400/200 MHz (CPU/DDR/AHB)
- 64 MB of RAM (DDR2)
- 16 MB of FLASH (SPI NOR)
- Realtek RTL8152B USB to Ethernet bridge (connected with AR9331 PHY4)
- 1T1R 2.4 GHz
- 2x LED, 1x button
- UART header on PCB

Flash instruction:

Vendor software is based on openwrt so you can flash the sysupgrade
image via the vendor GUI or using command line sysupgrade utility.
Make sure to not save configuration over reflash as uci settings
differ between versions.

Signed-off-by: Chen Minqiang <ptpt52@gmail.com>
target/linux/ath79/dts/ar9331_glinet_gl-usb150.dts [new file with mode: 0644]
target/linux/ath79/generic/base-files/etc/board.d/02_network
target/linux/ath79/image/generic.mk

diff --git a/target/linux/ath79/dts/ar9331_glinet_gl-usb150.dts b/target/linux/ath79/dts/ar9331_glinet_gl-usb150.dts
new file mode 100644 (file)
index 0000000..c75684b
--- /dev/null
@@ -0,0 +1,120 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "ar9331.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+       compatible = "glinet,gl-usb150", "qca,ar9331";
+       model = "GL.iNet GL-USB150";
+
+       aliases {
+               serial0 = &uart;
+               led-boot = &led_power;
+               led-failsafe = &led_power;
+               led-running = &led_power;
+               led-upgrade = &led_power;
+               label-mac-device = &eth0;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               wlan {
+                       label = "green:wlan";
+                       gpios = <&gpio 0 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "phy0tpt";
+               };
+
+               led_power: power {
+                       label = "green:power";
+                       gpios = <&gpio 13 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
+               };
+       };
+
+       keys {
+               compatible = "gpio-keys";
+
+               reset {
+                       label = "reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
+                       debounce-interval = <60>;
+               };
+       };
+
+       gpio-export {
+               compatible = "gpio-export";
+
+               gpio_lan_reset {
+                       gpio-export,name = "lan:reset";
+                       gpio-export,output = <0>;
+                       gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&eth0 {
+       status = "okay";
+
+       mtd-mac-address = <&art 0x0>;
+
+       gmac-config {
+               device = <&gmac>;
+               switch-phy-addr-swap = <0>;
+               switch-phy-swap = <0>;
+       };
+};
+
+&eth1 {
+       status = "okay";
+
+       compatible = "syscon", "simple-mfd";
+};
+
+&spi {
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               spi-max-frequency = <33000000>;
+               reg = <0>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "u-boot";
+                               reg = <0x000000 0x040000>;
+                               read-only;
+                       };
+
+                       partition@40000 {
+                               label = "u-boot-env";
+                               reg = <0x040000 0x010000>;
+                       };
+
+                       partition@50000 {
+                               compatible = "denx,uimage";
+                               label = "firmware";
+                               reg = <0x050000 0xfa0000>;
+                       };
+
+                       art: partition@ff0000 {
+                               label = "art";
+                               reg = <0xff0000 0x010000>;
+                               read-only;
+                       };
+               };
+       };
+};
+
+&wmac {
+       status = "okay";
+
+       mtd-cal-data = <&art 0x1000>;
+};
index e42d8898476db32f1f6e31c908328689a32be6ae..e3e0547ee7e7183d534c93ea10dda12c7d24adbb 100755 (executable)
@@ -33,6 +33,7 @@ ath79_setup_interfaces()
        engenius,ecb1750|\
        enterasys,ws-ap3705i|\
        glinet,gl-ar300m-lite|\
        engenius,ecb1750|\
        enterasys,ws-ap3705i|\
        glinet,gl-ar300m-lite|\
+       glinet,gl-usb150|\
        hak5,wifi-pineapple-nano|\
        meraki,mr16|\
        netgear,ex6400|\
        hak5,wifi-pineapple-nano|\
        meraki,mr16|\
        netgear,ex6400|\
index e44e780e8c2527a5e09d5cada46713098b9b1ef5..661d4203edbe3067a70613a409b5186ca73bf2de 100644 (file)
@@ -1111,6 +1111,15 @@ define Device/glinet_gl-mifi
 endef
 TARGET_DEVICES += glinet_gl-mifi
 
 endef
 TARGET_DEVICES += glinet_gl-mifi
 
+define Device/glinet_gl-usb150
+  SOC := ar9331
+  DEVICE_VENDOR := GL.iNET
+  DEVICE_MODEL := GL-USB150
+  IMAGE_SIZE := 16000k
+  SUPPORTED_DEVICES += gl-usb150
+endef
+TARGET_DEVICES += glinet_gl-usb150
+
 define Device/glinet_gl-x750
   SOC := qca9531
   DEVICE_VENDOR := GL.iNet
 define Device/glinet_gl-x750
   SOC := qca9531
   DEVICE_VENDOR := GL.iNet