Skip to content

Commit

Permalink
ath79: add support for I-O DATA WN-AC1600DGR
Browse files Browse the repository at this point in the history
I-O DATA WN-AC1600DGR is a 2.4/5 GHz band 11ac router, based on
Qualcomm Atheros QCA9557.

Specification:

- SoC:      Qualcomm Atheros QCA9557
- RAM:      128 MB
- Flash:    16 MB
- WLAN:     2.4/5 GHz
  - 2.4 GHz: 2T2R (SoC internal)
  - 5 GHz:   3T3R (QCA9880)
- Ethernet: 5x 10/100/1000 Mbps
  - Switch: QCA8337N
- LED/key:  6x/6x(4x buttons, 1x slide switch)
- UART:     through-hole on PCB
  - Vcc, GND, TX, RX from ethernet port side
  - 115200n8

Flash instruction using factory image:

1. Connect the computer to the LAN port of WN-AC1600DGR
2. Connect power cable to WN-AC1600DGR and turn on it
3. Access to "http://192.168.0.1/" and open firmware update page
("ファームウェア")
4. Select the OpenWrt factory image and click update ("更新") button
5. Wait ~150 seconds to complete flashing

Alternative flash instruction using initramfs image:

1. Prepare a computer and TFTP server software with the IP address
"192.168.99.8" and renamed OpenWrt initramfs image
"uImageWN-AC1600DGR"
2. Connect between WN-AC1600DGR and the computer with UART
3. Connect power cable to WN-AC1600DGR, press "4" on the serial
console and enter the U-Boot console
4. execute "tftpboot" command on the console and download initramfs
image from the TFTP server
5. execute "bootm" command and boot OpenWrt
6. On initramfs image, download the sysupgrade image to the device
and perform sysupgrade with it
7. Wait ~150 seconds to complete flashing

This commit also removes unnecessary "qca,no-eeprom" property from
the ath10k wifi node.

Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
  • Loading branch information
musashino205 authored and chunkeey committed Feb 14, 2019
1 parent cc8bd77 commit 93d4439
Show file tree
Hide file tree
Showing 8 changed files with 84 additions and 16 deletions.
2 changes: 2 additions & 0 deletions target/linux/ath79/base-files/etc/board.d/02_network
Expand Up @@ -109,6 +109,7 @@ ath79_setup_interfaces()
;;
iodata,etg3-r|\
iodata,wn-ac1167dgr|\
iodata,wn-ac1600dgr|\
iodata,wn-ac1600dgr2|\
iodata,wn-ag300dgr|\
pcs,cr5000)
Expand Down Expand Up @@ -267,6 +268,7 @@ ath79_setup_macs()
wan_mac=$(macaddr_add "$lan_mac" -1)
;;
iodata,wn-ac1167dgr|\
iodata,wn-ac1600dgr|\
iodata,wn-ac1600dgr2|\
iodata,wn-ag300dgr)
lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
Expand Down
Expand Up @@ -110,6 +110,7 @@ case "$FIRMWARE" in
ath9k_patch_fw_mac $(mtd_get_mac_ascii devdata "wlan24mac") 2
;;
iodata,wn-ac1167dgr|\
iodata,wn-ac1600dgr|\
iodata,wn-ac1600dgr2|\
iodata,wn-ag300dgr)
ath9k_eeprom_extract "art" 4096 1088
Expand Down
Expand Up @@ -19,6 +19,12 @@ case "$board" in
[ "$PHYNBR" -eq 1 ] && \
echo $(macaddr_add "$(mtd_get_mac_ascii u-boot-env ethaddr)" 1) > /sys${DEVPATH}/macaddress
;;
iodata,wn-ac1600dgr)
# There is no eeprom data for 5 GHz wlan in "art" partition
# which would allow to patch the macaddress
[ "$PHYNBR" -eq 0 ] && \
echo $(macaddr_add "$(mtd_get_mac_ascii u-boot-env ethaddr)" 1) > /sys${DEVPATH}/macaddress
;;
phicomm,k2t)
# The K2T factory firmware does use LAN mac address as the 2.4G wifi mac address
[ "$PHYNBR" -eq 1 ] && \
Expand Down
19 changes: 3 additions & 16 deletions target/linux/ath79/dts/qca9557_iodata_wn-ac-dgr.dtsi
Expand Up @@ -18,7 +18,7 @@
bootargs = "console=ttyS0,115200n8";
};

