ath79: support for TP-Link EAP225-Wall v2
TP-Link EAP225-Wall v2 is an AC1200 (802.11ac Wave-2) wall plate access
point. UART access and debricking require fine soldering.
The device was kindly provided for porting by Stijn Segers.
Device specifications:
* SoC: QCA9561 @ 775MHz
* RAM: 128MiB DDR2
* Flash: 16MiB SPI-NOR (GD25Q127CSIG)
* Wireless 2.4GHz (SoC): b/g/n, 2x2
* Wireless 5Ghz (QCA9886): a/n/ac, 2x2 MU-MIMO
* Ethernet (SoC): 4× 100Mbps
  * Eth0 (back): 802.3af/at PoE in
  * Eth1, Eth2 (bottom)
  * Eth3 (bottom): PoE out (can be toggled by GPIO)
* One status LED
* Two buttons (both work as failsafe)
  * LED button, implemented as KEY_BRIGHTNESS_TOGGLE
  * Reset button
Flashing instructions, requires recent firmware (tested on 1.20.0):
* ssh into target device and run `cliclientd stopcs`
* Upgrade with factory image via web interface
Debricking:
* Serial port can be soldered on PCB J4 (1: TXD, 2: RXD, 3: GND, 4: VCC)
    * Bridge unpopulated resistors R162 (TXD) and R165 (RXD)
      Do NOT bridge R164
    * Use 3.3V, 115200 baud, 8n1
* Interrupt bootloader by holding CTRL+B during boot
* tftp initramfs to flash via sysupgrade or LuCI web interface
MAC addresses:
MAC address (as on device label) is stored in device info partition at
an offset of 8 bytes. ath9k device has same address as ethernet, ath10k
uses address incremented by 1.
From OEM ifconfig:
    br0       Link encap:Ethernet  HWaddr 50:...:04
    eth0      Link encap:Ethernet  HWaddr 50:...:04
    wifi0     Link encap:UNSPEC  HWaddr 50-...-04-...
    wifi1     Link encap:UNSPEC  HWaddr 50-...-05-...
Signed-off-by: Sander Vanheule <sander@svanheule.net>
[fix IMAGE_SIZE]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
			
			
This commit is contained in:
		
				
					committed by
					
						
						Adrian Schmutzler
					
				
			
			
				
	
			
			
			
						parent
						
							53df30f02b
						
					
				
				
					commit
					c9f51a9ad6
				
			
							
								
								
									
										146
									
								
								target/linux/ath79/dts/qca9561_tplink_eap225-wall-v2.dts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										146
									
								
								target/linux/ath79/dts/qca9561_tplink_eap225-wall-v2.dts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,146 @@
 | 
			
		||||
