openwrt/target/linux/ath79/dts/ar9344_wd_mynet-wifi-rangeextender.dts
Christian Lamparter 745dee11ac ath79: add support for WD My Net Wi-Fi Range Extender
This patch ports over support for the device from ar71xx.

SOC:	AR7370 (Wasp - AR9344 rev2 0001974c)
RAM:	Winbond W9725G6KB-25 32MiB
FLASH:	Winbond 25Q64FVSIG 8MiB
WLAN:	AR9380 Dual-Band 802.11abgn 3x3:3
INPUT:	WPS, RESET button (hardware on/off toggle button)
LED:    Power, LAN, WiFi, 3 RSSI-Leds (low, medium, high)
Serial: Header Next to the winbond flash chip (labeld JP1)
	Pinout is GND - NC - RX - TX - 3V3 (JP1)
	The Serial setting is 115200-8-N-1.

- Installation via uboot's upgrade command
  0. attach serial cable
  1. interrupt uboot and enter "upgrade code.bin" into
      the u-boot prompt
	ar7240> upgrade code.bin

  2. rename openwrt...sysupgrade.bin to code.bin on PC
  3. run a tftp-client on the PC
	 (shell)$ tftp 192.168.1.230
	 binary
	 put code.bin
  4. wait for the device to finish

	[...]
	Copy buff to Flash from 0x9f040000 length 0x79f000
	Copy to Flash... write addr: 9f040000
	done

  5.  enter "go" in the u-boot prompt
	ar7240> go

- TFTP ramdisk image boot from the uboot prompt
  (tftp server defaults to serverip 192.168.1.254)
	=> tftpboot 81000000 initramfs.bin
	=> bootm

Tested and working:
	- LEDs
	- Buttons
	- Ethernet
	- Wi-Fi
	- OpenWRT sysupgrade

For flashing and debricking information see:
<https://openwrt.org/toh/wd/rext>

Users coming from ar71xx can use sysupgrade too. But I highly
advise to no save the old configuration and start from a clean
state.

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
2018-09-10 09:07:41 +02:00

175 lines
2.9 KiB
Plaintext

// 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 "ar9344.dtsi"
/ {
model = "Western Digital My Net Wi-Fi Range Extender";
compatible = "wd,mynet-wifi-rangeextender", "qca,ar9344";
chosen {
bootargs = "console=ttyS0,115200n8";
};
aliases {
led-boot = &power;
led-failsafe = &power;
led-running = &power;
led-upgrade = &power;
};
leds {
compatible = "gpio-leds";
power: power {
label = "mynet-wifi-rangeextender:blue:power";
gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
/* LED has no off state. It's either on or it blinks */
};
lan {
label = "mynet-wifi-rangeextender:green:lan";
gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
};
wifi {
label = "mynet-wifi-rangeextender:blue:wifi";
gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
wifi-rssi-low {
label = "mynet-wifi-rangeextender:blue:rssi-low";
gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
};
wifi-rssi-med {
label = "mynet-wifi-rangeextender:blue:rssi-med";
gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
};
wifi-rssi-max {
label = "mynet-wifi-rangeextender:blue:rssi-max";
gpios = <&gpio 22 GPIO_ACTIVE_LOW>;
};
};
keys {
compatible = "gpio-keys-polled";
poll-interval = <50>;
reset {
linux,code = <KEY_RESTART>;
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
band-switch {
linux,code = <BTN_1>;
gpios = <&gpio 14 GPIO_ACTIVE_HIGH>;
linux,input-type = <EV_SW>;
debounce-interval = <60>;
};
wps {
linux,code = <KEY_WPS_BUTTON>;
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
};
&ref {
clock-frequency = <25000000>;
};
&uart {
status = "okay";
};
&spi {
num-cs = <1>;
status = "okay";
flash@0 {
compatible = /* "s25fl064k", */ "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
uboot: partition@0 {
label = "u-boot";
reg = <0x0 0x040000>;
read-only;
};
partition@40000 {
label = "firmware";
reg = <0x40000 0x7a0000>;
compatible = "cybertan,trx";
};
nvram: partition@7e0000 {
label = "nvram";
reg = <0x7e0000 0x10000>;
};
art: partition@7f0000 {
label = "art";
reg = <0x7f0000 0x10000>;
read-only;
};
};
};
};
&pcie {
status = "okay";
ath9k: wifi@0,0 {
compatible = "pci168c,0030";
reg = <0x0000 0 0 0 0>;
qca,no-eeprom;
/* wifi MAC is stored in nvram */
};
};
&mdio0 {
status = "okay";
phy-mask = <0x10>;
phy4: ethernet-phy@4 {
reg = <4>;
};
};
&eth0 {
status = "okay";
pll-data = <0x0e000000 0x3c000101 0x3c001313>;
/* ethernet MAC is stored in nvram */
phy-mode = "rgmii";
phy-handle = <&phy4>;
gmac-config {
device = <&gmac>;
rgmii-gmac0 = <1>;
rxd-delay = <3>;
rxdv-delay = <3>;
};
};
&mdio1 {
status = "disabled";
};