diff mbox series

[OpenWrt-Devel,19.07] ath79: add support for Sitecom WLR-7100

Message ID 20200504174855.24934-1-tomek_n@o2.pl
State Rejected
Headers show
Series [OpenWrt-Devel,19.07] ath79: add support for Sitecom WLR-7100 | expand

Commit Message

Tomasz Maciej Nowak May 4, 2020, 5:48 p.m. UTC
Backported from: 1bc921f419df508c57dc07cd3e43cdf0408c17dd

Sitecom WLR-7100 v1 002 (marketed as X7 AC1200) is a dual band wireless
router.

Specification
SoC: Atheros AR1022
RAM: 64 MB DDR2
Flash: 8 MB SPI NOR
WIFI: 2.4 GHz 2T2R integrated
      5 GHz 2T2R QCA9882 integrated (connected to PCIe lane)
Ethernet: 5x 10/100/1000 Mbps QCA8337N
USB: 1x 2.0
LEDS: 4x GPIO controlled, 5x switch
Buttons: 2x GPIO controlled
UART: row of 4 unpopulated holes near USB port, starting count from
      white triangle on PCB
      1. VCC 3.3V, 2. GND, 3. TX, 4. RX
      baud: 115200, parity: none, flow control: none

Installation
1. Connect to one of LAN (yellow) ethernet ports,
2. Open router configuration interface,
3. Go to Toolbox > Firmware,
4. Browse for OpenWrt factory image with dlf extension and hit Apply,
5. Wait few minutes, after the Power LED will stop blinking, the router
   is ready for configuration.

Known issues
5GHz LED doesn't work

Additional information
When TX line on UART is connected, and board is switched on from power
off state, the DDR memory training may fail.
If connected to UART, when prompted for number on boot, one can enter
number 4 to open bootloader (U-Boot) command line.
OEM firmware shell password is: SitecomSenao
useful for creating backup of original firmware.
There is also another revision of this device (v1 001), which may or may
not work with introduced images.

Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
---
 .../ath79/base-files/etc/board.d/02_network   |   6 +
 .../etc/hotplug.d/firmware/10-ath9k-eeprom    |   3 +-
 .../etc/hotplug.d/firmware/11-ath10k-caldata  |   3 +-
 .../ath79/dts/ar1022_sitecom_wlr-7100.dts     | 171 ++++++++++++++++++
 target/linux/ath79/image/generic.mk           |  12 ++
 5 files changed, 193 insertions(+), 2 deletions(-)
 create mode 100644 target/linux/ath79/dts/ar1022_sitecom_wlr-7100.dts

Comments

Adrian Schmutzler May 4, 2020, 6:31 p.m. UTC | #1
Hi,

> -----Original Message-----
> From: openwrt-devel [mailto:openwrt-devel-bounces@lists.openwrt.org]
> On Behalf Of Tomasz Maciej Nowak
> Sent: Montag, 4. Mai 2020 19:49
> To: openwrt-devel@lists.openwrt.org
> Subject: [OpenWrt-Devel] [19.07] [PATCH] ath79: add support for Sitecom
> WLR-7100
> 
> Backported from: 1bc921f419df508c57dc07cd3e43cdf0408c17dd

Device support is typically not backported to stable branches, unless you have a very good reason for it.

Best

Adrian