// 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 = "tplink,eap225-wall-v2", "qca,qca9561";
 | 
			
		||||
	model = "TP-Link EAP225-Wall v2";
 | 
			
		||||
 | 
			
		||||
	aliases {
 | 
			
		||||
		label-mac-device = ð1;
 | 
			
		||||
		led-boot = &led_status;
 | 
			
		||||
		led-failsafe = &led_status;
 | 
			
		||||
		led-running = &led_status;
 | 
			
		||||
		led-upgrade = &led_status;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	keys {
 | 
			
		||||
		compatible = "gpio-keys";
 | 
			
		||||
 | 
			
		||||
		reset {
 | 
			
		||||
			label = "Reset button";
 | 
			
		||||
			linux,code = <KEY_RESTART>;
 | 
			
		||||
			gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			debounce-interval = <60>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		led {
 | 
			
		||||
			label = "LED button";
 | 
			
		||||
			linux,code = <KEY_LIGHTS_TOGGLE>;
 | 
			
		||||
			gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			debounce-interval = <60>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
 | 
			
		||||
		led_status: status {
 | 
			
		||||
			label = "tp-link:white:status";
 | 
			
		||||
			gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
 | 
			
		||||
			default-state = "on";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	gpio-export {
 | 
			
		||||
		compatible = "gpio-export";
 | 
			
		||||
 | 
			
		||||
		poe_passthrough {
 | 
			
		||||
			gpio-export,name = "tp-link:poe-passthrough:enable";
 | 
			
		||||
			gpio-export,output = <0>;
 | 
			
		||||
			gpios = <&gpio 20 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&uart {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&pcie {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&spi {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	num-cs = <1>;
 | 
			
		||||
 | 
			
		||||
	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 0x020000>;
 | 
			
		||||
				read-only;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			partition@20000 {
 | 
			
		||||
				label = "partition-table";
 | 
			
		||||
				reg = <0x020000 0x010000>;
 | 
			
		||||
				read-only;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			info: partition@30000 {
 | 
			
		||||
				label = "info";
 | 
			
		||||
				reg = <0x030000 0x010000>;
 | 
			
		||||
				read-only;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			partition@40000 {
 | 
			
		||||
				compatible = "openwrt,elf";
 | 
			
		||||
				label = "firmware";
 | 
			
		||||
				reg = <0x040000 0xd80000>;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			partition@dc0000 {
 | 
			
		||||
				label = "config";
 | 
			
		||||
				reg = <0xdc0000 0x030000>;
 | 
			
		||||
				read-only;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			/* df0000-f30000 undefined in vendor firmware */
 | 
			
		||||
 | 
			
		||||
			partition@f30000 {
 | 
			
		||||
				label = "mutil-log";
 | 
			
		||||
				reg = <0xf30000 0x080000>;
 | 
			
		||||
				read-only;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			partition@fb0000 {
 | 
			
		||||
				label = "oops";
 | 
			
		||||
				reg = <0xfb0000 0x040000>;
 | 
			
		||||
				read-only;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			art: partition@ff0000 {
 | 
			
		||||
				label = "art";
 | 
			
		||||
				reg = <0xff0000 0x010000>;
 | 
			
		||||
				read-only;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
ð1 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	mtd-mac-address = <&info 0x8>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&wmac {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
 | 
			
		||||
	mtd-cal-data = <&art 0x1000>;
 | 
			
		||||
	mtd-mac-address = <&info 0x8>;
 | 
			
		||||
};
 | 
			
		||||
@@ -302,6 +302,10 @@ ath79_setup_interfaces()
 | 
			
		||||
		ucidef_add_switch "switch0" \
 | 
			
		||||
			"0@eth1" "3:lan:3" "4:lan:2" "5:lan:1" "6@eth0" "2:wan:4" "1:wan:5"
 | 
			
		||||
		;;
 | 
			
		||||
	tplink,eap225-wall-v2)
 | 
			
		||||
		ucidef_add_switch "switch0" \
 | 
			
		||||
			"0@eth0" "1:lan" "2:lan" "3:lan" "4:lan"
 | 
			
		||||
		;;
 | 
			
		||||
	tplink,eap245-v3)
 | 
			
		||||
		ucidef_add_switch "switch0" \
 | 
			
		||||
			"0@eth0" "2:lan:1" "5:lan:2"
 | 
			
		||||
 
 | 
			
		||||
@@ -206,6 +206,12 @@ case "$FIRMWARE" in
 | 
			
		||||
		ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
 | 
			
		||||
			/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
 | 
			
		||||
		;;
 | 
			
		||||
	tplink,eap225-wall-v2)
 | 
			
		||||
		caldata_extract "art" 0x5000 0x2f20
 | 
			
		||||
		ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary info 0x8) +1)
 | 
			
		||||
		ln -sf /lib/firmware/ath10k/pre-cal-pci-0000\:00\:00.0.bin \
 | 
			
		||||
			/lib/firmware/ath10k/QCA9888/hw2.0/board.bin
 | 
			
		||||
		;;
 | 
			
		||||
	tplink,eap245-v3)
 | 
			
		||||
		caldata_extract "art" 0x5000 0x2f20
 | 
			
		||||
		ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary info 0x8) +1)
 | 
			
		||||
 
 | 
			
		||||
@@ -364,7 +364,6 @@ TARGET_DEVICES += tplink_cpe610-v2
 | 
			
		||||
 | 
			
		||||
define Device/tplink-eap2x5
 | 
			
		||||
  $(Device/tplink-safeloader)
 | 
			
		||||
  SOC := qca9563
 | 
			
		||||
  LOADER_TYPE := elf
 | 
			
		||||
  KERNEL := kernel-bin | append-dtb | lzma | loader-kernel
 | 
			
		||||
  KERNEL_INITRAMFS := $$(KERNEL)
 | 
			
		||||
@@ -372,8 +371,20 @@ define Device/tplink-eap2x5
 | 
			
		||||
	pad-extra 128
 | 
			
		||||
endef
 | 
			
		||||
 | 
			
		||||
define Device/tplink_eap225-wall-v2
 | 
			
		||||
  $(Device/tplink-eap2x5)
 | 
			
		||||
  SOC := qca9561
 | 
			
		||||
  IMAGE_SIZE := 13824k
 | 
			
		||||
  DEVICE_MODEL := EAP225-Wall
 | 
			
		||||
  DEVICE_VARIANT := v2
 | 
			
		||||
  DEVICE_PACKAGES := kmod-ath10k-ct ath10k-firmware-qca9888-ct
 | 
			
		||||
  TPLINK_BOARD_ID := EAP225-WALL-V2
 | 
			
		||||
endef
 | 
			
		||||
TARGET_DEVICES += tplink_eap225-wall-v2
 | 
			
		||||
 | 
			
		||||
define Device/tplink_eap245-v3
 | 
			
		||||
  $(Device/tplink-eap2x5)
 | 
			
		||||
  SOC := qca9563
 | 
			
		||||
  IMAGE_SIZE := 14592k
 | 
			
		||||
  DEVICE_MODEL := EAP245
 | 
			
		||||
  DEVICE_VARIANT := v3
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user