From b591cabd3989b44cfaf15248af9e55a0300a9c0a Mon Sep 17 00:00:00 2001
From: Jeff Kletsky <git-commits@allycomm.com>
Date: Sun, 2 Jun 2019 06:43:00 -0700
Subject: ath79: add GL.iNet GL-AR300M16 as NOR-only board

The GL.iNet GL-AR300M series of devices includes variants without NAND
and only the 16 MB NOR flash. These include the GL-AR300M16 and the
GL-AR300M-Lite (already with its own board name).

This board-name addition provides disambiguation from the NAND-bearing
GL-AR300M devices, both for OpenWrt code and for end users.

Kernel and firmware support for NAND and UBI will add ~320 kB to the
overall firmware size at this time. This NOR-only option continues to
provide more compact firmware for both the GL-AR300M16 as well as
those who wish to use it as an alternate or primary, NOR-resident
firmware on the GL-AR300M.

The ar71xx targets are unmodified.

Installation
------------

Install through OEM U-Boot (HTTP-based) or `sysupgrade --force` when
booted from NOR and running OEM or OpenWrt, NOR-based firmware.

As one of the intentions is disambiguation from NAND-bearing units,
users who have flashed this firmware onto a device with NAND would
need to use U-Boot or `sysupgrade --force` to flash firmware that
again supports NAND.

There are no additional SUPPORTED_DEVICES as it is not possible to
determine if a device does or does not have NAND based on
either the OEM's or OpenWrt's board names prior to this patch.

Signed-off-by: Jeff Kletsky <git-commits@allycomm.com>
---
 target/linux/ath79/dts/qca9531_glinet_gl-ar300m16.dts     | 12 ++++++++++++
 target/linux/ath79/generic/base-files/etc/board.d/01_leds |  3 +++
 target/linux/ath79/image/generic.mk                       |  6 ++++++
 3 files changed, 21 insertions(+)
 create mode 100644 target/linux/ath79/dts/qca9531_glinet_gl-ar300m16.dts

(limited to 'target/linux/ath79')

diff --git a/target/linux/ath79/dts/qca9531_glinet_gl-ar300m16.dts b/target/linux/ath79/dts/qca9531_glinet_gl-ar300m16.dts
new file mode 100644
index 0000000000..ad491286ec
--- /dev/null
+++ b/target/linux/ath79/dts/qca9531_glinet_gl-ar300m16.dts
@@ -0,0 +1,12 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+/dts-v1/;
+
+#include "qca9531_glinet_gl-ar300m.dtsi"
+
+/ {
+	compatible = "glinet,gl-ar300m16", "qca,qca9531";
+	model = "GL.iNet GL-AR300M16";
+};
+
+/delete-node/ &nand_flash;
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/01_leds b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
index 4ab504654e..d54e770240 100755
--- a/target/linux/ath79/generic/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
@@ -97,6 +97,9 @@ glinet,gl-ar150)
 glinet,gl-ar300m-lite)
 	ucidef_set_led_netdev "lan" "LAN" "gl-ar300m-lite:green:lan" "eth0"
 	;;
+glinet,gl-ar300m16)
+	ucidef_set_led_netdev "lan" "LAN" "gl-ar300m:green:lan" "eth0"
+	;;
 glinet,gl-x750)
 	ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth1"
 	;;
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index 011bb41262..6fc51ec647 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -562,6 +562,12 @@ define Device/glinet_gl-ar300m-lite
 endef
 TARGET_DEVICES += glinet_gl-ar300m-lite
 
+define Device/glinet_gl-ar300m16
+  $(Device/glinet_gl-ar300m-common-nor)
+  DEVICE_MODEL := GL-AR300M16
+endef
+TARGET_DEVICES += glinet_gl-ar300m16
+
 define Device/glinet_gl-ar750
   ATH_SOC := qca9531
   DEVICE_VENDOR := GL.iNet
-- 
cgit v1.2.3