> 
> Sitecom WLR-7100 v1 002 (marketed as X7 AC1200) is a dual band wireless
> router.
> 
> Specification
> SoC: Atheros AR1022
> RAM: 64 MB DDR2
> Flash: 8 MB SPI NOR
> WIFI: 2.4 GHz 2T2R integrated
>       5 GHz 2T2R QCA9882 integrated (connected to PCIe lane)
> Ethernet: 5x 10/100/1000 Mbps QCA8337N
> USB: 1x 2.0
> LEDS: 4x GPIO controlled, 5x switch
> Buttons: 2x GPIO controlled
> UART: row of 4 unpopulated holes near USB port, starting count from
>       white triangle on PCB
>       1. VCC 3.3V, 2. GND, 3. TX, 4. RX
>       baud: 115200, parity: none, flow control: none
> 
> Installation
> 1. Connect to one of LAN (yellow) ethernet ports, 2. Open router
> configuration interface, 3. Go to Toolbox > Firmware, 4. Browse for OpenWrt
> factory image with dlf extension and hit Apply, 5. Wait few minutes, after the
> Power LED will stop blinking, the router
>    is ready for configuration.
> 
> Known issues
> 5GHz LED doesn't work
> 
> Additional information
> When TX line on UART is connected, and board is switched on from power
> off state, the DDR memory training may fail.
> If connected to UART, when prompted for number on boot, one can enter
> number 4 to open bootloader (U-Boot) command line.
> OEM firmware shell password is: SitecomSenao useful for creating backup of
> original firmware.
> There is also another revision of this device (v1 001), which may or may not
> work with introduced images.
> 
> Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
> ---
>  .../ath79/base-files/etc/board.d/02_network   |   6 +
>  .../etc/hotplug.d/firmware/10-ath9k-eeprom    |   3 +-
>  .../etc/hotplug.d/firmware/11-ath10k-caldata  |   3 +-
>  .../ath79/dts/ar1022_sitecom_wlr-7100.dts     | 171 ++++++++++++++++++
>  target/linux/ath79/image/generic.mk           |  12 ++
>  5 files changed, 193 insertions(+), 2 deletions(-)  create mode 100644
> target/linux/ath79/dts/ar1022_sitecom_wlr-7100.dts
> 
> diff --git a/target/linux/ath79/base-files/etc/board.d/02_network
> b/target/linux/ath79/base-files/etc/board.d/02_network
> index 1b0e76b1593b..d494c0144725 100755
> --- a/target/linux/ath79/base-files/etc/board.d/02_network
> +++ b/target/linux/ath79/base-files/etc/board.d/02_network
> @@ -150,6 +150,7 @@ ath79_setup_interfaces()
>  	iodata,wn-ac1600dgr2|\
>  	iodata,wn-ag300dgr|\
>  	pcs,cr5000|\
> +	sitecom,wlr-7100|\
>  	wd,mynet-n750)
>  		ucidef_add_switch "switch0" \
>  			"0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
> @@ -349,6 +350,11 @@ ath79_setup_macs()
>  		wan_mac=$(mtd_get_mac_binary factory 0)
>  		lan_mac=$(macaddr_setbit_la "$wan_mac")
>  		;;
> +	sitecom,wlr-7100)
> +		lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
> +		wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
> +		label_mac=$lan_mac
> +		;;
>  	tplink,archer-a7-v5|\
>  	tplink,archer-c7-v4|\
>  	tplink,archer-c7-v5|\
> diff --git a/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-
> eeprom b/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-
> eeprom
> index d85e90f10683..69ffad1a99ef 100644
> --- a/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-
> eeprom
> +++ b/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eepr
> +++ om
> @@ -119,7 +119,8 @@ case "$FIRMWARE" in
>  	iodata,wn-ac1167dgr|\
>  	iodata,wn-ac1600dgr|\
>  	iodata,wn-ac1600dgr2|\
> -	iodata,wn-ag300dgr)
> +	iodata,wn-ag300dgr|\
> +	sitecom,wlr-7100)
>  		ath9k_eeprom_extract "art" 4096 1088
>  		ath9k_patch_fw_mac $(mtd_get_mac_ascii u-boot-env
> ethaddr) 2
>  		;;
> diff --git a/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-
> caldata b/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-
> caldata
> index d93e6dcd71ab..5b29ad0ce9fc 100644
> --- a/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-
> caldata
> +++ b/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-cal
> +++ data
> @@ -109,7 +109,8 @@ case "$FIRMWARE" in
>  		;;
>  	engenius,epg5000|\
>  	iodata,wn-ac1167dgr|\
> -	iodata,wn-ac1600dgr2)
> +	iodata,wn-ac1600dgr2|\
> +	sitecom,wlr-7100)
>  		ath10kcal_extract "art" 20480 2116
>  		ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_ascii
> u-boot-env ethaddr) +1)
>  		;;
> diff --git a/target/linux/ath79/dts/ar1022_sitecom_wlr-7100.dts
> b/target/linux/ath79/dts/ar1022_sitecom_wlr-7100.dts
> new file mode 100644
> index 000000000000..8a70b597b0fe
> --- /dev/null
> +++ b/target/linux/ath79/dts/ar1022_sitecom_wlr-7100.dts
> @@ -0,0 +1,171 @@
> +// 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 = "Sitecom WLR-7100 v1 002 (X7 AC1200)";
> +	compatible = "sitecom,wlr-7100", "qca,ar9344";
> +
> +	aliases {
> +		led-boot = &power;
> +		led-failsafe = &power;
> +		led-running = &power;
> +		led-upgrade = &power;
> +	};
> +
> +	keys {
> +		compatible = "gpio-keys";
> +
> +		wlan2g {
> +			label = "2.4GHz";
> +			gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_RESTART>;
> +		};
> +
> +		wlan5g {
> +			label = "5GHz";
> +			gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
> +			linux,code = <KEY_WPS_BUTTON>;
> +		};
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +
> +		ops {
> +			label = "wlr-7100:white:ops";
> +			gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		power: power {
> +			label = "wlr-7100:amber:power";
> +			gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
> +			default-state = "on";
> +		};
> +
> +		wlan2g {
> +			label = "wlr-7100:blue:wlan2g";
> +			gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
> +			linux,default-trigger = "phy1tpt";
> +		};
> +	};
> +};
> +
> +&eth0 {
> +	status = "okay";
> +
> +	pll-data = <0x06000000 0x00000101 0x00001616>;
> +
> +	phy-mode = "rgmii";
> +	phy-handle = <&phy0>;
> +
> +	gmac-config {
> +		device = <&gmac>;
> +		rgmii-gmac0 = <1>;
> +	};
> +};
> +
> +&mdio0 {
> +	status = "okay";
> +
> +	phy0: ethernet-phy@0 {
> +		reg = <0>;
> +		phy-mode = "rgmii";
> +
> +		qca,ar8327-initvals = <
> +			0x04 0x87a00000 /* PORT0 PAD Mode */
> +			0x0c 0x01000000 /* PORT6 PAD Mode */
> +			0x10 0x80000000 /* PWS_REG_VALUE */
> +			0x7c 0x000000fe /* PORT0_STATUS */
> +			0x94 0x000000fe /* PORT6_STATUS */
> +		>;
> +	};
> +};
> +
> +&pcie {
> +	status = "okay";
> +
> +	wifi@0,0 {
> +		compatible = "qcom,ath10k";
> +		reg = <0x0000 0 0 0 0>;
> +	};
> +};
> +
> +&ref {
> +	clock-frequency = <25000000>;
> +};
> +
> +&spi {
> +	num-cs = <1>;
> +	status = "okay";
> +
> +	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 0x030000>;
> +				read-only;
> +			};
> +
> +			uenv: partition@30000 {
> +				label = "u-boot-env";
> +				reg = <0x030000 0x010000>;
> +				read-only;
> +			};
> +
> +			partition@40000 {
> +				compatible = "denx,uimage";
> +				label = "firmware";
> +				reg = <0x040000 0x750000>;
> +			};
> +
> +			partition@790000 {
> +				label = "backup";
> +				reg = <0x790000 0x010000>;
> +				read-only;
> +			};
> +
> +			partition@7a0000 {
> +				label = "storage";
> +				reg = <0x7a0000 0x050000>;
> +				read-only;
> +			};
> +
> +			art: partition@7f0000 {
> +				label = "art";
> +				reg = <0x7f0000 0x010000>;
> +				read-only;
> +			};
> +		};
> +	};
> +};
> +
> +&uart {
> +	status = "okay";
> +};
> +
> +&usb {
> +	status = "okay";
> +};
> +
> +&usb_phy {
> +	status = "okay";
> +};
> +
> +&wmac {
> +	status = "okay";
> +
> +	qca,no-eeprom;
> +};
> diff --git a/target/linux/ath79/image/generic.mk
> b/target/linux/ath79/image/generic.mk
> index 55053be34f11..550f24f45c8b 100644
> --- a/target/linux/ath79/image/generic.mk
> +++ b/target/linux/ath79/image/generic.mk
> @@ -674,6 +674,18 @@ define Device/rosinson_wr818  endef
> TARGET_DEVICES += rosinson_wr818
> 
> +define Device/sitecom_wlr-7100
> +  ATH_SOC := ar1022
> +  DEVICE_TITLE := Sitecom WLR-7100 v1 002
> +  DEVICE_PACKAGES := ath10k-firmware-qca988x-ct
> +kmod-ath10k-ct-smallbuffers kmod-usb2
> +  IMAGES += factory.dlf
> +  IMAGE/factory.dlf := append-kernel | pad-to $$$$(BLOCKSIZE) | \
> +	append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \
> +	senao-header -r 0x222 -p 0x53 -t 2
> +  IMAGE_SIZE := 7488k
> +endef
> +TARGET_DEVICES += sitecom_wlr-7100
> +
>  define Device/wd_mynet-n750
>    $(Device/seama)
>    ATH_SOC := ar9344
> --
> 2.26.2
> 
> 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Tomasz Maciej Nowak May 4, 2020, 6:44 p.m. UTC | #2
W dniu 04.05.2020 o 20:31, mail@adrianschmutzler.de pisze:
> Hi,
> 
>> -----Original Message-----
>> From: openwrt-devel [mailto:openwrt-devel-bounces@lists.openwrt.org]
>> On Behalf Of Tomasz Maciej Nowak
>> Sent: Montag, 4. Mai 2020 19:49
>> To: openwrt-devel@lists.openwrt.org
>> Subject: [OpenWrt-Devel] [19.07] [PATCH] ath79: add support for Sitecom
>> WLR-7100
>>
>> Backported from: 1bc921f419df508c57dc07cd3e43cdf0408c17dd
> 
> Device support is typically not backported to stable branches, unless you have a very good reason for it.

