From 37fdc62b95ab32d0264ea1c595124f0b53087b2b Mon Sep 17 00:00:00 2001 From: JiaY-shi Date: Wed, 6 Mar 2024 08:58:35 +0800 Subject: [PATCH] qualcommax: ipq60xx: add glinet gl-axt1800 support Hardware: * SoC: Qcom IPQ6000 * RAM: DDR3L 512MB * Flash: 128MB Nand * Ethernet: 3x GbE * WLAN: 2x2 2.4GHz 600Mbps + 2x2 5GHz 1200Mbps (builtin + builtin) * LEDS: 1x white, 1x blue * Buttons: 1x switch, 1x reset * USB: 1x 3.0(Type-A) * SD: 1x microSD * PWM Fan * Power: 12VDC, 2A * UART (4-pin, 2.54 mm pitch) pad on PCB * JTAG (8-pin, 2.54 mm pitch) pad on PCB Installation: * From stock firmware to openwrt firmware: flash the `openwrt-qualcommax-ipq60xx-glinet_gl-axt1800-squashfs-factory.ubi` file via uboot * Upgrade "openwrt-qualcommax-ipq60xx-glinet_gl-axt1800-squashfs-sysupgrade.bin" if you are already in openwrt. * From openwrt firmware to official: directly flash the official firmware via uboot Signed-off-by: shi jiayang --- .../uboot-envtools/files/qualcommax_ipq60xx | 1 + package/firmware/ipq-wifi/Makefile | 2 + .../boot/dts/qcom/ipq6000-gl-axt1800.dts | 115 ++++++++++++++++++ target/linux/qualcommax/image/ipq60xx.mk | 13 ++ .../ipq60xx/base-files/etc/board.d/02_network | 3 + .../etc/hotplug.d/firmware/11-ath11-caldata | 1 + .../base-files/lib/upgrade/platform.sh | 1 + 7 files changed, 136 insertions(+) create mode 100644 target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6000-gl-axt1800.dts diff --git a/package/boot/uboot-envtools/files/qualcommax_ipq60xx b/package/boot/uboot-envtools/files/qualcommax_ipq60xx index 3caab3806c10f5..b75caace96cc27 100644 --- a/package/boot/uboot-envtools/files/qualcommax_ipq60xx +++ b/package/boot/uboot-envtools/files/qualcommax_ipq60xx @@ -15,6 +15,7 @@ case "$board" in ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x10000" "0x10000" ;; glinet,gl-ax1800|\ +glinet,gl-axt1800|\ netgear,wax214) idx="$(find_mtd_index 0:appsblenv)" [ -n "$idx" ] && \ diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index f127e51d7e5973..09c65ad0bf1ae8 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -37,6 +37,7 @@ ALLWIFIBOARDS:= \ edgecore_eap102 \ edimax_cax1800 \ glinet_gl-ax1800 \ + glinet_gl-axt1800 \ linksys_mx4200 \ linksys_mx5300 \ netgear_lbr20 \ @@ -155,6 +156,7 @@ $(eval $(call generate-ipq-wifi-package,dynalink_dl-wrx36,Dynalink DL-WRX36)) $(eval $(call generate-ipq-wifi-package,edgecore_eap102,Edgecore EAP102)) $(eval $(call generate-ipq-wifi-package,edimax_cax1800,Edimax CAX1800)) $(eval $(call generate-ipq-wifi-package,glinet_gl-ax1800,GL.iNet GL-AX1800)) +$(eval $(call generate-ipq-wifi-package,glinet_gl-axt1800,GL.iNet GL-AXT1800)) $(eval $(call generate-ipq-wifi-package,linksys_mx4200,Linksys MX4200)) $(eval $(call generate-ipq-wifi-package,linksys_mx5300,Linksys MX5300)) $(eval $(call generate-ipq-wifi-package,netgear_lbr20,Netgear LBR20)) diff --git a/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6000-gl-axt1800.dts b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6000-gl-axt1800.dts new file mode 100644 index 00000000000000..75d99a5a6d25e9 --- /dev/null +++ b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6000-gl-axt1800.dts @@ -0,0 +1,115 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +/dts-v1/; + +#include "ipq6000-glinet.dtsi" + +/ { + model = "GL Technologies, Inc. AXT1800"; + compatible = "glinet,gl-axt1800", "qcom,ipq6018"; + + aliases { + sdhc0 = &sdhc_1; + }; + + V30:V30 { + compatible = "regulator-fixed"; + regulator-name = "vmmc-supply"; + regulator-min-microvolt = <3000000>; + regulator-max-microvolt = <3000000>; + regulator-always-on; + }; + + V18:V18 { + compatible = "regulator-fixed"; + regulator-name = "vqmmc-supply"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + }; +}; + + +&tlmm { + + sd_pins: sd_pins { + sd { + pins = "gpio62"; + function = "sd_card"; + bias-pull-up; + }; + ldo { + pins = "gpio66"; + function = "gpio"; + bias-pull-up; + }; + }; + + pwm_pins: pwm_pinmux { + pwm { + pins = "gpio30"; + function = "pwm13"; + drive-strength = <8>; + }; + }; + + fan_pins: fan_pins { + pwr { + pins = "gpio29"; + function = "gpio"; + bias-pull-up; + output-high; + }; + speed { + pins = "gpio31"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + }; +}; + +&soc { + fan0: pwm-fan { + compatible = "pwm-fan"; + pinctrl-0 = <&fan_pins>; + pinctrl-names = "default"; + cooling-min-state = <0>; + cooling-max-state = <255>; + #cooling-cells = <2>; + pwms = <&pwm 1 40000 0>; + cooling-levels = <0 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 + 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 37 38 39 + 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 + 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 + 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 + 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 + 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 + 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 + 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 + 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 + 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 + 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 + 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255>; + }; +}; + +&pwm{ + pinctrl-0 = <&pwm_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&sdhc_1 { + pinctrl-0 = <&sd_pins>; + pinctrl-names = "default"; + cd-gpios = <&tlmm 62 1>; + sd-ldo-gpios = <&tlmm 66 1>; + vqmmc-supply = <&V18>; + vmmc-supply = <&V30>; + status = "okay"; +}; + +&wifi { + qcom,ath11k-calibration-variant = "GL-iNet-GL-AXT1800"; +}; \ No newline at end of file diff --git a/target/linux/qualcommax/image/ipq60xx.mk b/target/linux/qualcommax/image/ipq60xx.mk index b2804f21805235..e478b26f205f25 100644 --- a/target/linux/qualcommax/image/ipq60xx.mk +++ b/target/linux/qualcommax/image/ipq60xx.mk @@ -24,6 +24,19 @@ define Device/glinet_gl-ax1800 endef TARGET_DEVICES += glinet_gl-ax1800 +define Device/glinet_gl-axt1800 + $(call Device/FitImage) + $(call Device/UbiFit) + DEVICE_VENDOR := GL-iNet + DEVICE_MODEL := GL-AXT1800 + BLOCKSIZE := 128k + PAGESIZE := 2048 + DEVICE_DTS_CONFIG := config@cp03-c1 + SOC := ipq6000 + DEVICE_PACKAGES := ipq-wifi-glinet_gl-axt1800 kmod-hwmon-core kmod-hwmon-pwmfan +endef +TARGET_DEVICES += glinet_gl-axt1800 + define Device/netgear_wax214 $(call Device/FitImage) $(call Device/UbiFit) diff --git a/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/02_network b/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/02_network index 0a6c421fe95e02..d38a2f707a7354 100644 --- a/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/02_network +++ b/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/02_network @@ -17,6 +17,9 @@ ipq60xx_setup_interfaces() glinet,gl-ax1800) ucidef_set_interfaces_lan_wan "eth1 eth2 eth3 eth4" "eth0" ;; + glinet,gl-axt1800) + ucidef_set_interfaces_lan_wan "eth1 eth2" "eth0" + ;; netgear,wax214) ucidef_set_interfaces_lan_wan "lan" ;; diff --git a/target/linux/qualcommax/ipq60xx/base-files/etc/hotplug.d/firmware/11-ath11-caldata b/target/linux/qualcommax/ipq60xx/base-files/etc/hotplug.d/firmware/11-ath11-caldata index f19bbd2e2d8a5a..e3154f390ce292 100644 --- a/target/linux/qualcommax/ipq60xx/base-files/etc/hotplug.d/firmware/11-ath11-caldata +++ b/target/linux/qualcommax/ipq60xx/base-files/etc/hotplug.d/firmware/11-ath11-caldata @@ -13,6 +13,7 @@ case "$FIRMWARE" in caldata_extract "0:ART" 0x1000 0x20000 ;; glinet,gl-ax1800|\ + glinet,gl-axt1800|\ netgear,wax214) caldata_extract "0:art" 0x1000 0x10000 ;; diff --git a/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/platform.sh b/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/platform.sh index 76585a197a3429..90aa5dcc23b02e 100644 --- a/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/platform.sh @@ -11,6 +11,7 @@ platform_check_image() { platform_do_upgrade() { case "$(board_name)" in glinet,gl-ax1800|\ + glinet,gl-axt1800|\ netgear,wax214) nand_do_upgrade "$1" ;;