aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Bauer <mail@david-bauer.net>2019-02-18 23:58:34 +0100
committerChristian Lamparter <chunkeey@gmail.com>2019-02-28 11:32:55 +0100
commit95b0c07a618fe5fd93a26931152ced483bba143b (patch)
tree1339e3ba01d820269481ed44368f5c587245c96f
parent93b02ad95e53113562d76b2752ae43d676f454d5 (diff)
downloadupstream-95b0c07a618fe5fd93a26931152ced483bba143b.tar.gz
upstream-95b0c07a618fe5fd93a26931152ced483bba143b.tar.bz2
upstream-95b0c07a618fe5fd93a26931152ced483bba143b.zip
ipq40xx: add support for FritzBox 7530
Hardware -------- CPU: Qualcomm IPQ4019 RAM: 256M FLASH: 128M NAND ETH: QCA8075 VDSL: Intel/Lantiq VRX518 PCIe attached currently not supported DECT: Dialog SC14448 currently not supported WiFi2: IPQ4019 2T2R 2SS b/g/n WiFi5: IPQ4019 2T2R 2SS n/ac LED: - Power/DSL green - WLAN green - FON/DECT green - Connect/WPS green - Info green - Info red BTN: - WLAN - FON - WPS/Connect UART: 115200n8 3.3V (located under the Dialog chip) VCC - RX - TX - GND (Square is VCC) Installation ------------ 1. Grab the uboot for the Device from the 'u-boot-fritz7530' subdirectory. Place it in the same directory as the 'eva_ramboot.py' script. It is located in the 'scripts/flashing' subdirectory of the OpenWRT tree. 2. Assign yourself the IP address 192.168.178.10/24. Connect your Computer to one of the boxes LAN ports. 3. Connect Power to the Box. As soon as the LAN port of your computer shows link, load the U-Boot to the box using following command. > ./eva_ramboot.py --offset 0x85000000 192.168.178.1 uboot-fritz7530.bin 4. The U-Boot will now start. Now assign yourself the IP address 192.168.1.70/24. Copy the OpenWRT initramfs (!) image to a TFTP server root directory and rename it to 'FRITZ7530.bin'. 5. The Box will now boot OpenWRT from RAM. This can take up to two minutes. 6. Copy the U-Boot and the OpenWRT sysupgrade (!) image to the Box using scp. SSH into the Box and first write the Bootloader to both previous kernel partitions. > mtd write /path/to/uboot-fritz7530.bin uboot0 > mtd write /path/to/uboot-fritz7530.bin uboot1 7. Remove the AVM filesystem partitions to make room for our kernel + rootfs + overlayfs. > ubirmvol /dev/ubi0 --name=avm_filesys_0 > ubirmvol /dev/ubi0 --name=avm_filesys_1 8. Flash OpenWRT peristently using sysupgrade. > sysupgrade -n /path/to/openwrt-sysupgrade.bin Signed-off-by: David Bauer <mail@david-bauer.net> [removed pcie-dts range node, refreshed on top of AP120-AC/E2600AC] Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
-rw-r--r--package/boot/uboot-fritz4040/Makefile7
-rw-r--r--package/firmware/ipq-wifi/Makefile3
-rw-r--r--package/firmware/ipq-wifi/board-avm_fritzbox-7530.binbin0 -> 24324 bytes
-rwxr-xr-xtarget/linux/ipq40xx/base-files/etc/board.d/01_leds7
-rwxr-xr-xtarget/linux/ipq40xx/base-files/etc/board.d/02_network4
-rw-r--r--target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata8
-rw-r--r--target/linux/ipq40xx/base-files/lib/upgrade/platform.sh1
-rw-r--r--target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-fritzbox-7530.dts300
-rw-r--r--target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-fritzbox-7530.dts304
-rw-r--r--target/linux/ipq40xx/image/Makefile9
-rw-r--r--target/linux/ipq40xx/patches-4.14/901-arm-boot-add-dts-files.patch3
-rw-r--r--target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch3
12 files changed, 642 insertions, 7 deletions
diff --git a/package/boot/uboot-fritz4040/Makefile b/package/boot/uboot-fritz4040/Makefile
index 36ee0be0af..9af09afcd1 100644
--- a/package/boot/uboot-fritz4040/Makefile
+++ b/package/boot/uboot-fritz4040/Makefile
@@ -30,6 +30,11 @@ define U-Boot/fritz4040
BUILD_DEVICES:=avm_fritzbox-4040
endef
+define U-Boot/fritz7530
+ NAME:=FritzBox 7530
+ BUILD_DEVICES:=avm_fritzbox-7530
+endef
+
UBOOT_CONFIGURE_VARS += USE_PRIVATE_LIBGCC=yes
UBOOT_MAKE_FLAGS = USE_PRIVATE_LIBGCC=yes
export DTC
@@ -56,6 +61,6 @@ define Package/u-boot/install
$(INSTALL_BIN) $(PKG_BUILD_DIR)/upload-to-f4040.sh $(1)/
endef
-UBOOT_TARGETS := fritz4040
+UBOOT_TARGETS := fritz4040 fritz7530
$(eval $(call BuildPackage/U-Boot))
diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile
index 62f54fcd7f..9a00832ca2 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:
# <https://wireless.wiki.kernel.org/en/users/drivers/ath10k/boardfiles>
-ALLWIFIBOARDS:=alfa-network_ap120c-ac asus_map-ac2200 engenius_eap1300 linksys_ea6350v3 qxwlan_e2600ac
+ALLWIFIBOARDS:=alfa-network_ap120c-ac asus_map-ac2200 avm_fritzbox-7530 engenius_eap1300 linksys_ea6350v3 qxwlan_e2600ac
ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD))
define Package/ipq-wifi-default
@@ -56,6 +56,7 @@ endef
$(eval $(call generate-ipq-wifi-package,alfa-network_ap120c-ac,board-alfa-network_ap120c-ac.bin,ALFA Network AP120C-AC))
$(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,avm_fritzbox-7530,board-avm_fritzbox-7530.bin,AVM FRITZ!Box 7530))
$(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))
diff --git a/package/firmware/ipq-wifi/board-avm_fritzbox-7530.bin b/package/firmware/ipq-wifi/board-avm_fritzbox-7530.bin
new file mode 100644
index 0000000000..905145f1da
--- /dev/null
+++ b/package/firmware/ipq-wifi/board-avm_fritzbox-7530.bin
Binary files differ
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 d23791eab1..dc656cb6ee 100755
--- a/target/linux/ipq40xx/base-files/etc/board.d/01_leds
+++ b/target/linux/ipq40xx/base-files/etc/board.d/01_leds
@@ -25,15 +25,16 @@ avm,fritzbox-4040)
ucidef_set_led_netdev "wan" "WAN" "fritz4040:green:wan" "eth1"
ucidef_set_led_switch "lan" "LAN" "fritz4040:green:lan" "switch0" "0x1e"
;;
+avm,fritzbox-7530 |\
+glinet,gl-b1300)
+ ucidef_set_led_wlan "wlan" "WLAN" "${boardname}:green:wlan" "phy0tpt"
+ ;;
engenius,eap1300)
ucidef_set_led_netdev "lan" "LAN" "${boardname}:blue:lan" "eth0"
ucidef_set_led_wlan "wlan2g" "WLAN2G" "${boardname}:blue:wlan2g" "phy0tpt"
ucidef_set_led_wlan "wlan5g" "WLAN5G" "${boardname}:yellow:wlan5g" "phy1tpt"
ucidef_set_led_default "mesh" "MESH" "${boardname}:blue:mesh" "0"
;;
-glinet,gl-b1300)
- ucidef_set_led_wlan "wlan" "WLAN" "${boardname}:green:wlan" "phy0tpt"
- ;;
netgear,ex6100v2 |\
netgear,ex6150v2)
ucidef_set_led_wlan "wlan2g" "WLAN2G" "ex61x0v2:green:router" "phy0tpt"
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 c0466ba8bc..9c232d49f7 100755
--- a/target/linux/ipq40xx/base-files/etc/board.d/02_network
+++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network
@@ -33,6 +33,10 @@ ipq40xx_setup_interfaces()
ucidef_add_switch "switch0" \
"0u@eth0" "1:lan" "2:lan" "3:lan" "4:lan"
;;
+ avm,fritzbox-7530)
+ ucidef_add_switch "switch0" \
+ "0u@eth0" "1:lan" "2:lan" "3:lan" "4:lan"
+ ;;
compex,wpj428)
ucidef_set_interface_lan "eth0 eth1"
;;
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 44421527d2..1264d2ef36 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,10 @@ 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")
;;
+ avm,fritzbox-7530)
+ /usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
+ /usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
+ ;;
compex,wpj428 |\
engenius,eap1300 |\
openmesh,a42 |\
@@ -179,6 +183,10 @@ 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")
;;
+ avm,fritzbox-7530)
+ /usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader0") || \
+ /usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
+ ;;
compex,wpj428 |\
engenius,eap1300 |\
openmesh,a42 |\
diff --git a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
index 87e27aff8f..9a2c13cf4d 100644
--- a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
@@ -48,6 +48,7 @@ platform_do_upgrade() {
case "$(board_name)" in
8dev,jalapeno |\
alfa-network,ap120c-ac |\
+ avm,fritzbox-7530 |\
qxwlan,e2600ac-c2)
nand_do_upgrade "$ARGV"
;;
diff --git a/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-fritzbox-7530.dts b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-fritzbox-7530.dts
new file mode 100644
index 0000000000..45c4864855
--- /dev/null
+++ b/target/linux/ipq40xx/files-4.14/arch/arm/boot/dts/qcom-ipq4019-fritzbox-7530.dts
@@ -0,0 +1,300 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "qcom-ipq4019.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/soc/qcom,tcsr.h>
+
+/ {
+ model = "AVM FRITZ!Box 7530";
+ compatible = "avm,fritzbox-7530";
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &info_red;
+ led-running = &power_green;
+ led-upgrade = &info_green;
+ };
+
+ soc {
+ mdio@90000 {
+ status = "okay";
+ };
+
+ ess-psgmii@98000 {
+ status = "okay";
+ };
+
+ tcsr@1949000 {
+ compatible = "qcom,tcsr";
+ reg = <0x1949000 0x100>;
+ qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
+ };
+
+ tcsr@194b000 {
+ compatible = "qcom,tcsr";
+ reg = <0x194b000 0x100>;
+ qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
+ };
+
+ ess_tcsr@1953000 {
+ compatible = "qcom,tcsr";
+ reg = <0x1953000 0x1000>;
+ qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
+ };
+
+ tcsr@1957000 {
+ compatible = "qcom,tcsr";
+ reg = <0x1957000 0x100>;
+ qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
+ };
+
+ usb3@8af8800 {
+ status = "okay";
+ };
+
+ crypto@8e3a000 {
+ status = "okay";
+ };
+
+ watchdog@b017000 {
+ status = "okay";
+ };
+
+ ess-switch@c000000 {
+ status = "okay";
+ };
+
+ edma@c080000 {
+ status = "okay";
+ qcom,num_gmac = <1>;
+ };
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ wlan {
+ label = "wlan";
+ gpios = <&tlmm 42 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RFKILL>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&tlmm 41 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+
+ dect {
+ label = "dect";
+ gpios = <&tlmm 43 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_PHONE>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ info_red: info_red {
+ label = "fritzbox-7530:red:info";
+ gpios = <&tlmm 32 GPIO_ACTIVE_LOW>;
+ };
+
+ info_green: info {
+ label = "fritzbox-7530:green:info";
+ gpios = <&tlmm 33 GPIO_ACTIVE_LOW>;
+ };
+
+ wlan {
+ label = "fritzbox-7530:green:wlan";
+ gpios = <&tlmm 34 GPIO_ACTIVE_LOW>;
+ };
+
+ fon {
+ label = "fritzbox-7530:green:fon";
+ gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
+ };
+
+ power_green: power {
+ label = "fritzbox-7530:green:power";
+ gpios = <&tlmm 39 GPIO_ACTIVE_LOW>;
+ };
+
+ wps {
+ label = "fritzbox-7530:green:wps";
+ gpios = <&tlmm 45 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&tlmm {
+ serial_0_pins: serial_pinmux {
+ mux {
+ pins = "gpio16", "gpio17";
+ function = "blsp_uart0";
+ bias-disable;
+ };
+ };
+
+ 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;
+ };
+ };
+
+ usb-power {
+ line-name = "enable USB3 power";
+ gpios = <49 GPIO_ACTIVE_HIGH>;
+ gpio-hog;
+ output-high;
+ };
+};
+
+&nand {
+ pinctrl-0 = <&nand_pins>;
+ pinctrl-names = "default";
+ status = "okay";
+ cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>;
+
+ nand@0 {
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "SBL1";
+ reg = <0x000000 0x80000>;
+ read-only;
+ };
+
+ partition@80000 {
+ label = "MIBIB";
+ reg = <0x080000 0x80000>;
+ read-only;
+ };
+
+ partition@100000 {
+ label = "QSEE";
+ reg = <0x100000 0x80000>;
+ read-only;
+ };
+
+ partition@180000 {
+ label = "CDT";
+ reg = <0x180000 0x40000>;
+ read-only;
+ };
+
+ partition@1c0000 {
+ label = "QSEE_B";
+ reg = <0x1c0000 0x80000>;
+ read-only;
+ };
+
+ partition@240000 {
+ label = "urlader0";
+ reg = <0x240000 0x40000>;
+ read-only;
+ };
+
+ partition@280000 {
+ label = "urlader1";
+ reg = <0x280000 0x40000>;
+ read-only;
+ };
+
+ partition@2c0000 {
+ label = "nand-tffs";
+ reg = <0x2c0000 0x840000>;
+ read-only;
+ };
+
+ partition@b00000 {
+ /* 'kernel1' in AVM firmware */
+ label = "uboot0";
+ reg = <0xb00000 0x400000>;
+ };
+
+ partition@f00000 {
+ /* 'kernel2' in AVM firmware */
+ label = "uboot1";
+ reg = <0xf00000 0x400000>;
+ };
+
+ partition@1300000 {
+ label = "ubi";
+ reg = <0x1300000 0x6d00000>;
+ };
+ };
+ };
+};
+
+&cryptobam {
+ status = "okay";
+};
+
+&blsp_dma {
+ status = "okay";
+};
+
+&blsp1_uart1 {
+ pinctrl-0 = <&serial_0_pins>;
+ pinctrl-names = "default";
+ status = "okay";
+};
+
+&usb3_ss_phy {
+ status = "okay";
+};
+
+&usb3_hs_phy {
+ status = "okay";
+};
+
+&qpic_bam {
+ status = "okay";
+};
+
+&wifi0 {
+ status = "okay";
+ qcom,ath10k-calibration-variant = "AVM-FRITZBox-7530";
+};
+
+&wifi1 {
+ status = "okay";
+ qcom,ath10k-calibration-variant = "AVM-FRITZBox-7530";
+};
+
+&pcie0 {
+ status = "okay";
+
+ perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>;
+ wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>;
+
+ bridge@0,0 {
+ reg = <0x00000000 0 0 0 0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+
+ dsl@1,0 {
+ compatible = "intel,vrx518";
+ status = "okay";
+ reg = <0x00010000 0 0 0 0>;
+ };
+ };
+};
diff --git a/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-fritzbox-7530.dts b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-fritzbox-7530.dts
new file mode 100644
index 0000000000..53f83f411b
--- /dev/null
+++ b/target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-fritzbox-7530.dts
@@ -0,0 +1,304 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "qcom-ipq4019.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/soc/qcom,tcsr.h>
+
+/ {
+ model = "AVM FRITZ!Box 7530";
+ compatible = "avm,fritzbox-7530";
+
+ aliases {
+ led-boot = &power_green;
+ led-failsafe = &info_red;
+ led-running = &power_green;
+ led-upgrade = &info_green;
+ };
+
+ soc {
+ rng@22000 {
+ status = "okay";
+ };
+
+ mdio@90000 {
+ status = "okay";
+ };
+
+ ess-psgmii@98000 {
+ status = "okay";
+ };
+
+ tcsr@1949000 {
+ compatible = "qcom,tcsr";
+ reg = <0x1949000 0x100>;
+ qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
+ };
+
+ tcsr@194b000 {
+ compatible = "qcom,tcsr";
+ reg = <0x194b000 0x100>;
+ qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
+ };
+
+ ess_tcsr@1953000 {
+ compatible = "qcom,tcsr";
+ reg = <0x1953000 0x1000>;
+ qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
+ };
+
+ tcsr@1957000 {
+ compatible = "qcom,tcsr";
+ reg = <0x1957000 0x100>;
+ qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
+ };
+
+ usb3@8af8800 {
+ status = "okay";
+ };
+
+ crypto@8e3a000 {
+ status = "okay";
+ };
+
+ watchdog@b017000 {
+ status = "okay";
+ };
+
+ ess-switch@c000000 {
+ status = "okay";
+ };
+
+ edma@c080000 {
+ status = "okay";
+ qcom,num_gmac = <1>;
+ };
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ wlan {
+ label = "wlan";
+ gpios = <&tlmm 42 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RFKILL>;
+ };
+
+ wps {
+ label = "wps";
+ gpios = <&tlmm 41 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+
+ dect {
+ label = "dect";
+ gpios = <&tlmm 43 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_PHONE>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ info_red: info_red {
+ label = "fritzbox-7530:red:info";
+ gpios = <&tlmm 32 GPIO_ACTIVE_LOW>;
+ };
+
+ info_green: info {
+ label = "fritzbox-7530:green:info";
+ gpios = <&tlmm 33 GPIO_ACTIVE_LOW>;
+ };
+
+ wlan {
+ label = "fritzbox-7530:green:wlan";
+ gpios = <&tlmm 34 GPIO_ACTIVE_LOW>;
+ };
+
+ fon {
+ label = "fritzbox-7530:green:fon";
+ gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
+ };
+
+ power_green: power {
+ label = "fritzbox-7530:green:power";
+ gpios = <&tlmm 39 GPIO_ACTIVE_LOW>;
+ };
+
+ wps {
+ label = "fritzbox-7530:green:wps";
+ gpios = <&tlmm 45 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&tlmm {
+ serial_0_pins: serial_pinmux {
+ mux {
+ pins = "gpio16", "gpio17";
+ function = "blsp_uart0";
+ bias-disable;
+ };
+ };
+
+ 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;
+ };
+ };
+
+ usb-power {
+ line-name = "enable USB3 power";
+ gpios = <49 GPIO_ACTIVE_HIGH>;
+ gpio-hog;
+ output-high;
+ };
+};
+
+&nand {
+ pinctrl-0 = <&nand_pins>;
+ pinctrl-names = "default";
+ status = "okay";
+ cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>;
+
+ nand@0 {
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "SBL1";
+ reg = <0x000000 0x80000>;
+ read-only;
+ };
+
+ partition@80000 {
+ label = "MIBIB";
+ reg = <0x080000 0x80000>;
+ read-only;
+ };
+
+ partition@100000 {
+ label = "QSEE";
+ reg = <0x100000 0x80000>;
+ read-only;
+ };
+
+ partition@180000 {
+ label = "CDT";
+ reg = <0x180000 0x40000>;
+ read-only;
+ };
+
+ partition@1c0000 {
+ label = "QSEE_B";
+ reg = <0x1c0000 0x80000>;
+ read-only;
+ };
+
+ partition@240000 {
+ label = "urlader0";
+ reg = <0x240000 0x40000>;
+ read-only;
+ };
+
+ partition@280000 {
+ label = "urlader1";
+ reg = <0x280000 0x40000>;
+ read-only;
+ };
+
+ partition@2c0000 {
+ label = "nand-tffs";
+ reg = <0x2c0000 0x840000>;
+ read-only;
+ };
+
+ partition@b00000 {
+ /* 'kernel1' in AVM firmware */
+ label = "uboot0";
+ reg = <0xb00000 0x400000>;
+ };
+
+ partition@f00000 {
+ /* 'kernel2' in AVM firmware */
+ label = "uboot1";
+ reg = <0xf00000 0x400000>;
+ };
+
+ partition@1300000 {
+ label = "ubi";
+ reg = <0x1300000 0x6d00000>;
+ };
+ };
+ };
+};
+
+&cryptobam {
+ status = "okay";
+};
+
+&blsp_dma {
+ status = "okay";
+};
+
+&blsp1_uart1 {
+ pinctrl-0 = <&serial_0_pins>;
+ pinctrl-names = "default";
+ status = "okay";
+};
+
+&usb3_ss_phy {
+ status = "okay";
+};
+
+&usb3_hs_phy {
+ status = "okay";
+};
+
+&qpic_bam {
+ status = "okay";
+};
+
+&wifi0 {
+ status = "okay";
+ qcom,ath10k-calibration-variant = "AVM-FRITZBox-7530";
+};
+
+&wifi1 {
+ status = "okay";
+ qcom,ath10k-calibration-variant = "AVM-FRITZBox-7530";
+};
+
+&pcie0 {
+ status = "okay";
+
+ perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>;
+ wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>;
+
+ bridge@0,0 {
+ reg = <0x00000000 0 0 0 0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+
+ dsl@1,0 {
+ compatible = "intel,vrx518";
+ status = "okay";
+ reg = <0x00010000 0 0 0 0>;
+ };
+ };
+};
diff --git a/target/linux/ipq40xx/image/Makefile b/target/linux/ipq40xx/image/Makefile
index 22836be1fb..3a7ecf39eb 100644
--- a/target/linux/ipq40xx/image/Makefile
+++ b/target/linux/ipq40xx/image/Makefile
@@ -121,6 +121,15 @@ define Device/avm_fritzbox-4040
endef
TARGET_DEVICES += avm_fritzbox-4040
+define Device/avm_fritzbox-7530
+ $(call Device/FitImageLzma)
+ DEVICE_DTS := qcom-ipq4019-fritzbox-7530
+ DEVICE_TITLE := AVM Fritz!Box 7530
+ DEVICE_PACKAGES := fritz-caldata ipq-wifi-avm_fritzbox-7530
+ IMAGES := sysupgrade.bin
+endef
+TARGET_DEVICES += avm_fritzbox-7530
+
define Device/compex_wpj428
$(call Device/FitImage)
DEVICE_DTS := qcom-ipq4028-wpj428
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 5aeb3963f7..89ce5b1538 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 <john@phrozen.org>
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
-@@ -697,7 +697,26 @@ dtb-$(CONFIG_ARCH_QCOM) += \
+@@ -697,7 +697,27 @@ dtb-$(CONFIG_ARCH_QCOM) += \
qcom-apq8074-dragonboard.dtb \
qcom-apq8084-ifc6540.dtb \
qcom-apq8084-mtp.dtb \
@@ -28,6 +28,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
qcom-ipq4019-ap.dk01.1-c1.dtb \
+ qcom-ipq4019-a62.dtb \
+ qcom-ipq4019-ap.dk04.1-c1.dtb \
++ qcom-ipq4019-fritzbox-7530.dtb \
+ qcom-ipq4019-map-ac2200.dtb \
+ qcom-ipq4019-qxwlan-e2600ac-c1.dtb \
+ qcom-ipq4019-qxwlan-e2600ac-c2.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 bceadc50e8..f47b7b6dab 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 <john@phrozen.org>
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
-@@ -785,11 +785,29 @@ dtb-$(CONFIG_ARCH_QCOM) += \
+@@ -785,11 +785,30 @@ dtb-$(CONFIG_ARCH_QCOM) += \
qcom-apq8074-dragonboard.dtb \
qcom-apq8084-ifc6540.dtb \
qcom-apq8084-mtp.dtb \
@@ -31,6 +31,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
qcom-ipq4019-ap.dk07.1-c1.dtb \
qcom-ipq4019-ap.dk07.1-c2.dtb \
+ qcom-ipq4019-a62.dtb \
++ qcom-ipq4019-fritzbox-7530.dtb \
+ qcom-ipq4019-map-ac2200.dtb \
+ qcom-ipq4019-qxwlan-e2600ac-c1.dtb \
+ qcom-ipq4019-qxwlan-e2600ac-c2.dtb \