diff mbox series

[OpenWrt-Devel,19.07] ath79: add support for gl-ar750

Message ID 20191213195046.13358-1-devel-sven@geroedel.de
State Rejected
Headers show
Series [OpenWrt-Devel,19.07] ath79: add support for gl-ar750 | expand

Commit Message

Sven Roederer Dec. 13, 2019, 7:50 p.m. UTC
From: Luochongjun <luochongjun@gl-inet.com>

This patch supports gl-ar750, which was previously supported by ar71xx.

Specification:
- SOC: QCA9531 (650MHz)
- Flash: 16 MiB (W25Q128FVSG)
- RAM: 128 MiB DDR2
- Ethernet: 10/100: 2xLAN + 10/100: 1xWAN
- Wireless: 2.4GHz (bgn) and 5GHz (ac)
- USB: 1x USB 2.0 port
- Switch: 1x switch
- Button: 1x reset button
- LED: 3x LEDS (white)

Flash instruction:
Support for sysupgrade directive upgrades, as well as luci upgrades.

Signed-off-by: Luochongjun <luochongjun@gl-inet.com>
(cherry picked from commit 921675a2d148330a7ec44f10ea4d583b8d7b5a44)
[backported to 19.07]
Signed-off-by: Sven Roederer <devel-sven@geroedel.de>
---
 .../ath79/base-files/etc/board.d/02_network   |   5 +
 .../etc/hotplug.d/firmware/11-ath10k-caldata  |   1 +
 .../ath79/dts/qca9531_glinet_gl-ar750.dts     | 142 ++++++++++++++++++
 target/linux/ath79/image/generic.mk           |   9 ++
 4 files changed, 157 insertions(+)
 create mode 100644 target/linux/ath79/dts/qca9531_glinet_gl-ar750.dts

Comments

Paul Fertser Dec. 13, 2019, 8:07 p.m. UTC | #1
Hello,

On Fri, Dec 13, 2019 at 08:50:46PM +0100, Sven Roederer wrote:
>  .../ath79/base-files/etc/board.d/02_network   |   5 +
>  .../etc/hotplug.d/firmware/11-ath10k-caldata  |   1 +
>  .../ath79/dts/qca9531_glinet_gl-ar750.dts     | 142 ++++++++++++++++++
>  target/linux/ath79/image/generic.mk           |   9 ++

Is this not missing the additions to board.d/01_leds ?
Adrian Schmutzler Dec. 13, 2019, 8:21 p.m. UTC | #2
Hi Sven,

> -----Original Message-----
> From: openwrt-devel [mailto:openwrt-devel-bounces@lists.openwrt.org] On
> Behalf Of Sven Roederer
> Sent: Freitag, 13. Dezember 2019 20:51
> To: openwrt-devel@lists.openwrt.org
> Cc: Luochongjun <luochongjun@gl-inet.com>
> Subject: [OpenWrt-Devel] [PATCH 19.07] ath79: add support for gl-ar750

so, the primary question remains unanswered: Why should exactly this device be backported (out of the big set of devices only in master)?

Best

Adrian
Sven Roederer Dec. 13, 2019, 10:46 p.m. UTC | #3
Adrian,

it's just that I've this patch around for some time, as I use this device on 
19.07. So just sharing this patch ...

Sven

Am Freitag, 13. Dezember 2019, 21:21:14 CET schrieb Adrian Schmutzler:
> Hi Sven,
> 
> so, the primary question remains unanswered: Why should exactly this device
> be backported (out of the big set of devices only in master)?
>
Sven Roederer Dec. 13, 2019, 10:51 p.m. UTC | #4
Am Freitag, 13. Dezember 2019, 21:07:23 CET schrieb Paul Fertser:
> Hello,
> 
> On Fri, Dec 13, 2019 at 08:50:46PM +0100, Sven Roederer wrote:
> >  .../ath79/base-files/etc/board.d/02_network   |   5 +
> >  .../etc/hotplug.d/firmware/11-ath10k-caldata  |   1 +
> >  .../ath79/dts/qca9531_glinet_gl-ar750.dts     | 142 ++++++++++++++++++
> >  target/linux/ath79/image/generic.mk           |   9 ++
> 
> Is this not missing the additions to board.d/01_leds ?

Paul,

good point. But also on master seems to be no entry for this board in 
"01_leds". So I assume the default case fits  for it.

Sven
Paul Fertser Dec. 13, 2019, 11:10 p.m. UTC | #5
Hey Sven,

On Fri, Dec 13, 2019 at 11:51:14PM +0100, Sven Roederer wrote:
> good point. But also on master seems to be no entry for this board in 
> "01_leds". So I assume the default case fits  for it.

