From bbab33724d5fbe3fad87d885adc16ed3dc47742f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E9=B9=8F?= Date: Mon, 21 Jan 2019 13:28:32 +0800 Subject: [PATCH] ipq40xx: add support for Qxwlan E2600AC C1 and C2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Qxwlan E2600AC C1 based on IPQ4019 Specifications: SOC: Qualcomm IPQ4019 DRAM: 256 MiB FLASH: 32 MiB Winbond W25Q256 ETH: Qualcomm QCA8075 WLAN: 5G + 5G/2.4G * 2T2R 2.4/5 GHz - QCA4019 hw1.0 (SoC) * 2T2R 5 GHz - QCA4019 hw1.0 (SoC) INPUT: Reset buutton LED: 1x Power ,6 driven by gpio SERIAL: UART (J5) UUSB: USB3.0 POWER: 1x DC jack for main power input (9-24 V) SLOT: Pcie (J25), sim card (J11), SD card (J51) Flash instruction (using U-Boot CLI and tftp server): - Configure PC with static IP 192.168.1.10 and tftp server. - Rename "sysupgrade" filename to "firmware.bin" and place it in tftp server directory. - Connect PC with one of RJ45 ports, power up the board and press "enter" key to access U-Boot CLI. - Use the following command to update the device to OpenWrt: "run lfw". Flash instruction (using U-Boot web-based recovery): - Configure PC with static IP 192.168.1.xxx(2-254)/24. - Connect PC with one of RJ45 ports, press the reset button, power up the board and keep button pressed for around 6-7 seconds, until LEDs start flashing. - Open your browser and enter 192.168.1.1, select "sysupgrade" image and click the upgrade button. Qxwlan E2600AC C2 based on IPQ4019 Specifications: SOC: Qualcomm IPQ4019 DRAM: 256 MiB NOR: 16 MiB Winbond W25Q128 NAND: 128MiB Micron MT29F1G08ABAEAWP ETH: Qualcomm QCA8075 WLAN: 5G + 5G/2.4G * 2T2R 2.4/5 GHz - QCA4019 hw1.0 (SoC) * 2T2R 5 GHz - QCA4019 hw1.0 (SoC) INPUT: Reset buutton LED: 1x Power, 6 driven by gpio SERIAL: UART (J5) USB: USB3.0 POWER: 1x DC jack for main power input (9-24 V) SLOT: Pcie (J25), sim card (J11), SD card (J51) Flash instruction (using U-Boot CLI and tftp server): - Configure PC with static IP 192.168.1.10 and tftp server. - Rename "ubi" filename to "ubi-firmware.bin" and place it in tftp server directory. - Connect PC with one of RJ45 ports, power up the board and press "enter" key to access U-Boot CLI. - Use the following command to update the device to OpenWrt: "run lfw". Flash instruction (using U-Boot web-based recovery): - Configure PC with static IP 192.168.1.xxx(2-254)/24. - Connect PC with one of RJ45 ports, press the reset button, power up the board and keep button pressed for around 6-7 seconds, until LEDs start flashing. - Open your browser and enter 192.168.1.1, select "ubi" image and click the upgrade button. Signed-off-by: 张鹏 [ added rng node. whitespace fixes, ported 02_network, ipq-wifi Makefile, misc dts fixes, trivial message changes ] Signed-off-by: Christian Lamparter --- package/firmware/ipq-wifi/Makefile | 3 +- .../ipq-wifi/board-qxwlan-e2600ac.bin | Bin 0 -> 36464 bytes .../ipq40xx/base-files/etc/board.d/01_leds | 5 + .../ipq40xx/base-files/etc/board.d/02_network | 6 + .../etc/hotplug.d/firmware/11-ath10k-caldata | 28 +- .../base-files/lib/upgrade/platform.sh | 3 +- .../dts/qcom-ipq4019-qxwlan-e2600ac-c1.dts | 80 ++++++ .../dts/qcom-ipq4019-qxwlan-e2600ac-c2.dts | 115 ++++++++ .../boot/dts/qcom-ipq4019-qxwlan-e2600ac.dtsi | 262 +++++++++++++++++ .../dts/qcom-ipq4019-qxwlan-e2600ac-c1.dts | 80 ++++++ .../dts/qcom-ipq4019-qxwlan-e2600ac-c2.dts | 115 ++++++++ .../boot/dts/qcom-ipq4019-qxwlan-e2600ac.dtsi | 266 ++++++++++++++++++ target/linux/ipq40xx/image/Makefile | 25 ++ .../901-arm-boot-add-dts-files.patch | 4 +- .../901-arm-boot-add-dts-files.patch | 4 +- 15 files changed, 980 insertions(+), 16 deletions(-) create mode 100644 package/firmware/ipq-wifi/board-qxwlan-e2600ac.bin create mode 100644 target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac-c1.dts create mode 100644 target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac-c2.dts create mode 100644 target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac.dtsi create mode 100644 target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac-c1.dts create mode 100644 target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac-c2.dts create mode 100644 target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac.dtsi diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index 3ce769afc6..62f54fcd7f 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -18,7 +18,7 @@ endef # Please send a mail with your device-specific board files upstream. # You can find instructions and examples on the linux-wireless wiki: # -ALLWIFIBOARDS:=alfa-network_ap120c-ac asus_map-ac2200 engenius_eap1300 linksys_ea6350v3 +ALLWIFIBOARDS:=alfa-network_ap120c-ac asus_map-ac2200 engenius_eap1300 linksys_ea6350v3 qxwlan_e2600ac ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD)) define Package/ipq-wifi-default @@ -57,5 +57,6 @@ $(eval $(call generate-ipq-wifi-package,alfa-network_ap120c-ac,board-alfa-networ $(eval $(call generate-ipq-wifi-package,asus_map-ac2200,board-map-ac2200.bin,ASUS MAP-AC2200)) $(eval $(call generate-ipq-wifi-package,engenius_eap1300,board-engenius_eap1300.bin,EnGenius EAP1300)) $(eval $(call generate-ipq-wifi-package,linksys_ea6350v3,board-linksys_ea6350v3.bin,Linksys EA6350v3)) +$(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac,board-qxwlan-e2600ac.bin,Qxwlan E2600AC)) $(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE)))) diff --git a/package/firmware/ipq-wifi/board-qxwlan-e2600ac.bin b/package/firmware/ipq-wifi/board-qxwlan-e2600ac.bin new file mode 100644 index 0000000000000000000000000000000000000000..435b465d895d33a2df4c5ca510d225a495de4897 GIT binary patch literal 36464 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 SvE1>Q568KurQ3I$`+ot*{f0IG literal 0 HcmV?d00001 diff --git a/target/linux/ipq40xx/base-files/etc/board.d/01_leds b/target/linux/ipq40xx/base-files/etc/board.d/01_leds index 2fca1cbc9f..d23791eab1 100755 --- a/target/linux/ipq40xx/base-files/etc/board.d/01_leds +++ b/target/linux/ipq40xx/base-files/etc/board.d/01_leds @@ -39,6 +39,11 @@ netgear,ex6150v2) ucidef_set_led_wlan "wlan2g" "WLAN2G" "ex61x0v2:green:router" "phy0tpt" ucidef_set_led_wlan "wlan5g" "WLAN5G" "ex61x0v2:green:client" "phy1tpt" ;; +qxwlan,e2600ac-c1 |\ +qxwlan,e2600ac-c2) + ucidef_set_led_wlan "wlan2g" "WLAN0" "e2600ac:green:wlan0" "phy0tpt" + ucidef_set_led_wlan "wlan5g" "WLAN1" "e2600ac:green:wlan1" "phy1tpt" + ;; zyxel,nbg6617) ucidef_set_led_wlan "wlan2g" "WLAN2G" "${boardname}:green:wlan2G" "phy0tpt" ucidef_set_led_wlan "wlan5g" "WLAN5G" "${boardname}:green:wlan5G" "phy1tpt" diff --git a/target/linux/ipq40xx/base-files/etc/board.d/02_network b/target/linux/ipq40xx/base-files/etc/board.d/02_network index b28f5ef12c..c0466ba8bc 100755 --- a/target/linux/ipq40xx/base-files/etc/board.d/02_network +++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network @@ -48,6 +48,12 @@ ipq40xx_setup_interfaces() ucidef_add_switch "switch0" \ "0u@eth0" "3:lan" "4:lan" ;; + qxwlan,e2600ac-c1 |\ + qxwlan,e2600ac-c2) + ucidef_set_interfaces_lan_wan "eth0" "eth1" + ucidef_add_switch "switch0" \ + "0u@eth0" "3:lan" "4:lan" "0u@eth1" "5:wan" + ;; *) echo "Unsupported hardware. Network interfaces not initialized" ;; diff --git a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index 718224f1e0..44421527d2 100644 --- a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -135,6 +135,14 @@ case "$FIRMWARE" in avm,fritzbox-4040) /usr/bin/fritz_cal_extract -i 1 -s 0x400 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader_config") ;; + compex,wpj428 |\ + engenius,eap1300 |\ + openmesh,a42 |\ + openmesh,a62 |\ + qxwlan,e2600ac-c1 |\ + qxwlan,e2600ac-c2) + ath10kcal_extract "0:ART" 4096 12064 + ;; meraki,mr33) ath10kcal_ubi_extract "ART" 4096 12064 ath10kcal_is_caldata_valid "202f" || ath10kcal_extract "ART" 4096 12064 @@ -145,12 +153,6 @@ case "$FIRMWARE" in ath10kcal_extract "ART" 4096 12064 ath10kcal_patch_mac_crc $(mtd_get_mac_binary dnidata 0) ;; - compex,wpj428 |\ - engenius,eap1300 |\ - openmesh,a42 |\ - openmesh,a62) - ath10kcal_extract "0:ART" 4096 12064 - ;; zyxel,nbg6617 |\ zyxel,wre6606) ath10kcal_extract "ART" 4096 12064 @@ -177,6 +179,14 @@ case "$FIRMWARE" in avm,fritzbox-4040) /usr/bin/fritz_cal_extract -i 1 -s 0x400 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader_config") ;; + compex,wpj428 |\ + engenius,eap1300 |\ + openmesh,a42 |\ + openmesh,a62 |\ + qxwlan,e2600ac-c1 |\ + qxwlan,e2600ac-c2) + ath10kcal_extract "0:ART" 20480 12064 + ;; meraki,mr33) ath10kcal_ubi_extract "ART" 20480 12064 ath10kcal_is_caldata_valid "202f" || ath10kcal_extract "ART" 20480 12064 @@ -187,12 +197,6 @@ case "$FIRMWARE" in ath10kcal_extract "ART" 20480 12064 ath10kcal_patch_mac_crc $(mtd_get_mac_binary dnidata 12) ;; - compex,wpj428 |\ - engenius,eap1300 |\ - openmesh,a42 |\ - openmesh,a62) - ath10kcal_extract "0:ART" 20480 12064 - ;; zyxel,nbg6617 |\ zyxel,wre6606) ath10kcal_extract "ART" 20480 12064 diff --git a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh index b92a2bfe9f..87e27aff8f 100644 --- a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh @@ -47,7 +47,8 @@ zyxel_do_upgrade() { platform_do_upgrade() { case "$(board_name)" in 8dev,jalapeno |\ - alfa-network,ap120c-ac) + alfa-network,ap120c-ac |\ + qxwlan,e2600ac-c2) nand_do_upgrade "$ARGV" ;; asus,map-ac2200) diff --git a/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac-c1.dts b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac-c1.dts new file mode 100644 index 0000000000..d5ee068c9f --- /dev/null +++ b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac-c1.dts @@ -0,0 +1,80 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later OR MIT + * + * Copyright (c) 2018 Peng Zhang + * + */ + +#include "qcom-ipq4019-qxwlan-e2600ac.dtsi" +#include +#include + +/ { + model = "Qxwlan E2600AC c1"; + compatible = "qxwlan,e2600ac-c1", "qcom,ipq4019"; +}; + +&blsp1_spi1 { + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + status = "okay"; + cs-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>; + + flash@0 { + reg = <0>; + compatible = "jedec,spi-nor"; + spi-max-frequency = <24000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "0:SBL1"; + reg = <0x0 0x40000>; + read-only; + }; + partition@40000 { + label = "0:MIBIB"; + reg = <0x40000 0x20000>; + read-only; + }; + partition@60000 { + label = "0:QSEE"; + reg = <0x60000 0x60000>; + read-only; + }; + partition@c0000 { + label = "0:CDT"; + reg = <0xc0000 0x10000>; + read-only; + }; + partition@d0000 { + label = "0:DDRPARAMS"; + reg = <0xd0000 0x10000>; + read-only; + }; + partition@e0000 { + label = "0:APPSBLENV"; + reg = <0xe0000 0x10000>; + read-only; + }; + partition@f0000 { + label = "0:APPSBL"; + reg = <0xf0000 0x80000>; + read-only; + }; + partition@170000 { + label = "0:ART"; + reg = <0x170000 0x10000>; + read-only; + }; + partition@180000 { + compatible = "denx,fit"; + label = "firmware"; + reg = <0x180000 0x1e80000>; + }; + }; + }; +}; + diff --git a/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac-c2.dts b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac-c2.dts new file mode 100644 index 0000000000..09ebde99ca --- /dev/null +++ b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac-c2.dts @@ -0,0 +1,115 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later OR MIT + * + * Copyright (c) 2018 Peng Zhang + * + */ + +#include "qcom-ipq4019-qxwlan-e2600ac.dtsi" +#include +#include + +/ { + model = "Qxwlan E2600AC c2"; + compatible = "qxwlan,e2600ac-c2", "qcom,ipq4019"; +}; + +&blsp1_spi1 { + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + status = "okay"; + cs-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>; + + flash@0 { + reg = <0>; + compatible = "jedec,spi-nor"; + spi-max-frequency = <24000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "0:SBL1"; + reg = <0x0 0x40000>; + read-only; + }; + partition@40000 { + label = "0:MIBIB"; + reg = <0x40000 0x20000>; + read-only; + }; + partition@60000 { + label = "0:QSEE"; + reg = <0x60000 0x60000>; + read-only; + }; + partition@c0000 { + label = "0:CDT"; + reg = <0xc0000 0x10000>; + read-only; + }; + partition@d0000 { + label = "0:DDRPARAMS"; + reg = <0xd0000 0x10000>; + read-only; + }; + partition@e0000 { + label = "0:APPSBLENV"; + reg = <0xe0000 0x10000>; + read-only; + }; + partition@f0000 { + label = "0:APPSBL"; + reg = <0xf0000 0x80000>; + read-only; + }; + partition@170000 { + label = "0:ART"; + reg = <0x170000 0x10000>; + read-only; + }; + }; + }; +}; + +&nand { + pinctrl-0 = <&nand_pins>; + pinctrl-names = "default"; + status = "okay"; + + nand@0 { + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "ubi"; + reg = <0x00000000 0x04000000>; + }; + }; + }; +}; + +&tlmm { + nand_pins: nand-pins { + + pullups { + pins = "gpio53", "gpio58", "gpio59"; + function = "qpic"; + bias-pull-up; + }; + + pulldowns { + pins = "gpio54", "gpio55", "gpio56", + "gpio57", "gpio60", "gpio61", + "gpio62", "gpio63", "gpio64", + "gpio65", "gpio66", "gpio67", + "gpio68", "gpio69"; + function = "qpic"; + bias-pull-down; + }; + }; +}; + diff --git a/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac.dtsi b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac.dtsi new file mode 100644 index 0000000000..527df7ec70 --- /dev/null +++ b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac.dtsi @@ -0,0 +1,262 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later OR MIT + * + * Copyright (c) 2018 Peng Zhang + * + */ + +#include "qcom-ipq4019.dtsi" +#include +#include +#include + +/ { + + model = "Qxwlan E2600AC"; + compatible = "qcom,ipq4019"; + + memory { + device_type = "memory"; + reg = <0x80000000 0x10000000>; /* 256MB */ + }; + + soc { + mdio@90000 { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + }; + + ess-psgmii@98000 { + status = "okay"; + }; + + tcsr@1949000 { + compatible = "qcom,tcsr"; + reg = <0x1949000 0x100>; + qcom,wifi_glb_cfg = ; + }; + + tcsr@194b000 { + /* select hostmode */ + compatible = "qcom,tcsr"; + reg = <0x194b000 0x100>; + qcom,usb-hsphy-mode-select = ; + status = "okay"; + }; + + ess_tcsr@1953000 { + compatible = "qcom,tcsr"; + reg = <0x1953000 0x1000>; + qcom,ess-interface-select = ; + }; + + tcsr@1957000 { + compatible = "qcom,tcsr"; + reg = <0x1957000 0x100>; + qcom,wifi_noc_memtype_m0_m2 = ; + }; + + usb2: usb2@60f8800 { + status = "okay"; + + dwc3@6000000 { + #address-cells = <1>; + #size-cells = <0>; + + usb2_port1: port@1 { + reg = <1>; + #trigger-source-cells = <0>; + }; + }; + }; + + serial@78af000 { + pinctrl-0 = <&serial_0_pins>; + pinctrl-names = "default"; + status = "okay"; + }; + + serial@78b0000 { + pinctrl-0 = <&serial_1_pins>; + pinctrl-names = "default"; + status = "okay"; + }; + + i2c@78b7000 { /* BLSP1 QUP2 */ + pinctrl-0 = <&i2c_0_pins>; + pinctrl-names = "default"; + + status = "okay"; + }; + + usb3: usb3@8af8800 { + status = "okay"; + + dwc3@8a00000 { + #address-cells = <1>; + #size-cells = <0>; + + usb3_port1: port@1 { + reg = <1>; + #trigger-source-cells = <0>; + }; + + usb3_port2: port@2 { + reg = <2>; + #trigger-source-cells = <0>; + }; + }; + }; + + crypto@8e3a000 { + status = "okay"; + }; + + watchdog@b017000 { + status = "okay"; + }; + + ess-switch@c000000 { + status = "okay"; + }; + + edma@c080000 { + status = "okay"; + }; + + leds { + compatible = "gpio-leds"; + + led1 { + label = "e2600ac:green:wlan0"; + gpios = <&tlmm 50 GPIO_ACTIVE_LOW>; + }; + + led2 { + label = "e2600ac:green:wlan1"; + gpios = <&tlmm 36 GPIO_ACTIVE_LOW>; + }; + + led3 { + label = "e2600ac:green:usb"; + gpios = <&tlmm 32 GPIO_ACTIVE_LOW>; + trigger-sources = <&usb2_port1>, <&usb3_port1>, <&usb3_port2>; + linux,default-trigger = "usbport"; + }; + + led4 { + label = "e2600ac:green:ctrl1"; + gpios = <&tlmm 51 GPIO_ACTIVE_LOW>; + }; + + led5 { + label = "e2600ac:green:ctrl2"; + gpios = <&tlmm 30 GPIO_ACTIVE_LOW>; + }; + + led6 { + label = "e2600ac:green:ctrl3"; + gpios = <&tlmm 31 GPIO_ACTIVE_LOW>; + }; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + }; +}; + +&blsp_dma { + status = "okay"; +}; + +&cryptobam { + status = "okay"; +}; + +&qpic_bam { + status = "okay"; +}; + +&tlmm { + i2c_0_pins: i2c-0-pinmux { + mux { + pins = "gpio20", "gpio21"; + function = "blsp_i2c0"; + bias-disable; + }; + }; + + mdio_pins: mdio_pinmux { + mux_1 { + pins = "gpio6"; + function = "mdio"; + bias-pull-up; + }; + mux_2 { + pins = "gpio7"; + function = "mdc"; + bias-pull-up; + }; + }; + + serial_0_pins: serial0-pinmux { + mux { + pins = "gpio16", "gpio17"; + function = "blsp_uart0"; + bias-disable; + }; + }; + + serial_1_pins: serial1_pinmux { + mux { + pins = "gpio8", "gpio9"; + function = "blsp_uart1"; + bias-disable; + }; + }; + + spi_0_pins: spi_0_pinmux { + pinmux { + function = "blsp_spi0"; + pins = "gpio13", "gpio14", "gpio15"; + drive-strength = <12>; + bias-disable; + }; + pinmux_cs { + function = "gpio"; + pins = "gpio12"; + drive-strength = <2>; + bias-disable; + output-high; + }; + }; +}; + +&usb3_ss_phy { + status = "okay"; +}; + +&usb3_hs_phy { + status = "okay"; +}; + +&usb2_hs_phy { + status = "okay"; +}; + +&wifi0 { + status = "okay"; + qcom,ath10k-calibration-variant = "Qxwlan-E2600AC"; +}; + +&wifi1 { + status = "okay"; + qcom,ath10k-calibration-variant = "Qxwlan-E2600AC"; +}; diff --git a/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac-c1.dts b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac-c1.dts new file mode 100644 index 0000000000..ab0ec76f16 --- /dev/null +++ b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac-c1.dts @@ -0,0 +1,80 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later OR MIT + * + * Copyright (c) 2018 Peng Zhang + * + */ + +#include "qcom-ipq4019-qxwlan-e2600ac.dtsi" +#include +#include + +/ { + model = "Qxwlan E2600AC c1"; + compatible = "qxwlan,e2600ac-c1"; +}; + +&blsp1_spi1 { + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + status = "okay"; + cs-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>; + + flash@0 { + reg = <0>; + compatible = "jedec,spi-nor"; + spi-max-frequency = <24000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "0:SBL1"; + reg = <0x0 0x40000>; + read-only; + }; + partition@40000 { + label = "0:MIBIB"; + reg = <0x40000 0x20000>; + read-only; + }; + partition@60000 { + label = "0:QSEE"; + reg = <0x60000 0x60000>; + read-only; + }; + partition@c0000 { + label = "0:CDT"; + reg = <0xc0000 0x10000>; + read-only; + }; + partition@d0000 { + label = "0:DDRPARAMS"; + reg = <0xd0000 0x10000>; + read-only; + }; + partition@e0000 { + label = "0:APPSBLENV"; + reg = <0xe0000 0x10000>; + read-only; + }; + partition@f0000 { + label = "0:APPSBL"; + reg = <0xf0000 0x80000>; + read-only; + }; + partition@170000 { + label = "0:ART"; + reg = <0x170000 0x10000>; + read-only; + }; + partition@180000 { + compatible = "denx,fit"; + label = "firmware"; + reg = <0x180000 0x1e80000>; + }; + }; + }; +}; + diff --git a/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac-c2.dts b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac-c2.dts new file mode 100644 index 0000000000..1c6e859951 --- /dev/null +++ b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac-c2.dts @@ -0,0 +1,115 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later OR MIT + * + * Copyright (c) 2018 Peng Zhang + * + */ + +#include "qcom-ipq4019-qxwlan-e2600ac.dtsi" +#include +#include + +/ { + model = "Qxwlan E2600AC c2"; + compatible = "qxwlan,e2600ac-c2"; +}; + +&blsp1_spi1 { + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + status = "okay"; + cs-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>; + + flash@0 { + reg = <0>; + compatible = "jedec,spi-nor"; + spi-max-frequency = <24000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "0:SBL1"; + reg = <0x0 0x40000>; + read-only; + }; + partition@40000 { + label = "0:MIBIB"; + reg = <0x40000 0x20000>; + read-only; + }; + partition@60000 { + label = "0:QSEE"; + reg = <0x60000 0x60000>; + read-only; + }; + partition@c0000 { + label = "0:CDT"; + reg = <0xc0000 0x10000>; + read-only; + }; + partition@d0000 { + label = "0:DDRPARAMS"; + reg = <0xd0000 0x10000>; + read-only; + }; + partition@e0000 { + label = "0:APPSBLENV"; + reg = <0xe0000 0x10000>; + read-only; + }; + partition@f0000 { + label = "0:APPSBL"; + reg = <0xf0000 0x80000>; + read-only; + }; + partition@170000 { + label = "0:ART"; + reg = <0x170000 0x10000>; + read-only; + }; + }; + }; +}; + +&nand { + pinctrl-0 = <&nand_pins>; + pinctrl-names = "default"; + status = "okay"; + + nand@0 { + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "ubi"; + reg = <0x00000000 0x04000000>; + }; + }; + }; +}; + +&tlmm { + nand_pins: nand-pins { + + pullups { + pins = "gpio53", "gpio58", "gpio59"; + function = "qpic"; + bias-pull-up; + }; + + pulldowns { + pins = "gpio54", "gpio55", "gpio56", + "gpio57", "gpio60", "gpio61", + "gpio62", "gpio63", "gpio64", + "gpio65", "gpio66", "gpio67", + "gpio68", "gpio69"; + function = "qpic"; + bias-pull-down; + }; + }; +}; + diff --git a/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac.dtsi b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac.dtsi new file mode 100644 index 0000000000..f4af2ba25f --- /dev/null +++ b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-qxwlan-e2600ac.dtsi @@ -0,0 +1,266 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later OR MIT + * + * Copyright (c) 2018 Peng Zhang + * + */ + +#include "qcom-ipq4019.dtsi" +#include +#include +#include + +/ { + + model = "Qxwlan E2600AC"; + compatible = "qcom,ipq4019"; + + memory { + device_type = "memory"; + reg = <0x80000000 0x10000000>; /* 256MB */ + }; + + soc { + rng@22000 { + status = "okay"; + }; + + mdio@90000 { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + }; + + ess-psgmii@98000 { + status = "okay"; + }; + + tcsr@1949000 { + compatible = "qcom,tcsr"; + reg = <0x1949000 0x100>; + qcom,wifi_glb_cfg = ; + }; + + tcsr@194b000 { + /* select hostmode */ + compatible = "qcom,tcsr"; + reg = <0x194b000 0x100>; + qcom,usb-hsphy-mode-select = ; + status = "okay"; + }; + + ess_tcsr@1953000 { + compatible = "qcom,tcsr"; + reg = <0x1953000 0x1000>; + qcom,ess-interface-select = ; + }; + + tcsr@1957000 { + compatible = "qcom,tcsr"; + reg = <0x1957000 0x100>; + qcom,wifi_noc_memtype_m0_m2 = ; + }; + + usb2: usb2@60f8800 { + status = "okay"; + + dwc3@6000000 { + #address-cells = <1>; + #size-cells = <0>; + + usb2_port1: port@1 { + reg = <1>; + #trigger-source-cells = <0>; + }; + }; + }; + + serial@78af000 { + pinctrl-0 = <&serial_0_pins>; + pinctrl-names = "default"; + status = "okay"; + }; + + serial@78b0000 { + pinctrl-0 = <&serial_1_pins>; + pinctrl-names = "default"; + status = "okay"; + }; + + i2c@78b7000 { /* BLSP1 QUP2 */ + pinctrl-0 = <&i2c_0_pins>; + pinctrl-names = "default"; + + status = "okay"; + }; + + usb3: usb3@8af8800 { + status = "okay"; + + dwc3@8a00000 { + #address-cells = <1>; + #size-cells = <0>; + + usb3_port1: port@1 { + reg = <1>; + #trigger-source-cells = <0>; + }; + + usb3_port2: port@2 { + reg = <2>; + #trigger-source-cells = <0>; + }; + }; + }; + + crypto@8e3a000 { + status = "okay"; + }; + + watchdog@b017000 { + status = "okay"; + }; + + ess-switch@c000000 { + status = "okay"; + }; + + edma@c080000 { + status = "okay"; + }; + + leds { + compatible = "gpio-leds"; + + led1 { + label = "e2600ac:green:wlan0"; + gpios = <&tlmm 50 GPIO_ACTIVE_LOW>; + }; + + led2 { + label = "e2600ac:green:wlan1"; + gpios = <&tlmm 36 GPIO_ACTIVE_LOW>; + }; + + led3 { + label = "e2600ac:green:usb"; + gpios = <&tlmm 32 GPIO_ACTIVE_LOW>; + trigger-sources = <&usb2_port1>, <&usb3_port1>, <&usb3_port2>; + linux,default-trigger = "usbport"; + }; + + led4 { + label = "e2600ac:green:ctrl1"; + gpios = <&tlmm 51 GPIO_ACTIVE_LOW>; + }; + + led5 { + label = "e2600ac:green:ctrl2"; + gpios = <&tlmm 30 GPIO_ACTIVE_LOW>; + }; + + led6 { + label = "e2600ac:green:ctrl3"; + gpios = <&tlmm 31 GPIO_ACTIVE_LOW>; + }; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + }; +}; + +&blsp_dma { + status = "okay"; +}; + +&cryptobam { + status = "okay"; +}; + +&qpic_bam { + status = "okay"; +}; + +&tlmm { + i2c_0_pins: i2c-0-pinmux { + mux { + pins = "gpio20", "gpio21"; + function = "blsp_i2c0"; + bias-disable; + }; + }; + + mdio_pins: mdio_pinmux { + mux_1 { + pins = "gpio6"; + function = "mdio"; + bias-pull-up; + }; + mux_2 { + pins = "gpio7"; + function = "mdc"; + bias-pull-up; + }; + }; + + serial_0_pins: serial0-pinmux { + mux { + pins = "gpio16", "gpio17"; + function = "blsp_uart0"; + bias-disable; + }; + }; + + serial_1_pins: serial1_pinmux { + mux { + pins = "gpio8", "gpio9"; + function = "blsp_uart1"; + bias-disable; + }; + }; + + spi_0_pins: spi_0_pinmux { + pinmux { + function = "blsp_spi0"; + pins = "gpio13", "gpio14", "gpio15"; + drive-strength = <12>; + bias-disable; + }; + pinmux_cs { + function = "gpio"; + pins = "gpio12"; + drive-strength = <2>; + bias-disable; + output-high; + }; + }; +}; + +&usb3_ss_phy { + status = "okay"; +}; + +&usb3_hs_phy { + status = "okay"; +}; + +&usb2_hs_phy { + status = "okay"; +}; + +&wifi0 { + status = "okay"; + qcom,ath10k-calibration-variant = "Qxwlan-E2600AC"; +}; + +&wifi1 { + status = "okay"; + qcom,ath10k-calibration-variant = "Qxwlan-E2600AC"; +}; diff --git a/target/linux/ipq40xx/image/Makefile b/target/linux/ipq40xx/image/Makefile index f7e7ba3d0f..22836be1fb 100644 --- a/target/linux/ipq40xx/image/Makefile +++ b/target/linux/ipq40xx/image/Makefile @@ -285,6 +285,31 @@ define Device/qcom_ap-dk04.1-c1 endef TARGET_DEVICES += qcom_ap-dk04.1-c1 +define Device/qxwlan_e2600ac-c1 + $(call Device/FitImage) + DEVICE_TITLE := Qxwlan E2600AC-C1 (nor flash) + BOARD_NAME := e2600ac-c1 + DEVICE_DTS := qcom-ipq4019-qxwlan-e2600ac-c1 + KERNEL_SIZE := 4096k + IMAGE_SIZE := 31232k + IMAGES := sysupgrade.bin + IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata + DEVICE_PACKAGES := ipq-wifi-qxwlan_e2600ac +endef +TARGET_DEVICES += qxwlan_e2600ac-c1 + +define Device/qxwlan_e2600ac-c2 + $(call Device/FitImage) + $(call Device/UbiFit) + DEVICE_DTS := qcom-ipq4019-qxwlan-e2600ac-c2 + KERNEL_INSTALL := 1 + BLOCKSIZE := 128k + PAGESIZE := 2048 + DEVICE_TITLE := Qxwlan E2600AC-C2 (nornand flash) + DEVICE_PACKAGES := ipq-wifi-qxwlan_e2600ac +endef +TARGET_DEVICES += qxwlan_e2600ac-c2 + define Device/zyxel_nbg6617 $(call Device/FitImageLzma) DEVICE_DTS := qcom-ipq4018-nbg6617 diff --git a/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch b/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch index 551ac6f109..5aeb3963f7 100644 --- a/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch +++ b/target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch @@ -10,7 +10,7 @@ Signed-off-by: John Crispin --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -697,7 +697,24 @@ dtb-$(CONFIG_ARCH_QCOM) += \ +@@ -697,7 +697,26 @@ dtb-$(CONFIG_ARCH_QCOM) += \ qcom-apq8074-dragonboard.dtb \ qcom-apq8084-ifc6540.dtb \ qcom-apq8084-mtp.dtb \ @@ -29,6 +29,8 @@ Signed-off-by: John Crispin + qcom-ipq4019-a62.dtb \ + qcom-ipq4019-ap.dk04.1-c1.dtb \ + qcom-ipq4019-map-ac2200.dtb \ ++ qcom-ipq4019-qxwlan-e2600ac-c1.dtb \ ++ qcom-ipq4019-qxwlan-e2600ac-c2.dtb \ + qcom-ipq4028-wpj428.dtb \ + qcom-ipq4029-gl-b1300.dtb \ + qcom-ipq4029-mr33.dtb \ diff --git a/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch b/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch index 0e27eeab65..bceadc50e8 100644 --- a/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch +++ b/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch @@ -10,7 +10,7 @@ Signed-off-by: John Crispin --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -785,11 +785,27 @@ dtb-$(CONFIG_ARCH_QCOM) += \ +@@ -785,11 +785,29 @@ dtb-$(CONFIG_ARCH_QCOM) += \ qcom-apq8074-dragonboard.dtb \ qcom-apq8084-ifc6540.dtb \ qcom-apq8084-mtp.dtb \ @@ -32,6 +32,8 @@ Signed-off-by: John Crispin qcom-ipq4019-ap.dk07.1-c2.dtb \ + qcom-ipq4019-a62.dtb \ + qcom-ipq4019-map-ac2200.dtb \ ++ qcom-ipq4019-qxwlan-e2600ac-c1.dtb \ ++ qcom-ipq4019-qxwlan-e2600ac-c2.dtb \ + qcom-ipq4028-wpj428.dtb \ + qcom-ipq4029-gl-b1300.dtb \ + qcom-ipq4029-mr33.dtb \