Message ID | 1561543343-2930-1-git-send-email-luochongjun@gl-inet.com |
---|---|
State | Changes Requested |
Headers | show |
Series | [OpenWrt-Devel] ath79: add support for gl-ar750 | expand |
Am Mittwoch, 26. Juni 2019, 12:02:23 CEST schrieb Luochongjun: > 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. > Thanks for porting this device. Based on your previous patch I built an image and flashed it. Two thing to mention: * probalby you can add a line "SUPPORTED_DEVICES += gl-ar750" to the Makefile, to make sysupgrade accept the image without "-F" switch on ar71xx * the device has "printed MAC-address from case" + 1 for the LAN-ports. Not sure what is used with vendor FW. Sven
Hi! Some comments inline: On Wed, Jun 26, 2019 at 6:27 PM Luochongjun <luochongjun@gl-inet.com> wrote: > > 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> > --- > .../etc/hotplug.d/firmware/11-ath10k-caldata | 1 + > target/linux/ath79/dts/qca9531_glinet_gl-ar750.dts | 151 +++++++++++++++++++++ > target/linux/ath79/image/generic.mk | 8 ++ > 3 files changed, 160 insertions(+) > create mode 100644 target/linux/ath79/dts/qca9531_glinet_gl-ar750.dts > > 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 8f0ea1d..6a9cb1c 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 > @@ -116,6 +116,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 0000000..c20cdf5 > --- /dev/null > +++ b/target/linux/ath79/dts/qca9531_glinet_gl-ar750.dts > @@ -0,0 +1,151 @@ > +// 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"; > + > + poll-interval = <20>; "poll-interval" is for "gpio-keys-polled" and it specifies how often it should check whether gpio value changed. You don't need this for interrupt-based "gpio-keys" driver. > + 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 { > + #address-cells = <1>; > + #size-cells = <0>; > + status = "okay"; > + > + hub_port: port@1 { > + reg = <1>; > + #trigger-source-cells = <0>; > + }; > +}; > + > +&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>; > + }; > + }; > + }; > +}; > + > +ð0 { > + status = "okay"; > + mtd-mac-address = <&art 0x0>; > + phy-handle = <&swphy4>; > +}; > + > +ð1 { > + mtd-mac-address = <&art 0x0>; > + mtd-mac-address-increment = <1>; > +}; > + > +&wmac { > + status = "okay"; > + mtd-cal-data = <&art 0x1000>; > + mtd-mac-address = <&art 0x1002>; This is just the location of default mac address in art. mtd-mac-address is only needed if the one in art is incorrect and you need to specify a mac address stored elsewhere. This line can be dropped. > +}; > diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk > index d5f67b8..033cfa3 100644 > --- a/target/linux/ath79/image/generic.mk > +++ b/target/linux/ath79/image/generic.mk > @@ -389,6 +389,14 @@ 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 There's a recent splitting of DEVICE_TITLE [0] You'd need to split this DEVICE_TITLE into DEVICE_VENDOR and DEVICE_MODEL [0] https://git.openwrt.org/?p=openwrt/openwrt.git;a=commitdiff;h=8c3dbaf8b49233e275b2dce4e30dc0a2bf8c86c5 > + DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca9887-ct kmod-usb2 depends on kmod-usb-core and kmod-usb-core can be dropped here. > + IMAGE_SIZE := 16000k > +endef > +TARGET_DEVICES += glinet_gl-ar750 > + > define Device/glinet_gl-ar750s > ATH_SOC := qca9563 > DEVICE_TITLE := GL.iNet GL-AR750S Regards, Chuanhong Guo
On Wed, 26 Jun 2019 at 12:27, Luochongjun <luochongjun@gl-inet.com> wrote: > 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> Isn't your name misspelled there (a missing space)?
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 8f0ea1d..6a9cb1c 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 @@ -116,6 +116,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 0000000..c20cdf5 --- /dev/null +++ b/target/linux/ath79/dts/qca9531_glinet_gl-ar750.dts @@ -0,0 +1,151 @@ +// 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"; + + poll-interval = <20>; + 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 { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + hub_port: port@1 { + reg = <1>; + #trigger-source-cells = <0>; + }; +}; + +&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>; + }; + }; + }; +}; + +ð0 { + status = "okay"; + mtd-mac-address = <&art 0x0>; + phy-handle = <&swphy4>; +}; + +ð1 { + mtd-mac-address = <&art 0x0>; + mtd-mac-address-increment = <1>; +}; + +&wmac { + status = "okay"; + mtd-cal-data = <&art 0x1000>; + mtd-mac-address = <&art 0x1002>; +}; diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk index d5f67b8..033cfa3 100644 --- a/target/linux/ath79/image/generic.mk +++ b/target/linux/ath79/image/generic.mk @@ -389,6 +389,14 @@ 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-usb-core kmod-usb2 kmod-ath10k-ct ath10k-firmware-qca9887-ct + IMAGE_SIZE := 16000k +endef +TARGET_DEVICES += glinet_gl-ar750 + define Device/glinet_gl-ar750s ATH_SOC := qca9563 DEVICE_TITLE := GL.iNet GL-AR750S
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> --- .../etc/hotplug.d/firmware/11-ath10k-caldata | 1 + target/linux/ath79/dts/qca9531_glinet_gl-ar750.dts | 151 +++++++++++++++++++++ target/linux/ath79/image/generic.mk | 8 ++ 3 files changed, 160 insertions(+) create mode 100644 target/linux/ath79/dts/qca9531_glinet_gl-ar750.dts