I see bunch of devices added during rc phase and after stable release, so
what's the truth here?

> 
> Best
> 
> Adrian
>
Daniel Golle May 4, 2020, 7:06 p.m. UTC | #3
On Mon, May 04, 2020 at 08:44:40PM +0200, Tomasz Maciej Nowak wrote:
> W dniu 04.05.2020 o 20:31, mail@adrianschmutzler.de pisze:
> > Hi,
> > 
> >> -----Original Message-----
> >> From: openwrt-devel [mailto:openwrt-devel-bounces@lists.openwrt.org]
> >> On Behalf Of Tomasz Maciej Nowak
> >> Sent: Montag, 4. Mai 2020 19:49
> >> To: openwrt-devel@lists.openwrt.org
> >> Subject: [OpenWrt-Devel] [19.07] [PATCH] ath79: add support for Sitecom
> >> WLR-7100
> >>
> >> Backported from: 1bc921f419df508c57dc07cd3e43cdf0408c17dd
> > 
> > Device support is typically not backported to stable branches, unless you have a very good reason for it.
> 
> I see bunch of devices added during rc phase and after stable release, so
> what's the truth here?

To clarify what we have been doing until now and what is hence being
perceived as a general rule (though I'm not sure it has ever been
formalized):
Adding support for new devices to stable branches is ok and should
even be encouraged if and only if
 * it's been in master for a week or so and didn't break the build
 * no changes on kernel or tools are needed
 * all features can be supported just as well as similar boards already
   supported in that branch

