From fefa34def84561688e6af2feeec2dbb390ba4486 Mon Sep 17 00:00:00 2001 From: Jeff Kletsky Date: Wed, 6 Mar 2019 20:44:33 -0800 Subject: [PATCH] ath79: Add GL.iNet AR-300M-Lite AR300M-Lite is single-Ethernet variant of the AR300M series Its eth0 would otherwise be assigned to the WAN interface making it unreachable firstboot or failsafe. Installation instructions from OEM (OpenWrt variant): * Install sysupgrade.bin using OEM's "Advanced" GUI (LuCI), * Do not preserve settings * Access rebooted device via Ethernet at OpenWrt default address Add previously missing LED defaults for all three variants; -nand, -nor, -lite to the definitions in 01_leds Non-lite variants thanks to Andreas Ziegler https://patchwork.ozlabs.org/patch/1049396/ Runtime-tested: GL.iNet AR300M-Lite Signed-off-by: Jeff Kletsky --- .../ath79/base-files/etc/board.d/01_leds | 7 +++ .../ath79/base-files/etc/board.d/02_network | 1 + .../dts/qca9531_glinet_gl-ar300m-lite.dts | 22 +++++++ .../dts/qca9531_glinet_gl-ar300m-nand.dts | 34 ----------- .../dts/qca9531_glinet_gl-ar300m-nor.dts | 39 ------------- .../ath79/dts/qca9531_glinet_gl-ar300m.dtsi | 57 ++++++++++++++++--- target/linux/ath79/image/generic.mk | 14 ++++- 7 files changed, 91 insertions(+), 83 deletions(-) create mode 100644 target/linux/ath79/dts/qca9531_glinet_gl-ar300m-lite.dts diff --git a/target/linux/ath79/base-files/etc/board.d/01_leds b/target/linux/ath79/base-files/etc/board.d/01_leds index a7b6a65e0f..0b0dda3bcf 100755 --- a/target/linux/ath79/base-files/etc/board.d/01_leds +++ b/target/linux/ath79/base-files/etc/board.d/01_leds @@ -63,6 +63,13 @@ glinet,gl-ar150) ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth0" ucidef_set_led_switch "lan" "LAN" "$boardname:green:lan" "switch0" "0x02" ;; +glinet,gl-ar300m-nand|\ +glinet,gl-ar300m-nor) + ucidef_set_led_netdev "lan" "LAN" "gl-ar300m:green:lan" "eth0" + ;; +glinet,gl-ar300m-lite) + ucidef_set_led_netdev "lan" "LAN" "gl-ar300m-lite:green:lan" "eth0" + ;; glinet,gl-x750) ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth0" ;; 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 037e5777ed..5ab427f8ce 100755 --- a/target/linux/ath79/base-files/etc/board.d/02_network +++ b/target/linux/ath79/base-files/etc/board.d/02_network @@ -13,6 +13,7 @@ ath79_setup_interfaces() devolo,dvl1200i|\ devolo,dvl1750c|\ devolo,dvl1750i|\ + glinet,ar300m-lite|\ ocedo,koala|\ ocedo,raccoon|\ pcs,cap324|\ diff --git a/target/linux/ath79/dts/qca9531_glinet_gl-ar300m-lite.dts b/target/linux/ath79/dts/qca9531_glinet_gl-ar300m-lite.dts new file mode 100644 index 0000000000..fba08e4295 --- /dev/null +++ b/target/linux/ath79/dts/qca9531_glinet_gl-ar300m-lite.dts @@ -0,0 +1,22 @@ +/dts-v1/; + +#include "qca9531_glinet_gl-ar300m-nor.dts" + +/ { + compatible = "glinet,gl-ar300m-lite", "qca,qca9531"; + model = "GL.iNet GL-AR300M-Lite"; +}; + +// GL-AR300M-Lite has different LED colors than the non-Lite version + +&led_status { + label = "gl-ar300m-lite:red:status"; +}; + +&led_lan { + label = "gl-ar300m-lite:green:lan"; +}; + +&led_wlan { + label = "gl-ar300m-lite:green:wlan"; +}; \ No newline at end of file diff --git a/target/linux/ath79/dts/qca9531_glinet_gl-ar300m-nand.dts b/target/linux/ath79/dts/qca9531_glinet_gl-ar300m-nand.dts index 9e78f83a76..26c30f2b72 100644 --- a/target/linux/ath79/dts/qca9531_glinet_gl-ar300m-nand.dts +++ b/target/linux/ath79/dts/qca9531_glinet_gl-ar300m-nand.dts @@ -8,42 +8,8 @@ }; &spi { - status = "okay"; num-cs = <1>; - flash@0 { - compatible = "winbond,w25q128", "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 0x040000>; - read-only; - }; - - partition@1 { - label = "u-boot-env"; - reg = <0x040000 0x010000>; - }; - - partition@2 { - label = "reserved"; - reg = <0x050000 0xfa0000>; - }; - - art: partition@3 { - label = "art"; - reg = <0xff0000 0x010000>; - }; - }; - }; - flash@1 { compatible = "spinand,mt29f"; reg = <1>; diff --git a/target/linux/ath79/dts/qca9531_glinet_gl-ar300m-nor.dts b/target/linux/ath79/dts/qca9531_glinet_gl-ar300m-nor.dts index 6b77af0401..02196cf9c4 100644 --- a/target/linux/ath79/dts/qca9531_glinet_gl-ar300m-nor.dts +++ b/target/linux/ath79/dts/qca9531_glinet_gl-ar300m-nor.dts @@ -9,42 +9,3 @@ compatible = "glinet,gl-ar300m-nor", "qca,qca9531"; model = "GL.iNet GL-AR300M (NOR)"; }; - -&spi { - status = "okay"; - num-cs = <0>; - - flash@0 { - compatible = "winbond,w25q128", "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 0x040000>; - read-only; - }; - - partition@1 { - label = "u-boot-env"; - reg = <0x040000 0x010000>; - }; - - partition@2 { - compatible = "denx,uimage"; - label = "firmware"; - reg = <0x050000 0xfa0000>; - }; - - art: partition@3 { - label = "art"; - reg = <0xff0000 0x010000>; - }; - }; - }; -}; diff --git a/target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi b/target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi index 55002b44e3..ceb2bfa0ff 100644 --- a/target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi +++ b/target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi @@ -41,20 +41,22 @@ leds { compatible = "gpio-leds"; - wlan { - label = "gl-ar300m:green:wlan"; - gpios = <&gpio 14 GPIO_ACTIVE_LOW>; - linux,default-trigger = "phy0tpt"; + // Colors from non-Lite versions + + led_status: status { + label = "gl-ar300m:green:status"; + gpios = <&gpio 12 GPIO_ACTIVE_LOW>; }; - lan { + led_lan: lan { label = "gl-ar300m:green:lan"; gpios = <&gpio 13 GPIO_ACTIVE_LOW>; }; - led_status: status { - label = "gl-ar300m:red:status"; - gpios = <&gpio 12 GPIO_ACTIVE_LOW>; + led_wlan: wlan { + label = "gl-ar300m:red:wlan"; + gpios = <&gpio 14 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy0tpt"; }; }; }; @@ -63,6 +65,45 @@ status = "okay"; }; +&spi { + status = "okay"; + num-cs = <0>; + + flash@0 { + compatible = "winbond,w25q128", "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 0x040000>; + read-only; + }; + + partition@1 { + label = "u-boot-env"; + reg = <0x040000 0x010000>; + }; + + partition@2 { + compatible = "denx,uimage"; + label = "firmware"; + reg = <0x050000 0xfa0000>; + }; + + art: partition@3 { + label = "art"; + reg = <0xff0000 0x010000>; + }; + }; + }; +}; + &uart { status = "okay"; }; diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk index 6e3dcf0bd8..16212826d8 100644 --- a/target/linux/ath79/image/generic.mk +++ b/target/linux/ath79/image/generic.mk @@ -313,13 +313,23 @@ define Device/glinet_gl-ar150 endef TARGET_DEVICES += glinet_gl-ar150 -define Device/glinet_gl-ar300m-nor +define Device/glinet_gl-ar300m-common-nor ATH_SOC := qca9531 - DEVICE_TITLE := GL.iNet GL-AR300M DEVICE_PACKAGES := kmod-usb-core kmod-usb2 IMAGE_SIZE := 16000k SUPPORTED_DEVICES += gl-ar300m endef + +define Device/glinet_gl-ar300m-lite + $(Device/glinet_gl-ar300m-common-nor) + DEVICE_TITLE := GL.iNet GL-AR300M-Lite +endef +TARGET_DEVICES += glinet_gl-ar300m-lite + +define Device/glinet_gl-ar300m-nor + $(Device/glinet_gl-ar300m-common-nor) + DEVICE_TITLE := GL.iNet GL-AR300M +endef TARGET_DEVICES += glinet_gl-ar300m-nor define Device/glinet_gl-ar750s -- 2.25.1