I looked several times through the config and was unable to see the
default case. Apparently, you count on trigger being set in DTS, and
that's ok for wlan and power, I see. It's just that I checked ar71xx
and it had those entries in uci-defaults but since triggers can be set
from DTS now that's not needed, got it.

Also, if you're going to improve the patch, I've noticed you have no
DTS designations for how the LEDs are to be used (aliases for led-boot
etc) and no label_mac assignment. Not sure if that's important.
Paul Fertser Dec. 14, 2019, 11:12 a.m. UTC | #6
Hello,

Some follow-up thoughts, could someone clarify please?

On Sat, Dec 14, 2019 at 02:10:28AM +0300, Paul Fertser wrote:
> On Fri, Dec 13, 2019 at 11:51:14PM +0100, Sven Roederer wrote:
> > good point. But also on master seems to be no entry for this board in 
> > "01_leds". So I assume the default case fits  for it.
> 
> I looked several times through the config and was unable to see the
> default case. Apparently, you count on trigger being set in DTS, and
> that's ok for wlan and power, I see. It's just that I checked ar71xx
> and it had those entries in uci-defaults but since triggers can be set
> from DTS now that's not needed, got it.

So if default trigger can be set in DTS, then it should be set there,
I can see the rationale. But in this case it's not added to the system
config and so repurpusing it for other tasks (or just disabling the
LED) is not straight-forward anymore, as one would need to add it
manually.

Should a uci-defaults script be added to base-files that would
populate the system config with all the LEDs present in the DT but not
added by board config?
Paul Fertser Dec. 14, 2019, 3:09 p.m. UTC | #7
On Sat, Dec 14, 2019 at 02:12:55PM +0300, Paul Fertser wrote:
> Should a uci-defaults script be added to base-files that would
> populate the system config with all the LEDs present in the DT but not
> added by board config?

cd /sys/class/leds

for i in *; do
	uci show system | grep -q sysfs=\'$i\' || {
		l=${i#*:}
		f=${l#*:}
		c=${l%:*}
		echo ucidef_set_led_default \"$f-$c\" \"$f \($c\)\" \"$i\" \"0\"
	}
done

On my DIR-615-E4 this gives:

ucidef_set_led_default "power-amber" "power (amber)" "d-link:amber:power" "0"
ucidef_set_led_default "wan-amber" "wan (amber)" "d-link:amber:wan" "0"
ucidef_set_led_default "wps-blue" "wps (blue)" "d-link:blue:wps" "0"
ucidef_set_led_default "power-green" "power (green)" "d-link:green:power" "0"
ucidef_set_led_default "wlan-green" "wlan (green)" "d-link:green:wlan" "0"

Does this make sense?
Sven Roederer Dec. 19, 2019, 11:16 p.m. UTC | #8
Paul,

Am Samstag, 14. Dezember 2019, 00:10:28 CET schrieb Paul Fertser:
> Also, if you're going to improve the patch, I've noticed you have no
> DTS designations for how the LEDs are to be used (aliases for led-boot
> etc) and no label_mac assignment. Not sure if that's important.

As the router is in a hidden location, I never checked the Leds ... Probably I 
should.
But at least the board is running stable for me.

Sven
Adrian Schmutzler Dec. 27, 2019, 8:07 p.m. UTC | #9
Hi Sven,

> -----Original Message-----
> From: openwrt-devel [mailto:openwrt-devel-bounces@lists.openwrt.org]
> On Behalf Of Sven Roederer
> Sent: Freitag, 13. Dezember 2019 20:51
> To: openwrt-devel@lists.openwrt.org
> Cc: Luochongjun <luochongjun@gl-inet.com>
> Subject: [OpenWrt-Devel] [PATCH 19.07] ath79: add support for gl-ar750

thanks for your work, but for the reasons I wrote earlier I do not think this should be backported.

Since nobody else volunteered to do it in the meantime, I will mark this patch as rejected.

Please do not feel repelled by that, and continue to contribute to OpenWrt!

Best

Adrian
Sven Roederer Dec. 27, 2019, 9:11 p.m. UTC | #10
Hi Adrian,

On 2019-12-27 21:07, mail@adrianschmutzler.de wrote:
> 
> thanks for your work, but for the reasons I wrote earlier I do not
> think this should be backported.
> 

Just for reference: I assume you are referencing to 
https://github.com/openwrt/openwrt/pull/2574#issuecomment-559460188,
which is quite the same situation.

> 
> Please do not feel repelled by that, and continue to contribute to 
> OpenWrt!
> 

I fully understand the decision and looking forward to the 19.07 
release.

Sven
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 82c1e09981..41c8e37e31 100755
--- a/target/linux/ath79/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/base-files/etc/board.d/02_network
@@ -128,6 +128,11 @@  ath79_setup_interfaces()
 	etactica,eg200)
 		ucidef_set_interface_lan "eth0" "dhcp"
 		;;