Cheers

Daniel

> 
> > 
> > Best
> > 
> > Adrian
> > 
> 
> -- 
> TMN
> 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Adrian Schmutzler May 4, 2020, 7:22 p.m. UTC | #4
> -----Original Message-----
> From: Tomasz Maciej Nowak [mailto:tomek_n@o2.pl]
> Sent: Montag, 4. Mai 2020 20:45
> To: mail@adrianschmutzler.de; openwrt-devel@lists.openwrt.org
> Subject: Re: [OpenWrt-Devel] [19.07] [PATCH] ath79: add support for
> Sitecom WLR-7100
> 
> W dniu 04.05.2020 o 20:31, mail@adrianschmutzler.de pisze:
> > Hi,
> >
> >> -----Original Message-----
> >> From: openwrt-devel [mailto:openwrt-devel-
> bounces@lists.openwrt.org]
> >> On Behalf Of Tomasz Maciej Nowak
> >> Sent: Montag, 4. Mai 2020 19:49
> >> To: openwrt-devel@lists.openwrt.org
> >> Subject: [OpenWrt-Devel] [19.07] [PATCH] ath79: add support for
> >> Sitecom
> >> WLR-7100
> >>
> >> Backported from: 1bc921f419df508c57dc07cd3e43cdf0408c17dd
> >
> > Device support is typically not backported to stable branches, unless you
> have a very good reason for it.
> 
> I see bunch of devices added during rc phase and after stable release, so
> what's the truth here?

Okay, so you want the long answer:

