ath79: add support for GL.iNet GL-AR750S
authorChristoph Krapp <achterin@googlemail.com>
Sun, 30 Dec 2018 16:36:22 +0000 (16:36 +0000)
committerMathias Kresin <dev@kresin.me>
Mon, 31 Dec 2018 12:28:20 +0000 (13:28 +0100)
Right now this patch adds nor image generation only. NAND image
generation is not supportet at the moment.

Furtheremore support for the MicroSD port is not implemented as of now.

Specification:
- SOC: QCA9563 (775MHz)
- Flash: 16 MiB (W25Q128FVSG)
- RAM: 128 MiB DDR2
- Ethernet: 2x 1Gbps LAN + 1x 1Gbps WAN
- Wireless: 2.4GHz (bgn) and 5GHz (ac)
- USB: 1x USB 2.0 port
- Button: 1x switch button, 1x reset button
- LED: 3x LEDS (green)
  - Another LED can be accessed on GPIO 7 if soldered

Flash instruction:
- Set static ip to 192.168.1.2
- Unplug the power cord
- Hold reset button
- Plug power back in
- Right led will flash 5 times
- Release reset button
- Browse to 192.168.1.1
- Choose sysupgrade image in NOR-flash section
- Press "update nor firmware"
- After successful transfer unplug network cable before device restarts

Signed-off-by: Christoph Krapp <achterin@googlemail.com>
[resolve merge conflicts, rename buttons, use switch input type for mode
switch]
Signed-off-by: Mathias Kresin <dev@kresin.me>
target/linux/ath79/base-files/etc/board.d/02_network
target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
target/linux/ath79/dts/qca9563_glinet_ar750s.dts [new file with mode: 0644]
target/linux/ath79/image/generic.mk

index 1251048e0828c7c7984ca90b9a3bb6a3ca8ee4ab..cd786c2b794571a8277609684408583412f28583 100755 (executable)
@@ -93,6 +93,10 @@ ath79_setup_interfaces()
        glinet,gl-x750)
                ucidef_set_interfaces_lan_wan "eth1" "eth0"
                ;;
+       glinet,ar750s)
+               ucidef_add_switch "switch0" \
+                       "0@eth0" "2:lan:2" "3:lan:1" "1:wan"
+               ;;
        nec,wg800hp)
                ucidef_add_switch "switch0" \
                        "0@eth0" "2:lan" "3:lan" "4:lan" "1:wan"
index b9a987d4181f50a4650871a53534f2f58f7b58ad..990c40c9343050d8cddde06ecedb134d3366a9b0 100644 (file)
@@ -96,6 +96,11 @@ case "$FIRMWARE" in
                ath10kcal_extract "art" 20480 2116
                ath10kcal_patch_mac $(mtd_get_mac_ascii devdata "wlan5mac")
                ;;
+       glinet,ar750s|\
+       tplink,re450-v2)
+               ath10kcal_extract "art" 20480 2116
+               ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +1)
+               ;;
        glinet,gl-x750)
                ath10kcal_extract "art" 20480 2116
                ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +1)
@@ -126,10 +131,6 @@ case "$FIRMWARE" in
                ath10kcal_extract "art" 20480 2116
                ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) -1)
                ;;
-       tplink,re450-v2)
-               ath10kcal_extract "art" 20480 2116
-               ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +1)
-               ;;
        ubnt,unifiac-lite|\
        ubnt,unifiac-mesh|\
        ubnt,unifiac-mesh-pro|\
diff --git a/target/linux/ath79/dts/qca9563_glinet_ar750s.dts b/target/linux/ath79/dts/qca9563_glinet_ar750s.dts
new file mode 100644 (file)
index 0000000..ab33bc1
--- /dev/null
@@ -0,0 +1,154 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "qca956x.dtsi"
+
+/ {
+       compatible = "glinet,ar750s", "qca,qca9563";
+       model = "GL.iNet GL-AR750S";
+
+       chosen {
+               bootargs = "console=ttyS0,115200n8";
+       };
+
+       aliases {
+               led-boot = &power;
+               led-failsafe = &power;
+               led-running = &power;
+               led-upgrade = &power;
+       };
+
+       keys {
+               compatible = "gpio-keys-polled";
+               poll-interval = <20>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&jtag_disable_pins>;
+
+               reset {
+                       label = "reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+               };
+
+               mode {
+                       label = "mode";
+                       linux,code = <BTN_0>;
+                       linux,input-type = <EV_SW>;
+                       gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               power: power {
+                       label = "gl-ar750s:green:power";
+                       gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+                       default-state = "keep";
+               };
+
+               wlan2g {
+                       label = "gl-ar750s:green:wlan2g";
+                       gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "phy1tpt";
+               };
+
+               wlan5g {
+                       label = "gl-ar750s:green:wlan5g";
+                       gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "phy0tpt";
+               };
+       };
+};
+
+&spi {
+       status = "okay";
+       num-cs = <0>;
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <25000000>;
+
+               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>;
+                       };
+
+                       art: partition@50000 {
+                               label = "art";
+                               reg = <0x050000 0x010000>;
+                       };
+
+                       partition@60000 {
+                               compatible = "denx,uimage";
+                               label = "firmware";
+                               reg = <0x060000 0xfa0000>;
+                       };
+               };
+       };
+};
+
+&pcie {
+       status = "okay";
+};
+
+&uart {
+       status = "okay";
+};
+
+&usb0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       hub_port: port@1 {
+               reg = <1>;
+               #trigger-source-cells = <0>;
+       };
+};
+
+&usb_phy0 {
+       status = "okay";
+};
+
+&mdio0 {
+       status = "okay";
+       phy-mask = <0>;
+
+       phy0: ethernet-phy@0 {
+               reg = <0>;
+               phy-mode = "sgmii";
+               qca,ar8327-initvals = <
+                       0x04 0x00080080 /* PORT0 PAD MODE CTRL */
+                       0x7c 0x0000007e /* PORT0_STATUS */
+               >;
+       };
+};
+
+&eth0 {
+       status = "okay";
+
+       mtd-mac-address = <&art 0x0>;
+       phy-handle = <&phy0>;
+};
+
+&wmac {
+       status = "okay";
+       mtd-cal-data = <&art 0x1000>;
+       mtd-mac-address = <&art 0x1002>;
+};
index 8dd5dab7caebe71cc79e93fb9f0256fd561c45c7..2f9b2c9d7ecfc28f4fefd517cac1183277de9ad0 100644 (file)
@@ -266,6 +266,15 @@ define Device/glinet_ar300m-nor
 endef
 TARGET_DEVICES += glinet_ar300m-nor
 
+define Device/glinet_ar750s
+  ATH_SOC := qca9563
+  DEVICE_TITLE := GL.iNet GL-AR750S
+  DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct
+  IMAGE_SIZE := 16000k
+  SUPPORTED_DEVICES += gl-ar750s
+endef
+TARGET_DEVICES += glinet_ar750s
+
 define Device/glinet_gl-x750
   ATH_SOC := qca9531
   DEVICE_TITLE := GL.iNet GL-X750