+	glinet,gl-ar750)
+		ucidef_set_interface_wan "eth1"
+		ucidef_add_switch "switch0" \
+			"0@eth0" "1:lan" "2:lan"
+		;;
 	glinet,gl-ar750s)
 		ucidef_add_switch "switch0" \
 			"0@eth0" "2:lan:2" "3:lan:1" "1:wan"
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 d1f529fde5..cf28c474b1 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
@@ -117,6 +117,7 @@  case "$FIRMWARE" in
 		ath10kcal_extract "art" 20480 2116
 		ath10kcal_patch_mac $(macaddr_add $(cat /sys/class/net/eth0/address) +1)
 		;;
+	glinet,gl-ar750|\
 	glinet,gl-ar750s)
 		ath10kcal_extract "art" 20480 2116
 		ath10kcal_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0) +1)
diff --git a/target/linux/ath79/dts/qca9531_glinet_gl-ar750.dts b/target/linux/ath79/dts/qca9531_glinet_gl-ar750.dts
new file mode 100644
index 0000000000..54aad320f6
--- /dev/null
+++ b/target/linux/ath79/dts/qca9531_glinet_gl-ar750.dts
@@ -0,0 +1,142 @@ 
+// 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 "qca953x.dtsi"
+
+/ {
+	compatible = "glinet,gl-ar750", "qca,qca9531";
+	model = "GL.iNet GL-AR750";
+
+	keys {
+		compatible = "gpio-keys";
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&jtag_disable_pins>;
+
+		reset {
+			label = "reset";
+			linux,code = <KEY_RESTART>;
+			gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+		};
+
+		mode {
+			label = "mode";
+			linux,code = <BTN_0>;
+			gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		power {
+			label = "gl-ar750:white:power";
+			gpios = <&gpio 12 GPIO_ACTIVE_LOW>;
+			default-state = "on";
+		};
+
+		wlan2g {
+			label = "gl-ar750:white:wlan2g";
+			gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy1tpt";
+		};
+
+		wlan5g {
+			label = "gl-ar750:white:wlan5g";
+			gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "phy0tpt";
+		};
+
+	};
+
+	i2c {
+		compatible = "i2c-gpio";
+
+		sda-gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+		scl-gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+	};
+
+
+};
+
+&pcie0 {
+	status = "okay";
+
+	wifi@0,0 {
+		compatible = "qcom,ath10k";
+		reg = <0 0 0 0 0>;
+		device_type = "pci";
+	};
+};
+
+&uart {
+	status = "okay";
+};
+
+&usb0 {
+	status = "okay";
+};
+
+&usb_phy {
+	status = "okay";
+};
+
+&spi {
+	status = "okay";
+	num-cs = <0>;
+
+	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 0x040000>;
+				read-only;
+			};
+
+			partition@40000 {
+				label = "u-boot-env";
+				reg = <0x040000 0x010000>;
+				read-only;
+			};
+
+			art: partition@50000 {
+				label = "art";
+				reg = <0x050000 0x010000>;
+				read-only;
+			};
+
+			partition@60000 {
+				compatible = "denx,uimage";
+				label = "firmware";
+				reg = <0x060000 0xfa0000>;
+			};
+		};
+	};
+};
+
+&eth0 {
+	status = "okay";
+	mtd-mac-address = <&art 0x0>;
+	phy-handle = <&swphy4>;
+};
+
+&eth1 {
+	mtd-mac-address = <&art 0x0>;
+	mtd-mac-address-increment = <1>;
+};
+
+&wmac {
+	status = "okay";
+	mtd-cal-data = <&art 0x1000>;
+};
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index 625c2bdd05..f8db5fca6f 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -397,6 +397,15 @@  define Device/glinet_gl-ar300m-nor
 endef
 #TARGET_DEVICES += glinet_gl-ar300m-nor
 
+define Device/glinet_gl-ar750
+  ATH_SOC := qca9531
+  DEVICE_TITLE := GL.iNet GL-AR750
+  DEVICE_PACKAGES := kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca9887-ct
+  IMAGE_SIZE := 16000k
+  SUPPORTED_DEVICES += gl-ar750
+endef
+TARGET_DEVICES += glinet_gl-ar750
+
 define Device/glinet_gl-ar750s
   ATH_SOC := qca9563
   DEVICE_TITLE := GL.iNet GL-AR750S