In general, stable branches are meant to only receive "fixes", but not "features".
In that terminology, new devices are also considered "features", of course.

Backporting a device from master (or reviewing it) frequently needs a substantial amount of work and care, as it is linked to several different parts of the code which all might have changed in the meantime. That's why "typically", device support is not backported. This saves a lot of review time that can be spent on other stuff that will go into master (despite, if we'd backport devices to stable on a regular basis, it would defeat the idea of having stable branches).

However, as you have found out, there are exceptions to this "typical behavior". In a nutshell, an exception is made whenever a committer decides to make one, and invests his/her time to review or create a device backport. Personally, I tend to make exceptions in the following cases:

1. A particular device is just a stupid clone of another device, and backporting would complete the family in the stable branch (i.e. add WDR4310 to ath79 where WDR4300 and WDR3600 are already present). Reason: Quick/easy (because clone), benefit (family complete)

2. I have backported a device for downstream anyway. (If I've done all the work anyway, there is no reason to not merge it so others can benefit as well.) Reason: No additional work.
Note that this is different from merging the device support somebody else provided: In that case, I would need to review it first, and reviewing a backport is about the same amount of work as needed for creating it in the first place.

3. There is a strong reason of any kind why a particular device should be made available. (That would also make me review a more substantial support backport from somebody else.)

But as Daniel stated, backporting device support is not "forbidden". That's why I wrote "is typically not backported", as it's effectively a matter of perceived behavior in the past, and no formal rule.

After all, you just have to find a committer who reviews and applies it. I just tried to express that this most probably won't happen, as other committers might follow a similar reasoning as discussed above (as experience tells).

So, please don't feel pestered.

Best

Adrian



> 
> >
> > Best
> >
> > Adrian
> >
> 
> --
> TMN
diff mbox series

Patch

diff --git a/target/linux/ath79/base-files/etc/board.d/02_network b/target/linux/ath79/base-files/etc/board.d/02_network
index 1b0e76b1593b..d494c0144725 100755
--- a/target/linux/ath79/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/base-files/etc/board.d/02_network
@@ -150,6 +150,7 @@  ath79_setup_interfaces()
 	iodata,wn-ac1600dgr2|\
 	iodata,wn-ag300dgr|\
 	pcs,cr5000|\
+	sitecom,wlr-7100|\
 	wd,mynet-n750)
 		ucidef_add_switch "switch0" \
 			"0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan"
@@ -349,6 +350,11 @@  ath79_setup_macs()
 		wan_mac=$(mtd_get_mac_binary factory 0)
 		lan_mac=$(macaddr_setbit_la "$wan_mac")
 		;;
+	sitecom,wlr-7100)
+		lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
+		wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
+		label_mac=$lan_mac
+		;;
 	tplink,archer-a7-v5|\
 	tplink,archer-c7-v4|\
 	tplink,archer-c7-v5|\
diff --git a/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
index d85e90f10683..69ffad1a99ef 100644
--- a/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
+++ b/target/linux/ath79/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
@@ -119,7 +119,8 @@  case "$FIRMWARE" in
 	iodata,wn-ac1167dgr|\
 	iodata,wn-ac1600dgr|\
 	iodata,wn-ac1600dgr2|\
-	iodata,wn-ag300dgr)
+	iodata,wn-ag300dgr|\
+	sitecom,wlr-7100)
 		ath9k_eeprom_extract "art" 4096 1088
 		ath9k_patch_fw_mac $(mtd_get_mac_ascii u-boot-env ethaddr) 2
 		;;
diff --git a/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index d93e6dcd71ab..5b29ad0ce9fc 100644
--- a/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -109,7 +109,8 @@  case "$FIRMWARE" in
 		;;
 	engenius,epg5000|\
 	iodata,wn-ac1167dgr|\
-	iodata,wn-ac1600dgr2)
+	iodata,wn-ac1600dgr2|\
+	sitecom,wlr-7100)
 		ath10kcal_extract "art" 20480 2116
 		ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_ascii u-boot-env ethaddr) +1)
 		;;