leds {
leds: leds {
compatible = "gpio-leds";

power: power {
Expand All @@ -27,11 +27,6 @@
default-state = "on";
};

copy {
label = "iodata:green:copy";
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
};

eco {
label = "iodata:green:eco";
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
Expand All @@ -55,11 +50,11 @@
};
};

keys {
keys: keys {
compatible = "gpio-keys-polled";
poll-interval = <20>;

button_eco {
eco {
label = "eco";
gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
linux,code = <BTN_1>;
Expand All @@ -74,13 +69,6 @@
debounce-interval = <60>;
};

button_copy {
label = "copy";
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
linux,code = <BTN_1>;
debounce-interval = <60>;
};

wps {
label = "wps";
gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
Expand Down Expand Up @@ -190,7 +178,6 @@
wifi@0,0 {
compatible = "pci168c,003c";
reg = <0x0000 0 0 0 0>;
qca,no-eeprom;
};
};

Expand Down
16 changes: 16 additions & 0 deletions target/linux/ath79/dts/qca9557_iodata_wn-ac1167dgr.dts
Expand Up @@ -10,3 +10,19 @@
compatible = "iodata,wn-ac1167dgr", "qca,qca9557";
model = "I-O DATA WN-AC1167DGR";
};

&leds {
copy {
label = "iodata:green:copy";
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
};
};

&keys {
copy {
label = "copy";
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
linux,code = <BTN_1>;
debounce-interval = <60>;
};
};
28 changes: 28 additions & 0 deletions target/linux/ath79/dts/qca9557_iodata_wn-ac1600dgr.dts
@@ -0,0 +1,28 @@
// 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 "qca9557_iodata_wn-ac-dgr.dtsi"

/ {
compatible = "iodata,wn-ac1600dgr", "qca,qca9557";
model = "I-O DATA WN-AC1600DGR";
};

&leds {
function {
label = "iodata:green:function";
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
};
};

&keys {
function {
label = "function";
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
linux,code = <BTN_1>;
debounce-interval = <60>;
};
};
16 changes: 16 additions & 0 deletions target/linux/ath79/dts/qca9557_iodata_wn-ac1600dgr2.dts
Expand Up @@ -10,3 +10,19 @@
compatible = "iodata,wn-ac1600dgr2", "qca,qca9557";
model = "I-O DATA WN-AC1600DGR2";
};

&leds {
copy {
label = "iodata:green:copy";
gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
};
};

&keys {
copy {
label = "copy";
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
linux,code = <BTN_1>;
debounce-interval = <60>;
};
};
12 changes: 12 additions & 0 deletions target/linux/ath79/image/generic.mk
Expand Up @@ -349,6 +349,18 @@ define Device/iodata_wn-ac1167dgr
endef
TARGET_DEVICES += iodata_wn-ac1167dgr

define Device/iodata_wn-ac1600dgr
ATH_SOC := qca9557
DEVICE_TITLE := I-O DATA WN-AC1600DGR
IMAGE_SIZE := 14656k
IMAGES += factory.bin
IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \
senao-header -r 0x30a -p 0x60 -t 2 -v 200
DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca988x-ct
endef
TARGET_DEVICES += iodata_wn-ac1600dgr

define Device/iodata_wn-ac1600dgr2
ATH_SOC := qca9557
DEVICE_TITLE := I-O DATA WN-AC1600DGR2
Expand Down

0 comments on commit 93d4439

Please sign in to comment.