diff --git a/target/linux/ath79/dts/ar1022_sitecom_wlr-7100.dts b/target/linux/ath79/dts/ar1022_sitecom_wlr-7100.dts
new file mode 100644
index 000000000000..8a70b597b0fe
--- /dev/null
+++ b/target/linux/ath79/dts/ar1022_sitecom_wlr-7100.dts
@@ -0,0 +1,171 @@ 
+// 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 = "Sitecom WLR-7100 v1 002 (X7 AC1200)";
+	compatible = "sitecom,wlr-7100", "qca,ar9344";
+
+	aliases {
+		led-boot = &power;
+		led-failsafe = &power;
+		led-running = &power;
+		led-upgrade = &power;
+	};
+
+	keys {
+		compatible = "gpio-keys";
+
+		wlan2g {
+			label = "2.4GHz";
+			gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_RESTART>;
+		};
+
+		wlan5g {
+			label = "5GHz";
+			gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_WPS_BUTTON>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		ops {
+			label = "wlr-7100:white:ops";
+			gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+		};
+
+		power: power {
+			label = "wlr-7100:amber:power";
+			gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+			default-state = "on";
+		};
+
+		wlan2g {
+			label = "wlr-7100:blue:wlan2g";
+			gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy1tpt";
+		};
+	};
+};
+
+&eth0 {
+	status = "okay";
+
+	pll-data = <0x06000000 0x00000101 0x00001616>;
+
+	phy-mode = "rgmii";
+	phy-handle = <&phy0>;
+
+	gmac-config {
+		device = <&gmac>;
+		rgmii-gmac0 = <1>;
+	};
+};
+
+&mdio0 {
+	status = "okay";
+
+	phy0: ethernet-phy@0 {
+		reg = <0>;
+		phy-mode = "rgmii";
+
+		qca,ar8327-initvals = <
+			0x04 0x87a00000 /* PORT0 PAD Mode */
+			0x0c 0x01000000 /* PORT6 PAD Mode */
+			0x10 0x80000000 /* PWS_REG_VALUE */
+			0x7c 0x000000fe /* PORT0_STATUS */
+			0x94 0x000000fe /* PORT6_STATUS */
+		>;
+	};
+};
+
+&pcie {
+	status = "okay";
+
+	wifi@0,0 {
+		compatible = "qcom,ath10k";
+		reg = <0x0000 0 0 0 0>;
+	};
+};
+
+&ref {
+	clock-frequency = <25000000>;
+};
+
+&spi {
+	num-cs = <1>;
+	status = "okay";
+
+	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 0x030000>;
+				read-only;
+			};
+
+			uenv: partition@30000 {
+				label = "u-boot-env";
+				reg = <0x030000 0x010000>;
+				read-only;
+			};
+
+			partition@40000 {
+				compatible = "denx,uimage";
+				label = "firmware";
+				reg = <0x040000 0x750000>;
+			};
+
+			partition@790000 {
+				label = "backup";
+				reg = <0x790000 0x010000>;
+				read-only;
+			};
+
+			partition@7a0000 {
+				label = "storage";
+				reg = <0x7a0000 0x050000>;
+				read-only;
+			};
+
+			art: partition@7f0000 {
+				label = "art";
+				reg = <0x7f0000 0x010000>;
+				read-only;
+			};
+		};
+	};
+};
+
+&uart {
+	status = "okay";
+};
+
+&usb {
+	status = "okay";
+};
+
+&usb_phy {
+	status = "okay";
+};
+
+&wmac {
+	status = "okay";
+
+	qca,no-eeprom;
+};
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index 55053be34f11..550f24f45c8b 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -674,6 +674,18 @@  define Device/rosinson_wr818
 endef
 TARGET_DEVICES += rosinson_wr818
 
+define Device/sitecom_wlr-7100
+  ATH_SOC := ar1022
+  DEVICE_TITLE := Sitecom WLR-7100 v1 002
+  DEVICE_PACKAGES := ath10k-firmware-qca988x-ct kmod-ath10k-ct-smallbuffers kmod-usb2
+  IMAGES += factory.dlf
+  IMAGE/factory.dlf := append-kernel | pad-to $$$$(BLOCKSIZE) | \
+	append-rootfs | pad-rootfs | check-size $$$$(IMAGE_SIZE) | \
+	senao-header -r 0x222 -p 0x53 -t 2
+  IMAGE_SIZE := 7488k
+endef
+TARGET_DEVICES += sitecom_wlr-7100
+
 define Device/wd_mynet-n750
   $(Device/seama)
   ATH_SOC := ar9344