Last active
July 28, 2025 09:23
-
-
Save kimocoder/d73991def3668ccd87d73d231d0a182f to your computer and use it in GitHub Desktop.
ipq5018 build test
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 1234567890 Mon Sep 17 00:00:00 2001 | |
From: kimocoder <[email protected]> | |
Date: Mon, 28 Jul 2025 07:20:00 +0200 | |
Subject: [PATCH] IPQ5018 build test | |
--- | |
build.sh | 6 ++++++ | |
1 file changed, 6 insertions(+) | |
create mode 100755 build.sh | |
diff --git a/build.sh b/build.sh | |
new file mode 100755 | |
index 0000000..1111111 | |
--- /dev/null | |
+++ b/build.sh | |
@@ -0,0 +1,6 @@ | |
+#!/usr/bin/env bash | |
+ | |
+export FORCE_UNSAFE_CONFIGURE=1 | |
+make -j8 V=sc | |
+cp target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/tsens-v1.c ./build_dir/target-aarch64_cortex-a53_musl/linux-qualcommax_ipq50xx/linux-6.12.40/drivers/thermal/qcom/tsens-v1.c | |
+make -j8 V=sc | |
-- | |
diff --git a/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq5018-ax6000.dts b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq5018-ax6000.dts | |
index 1d2e4f0e85..8133e97d2f 100644 | |
--- a/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq5018-ax6000.dts | |
+++ b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq5018-ax6000.dts | |
@@ -402,6 +402,8 @@ | |
reg = <17>; | |
ports { | |
+ #address-cells = <1>; | |
+ #size-cells = <0>; | |
port@1 { | |
reg = <1>; | |
label = "lan1"; | |
diff --git a/target/linux/qualcommax/patches-6.12/0036-v6.13-arm64-dts-qcom-ipq-change-labels-to-lower-case.patch b/target/linux/qualcommax/patches-6.12/0036-v6.13-arm64-dts-qcom-ipq-change-labels-to-lower-case.patch | |
deleted file mode 100644 | |
index 9dadee2154..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0036-v6.13-arm64-dts-qcom-ipq-change-labels-to-lower-case.patch | |
+++ /dev/null | |
@@ -1,381 +0,0 @@ | |
-From 6f8c1ed25809181c187a59b1caaa1521756924bf Mon Sep 17 00:00:00 2001 | |
-From: Krzysztof Kozlowski <[email protected]> | |
-Date: Tue, 22 Oct 2024 17:47:26 +0200 | |
-Subject: [PATCH] arm64: dts: qcom: ipq: change labels to lower-case | |
- | |
-DTS coding style expects labels to be lowercase. No functional impact. | |
-Verified with comparing decompiled DTB (dtx_diff and fdtdump+diff). | |
- | |
-Signed-off-by: Krzysztof Kozlowski <[email protected]> | |
-Link: https://lore.kernel.org/r/[email protected] | |
-Signed-off-by: Bjorn Andersson <[email protected]> | |
---- | |
- arch/arm64/boot/dts/qcom/ipq5018.dtsi | 10 +++--- | |
- arch/arm64/boot/dts/qcom/ipq5332.dtsi | 18 +++++----- | |
- arch/arm64/boot/dts/qcom/ipq6018.dtsi | 26 +++++++------- | |
- arch/arm64/boot/dts/qcom/ipq8074.dtsi | 18 +++++----- | |
- arch/arm64/boot/dts/qcom/ipq9574.dtsi | 50 +++++++++++++-------------- | |
- 5 files changed, 61 insertions(+), 61 deletions(-) | |
- | |
---- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-@@ -31,27 +31,27 @@ | |
- #address-cells = <1>; | |
- #size-cells = <0>; | |
- | |
-- CPU0: cpu@0 { | |
-+ cpu0: cpu@0 { | |
- device_type = "cpu"; | |
- compatible = "arm,cortex-a53"; | |
- reg = <0x0>; | |
- enable-method = "psci"; | |
-- next-level-cache = <&L2_0>; | |
-+ next-level-cache = <&l2_0>; | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- operating-points-v2 = <&cpu_opp_table>; | |
- }; | |
- | |
-- CPU1: cpu@1 { | |
-+ cpu1: cpu@1 { | |
- device_type = "cpu"; | |
- compatible = "arm,cortex-a53"; | |
- reg = <0x1>; | |
- enable-method = "psci"; | |
-- next-level-cache = <&L2_0>; | |
-+ next-level-cache = <&l2_0>; | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- operating-points-v2 = <&cpu_opp_table>; | |
- }; | |
- | |
-- L2_0: l2-cache { | |
-+ l2_0: l2-cache { | |
- compatible = "cache"; | |
- cache-level = <2>; | |
- cache-size = <0x80000>; | |
---- a/arch/arm64/boot/dts/qcom/ipq5332.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq5332.dtsi | |
-@@ -31,47 +31,47 @@ | |
- #address-cells = <1>; | |
- #size-cells = <0>; | |
- | |
-- CPU0: cpu@0 { | |
-+ cpu0: cpu@0 { | |
- device_type = "cpu"; | |
- compatible = "arm,cortex-a53"; | |
- reg = <0x0>; | |
- enable-method = "psci"; | |
-- next-level-cache = <&L2_0>; | |
-+ next-level-cache = <&l2_0>; | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- operating-points-v2 = <&cpu_opp_table>; | |
- }; | |
- | |
-- CPU1: cpu@1 { | |
-+ cpu1: cpu@1 { | |
- device_type = "cpu"; | |
- compatible = "arm,cortex-a53"; | |
- reg = <0x1>; | |
- enable-method = "psci"; | |
-- next-level-cache = <&L2_0>; | |
-+ next-level-cache = <&l2_0>; | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- operating-points-v2 = <&cpu_opp_table>; | |
- }; | |
- | |
-- CPU2: cpu@2 { | |
-+ cpu2: cpu@2 { | |
- device_type = "cpu"; | |
- compatible = "arm,cortex-a53"; | |
- reg = <0x2>; | |
- enable-method = "psci"; | |
-- next-level-cache = <&L2_0>; | |
-+ next-level-cache = <&l2_0>; | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- operating-points-v2 = <&cpu_opp_table>; | |
- }; | |
- | |
-- CPU3: cpu@3 { | |
-+ cpu3: cpu@3 { | |
- device_type = "cpu"; | |
- compatible = "arm,cortex-a53"; | |
- reg = <0x3>; | |
- enable-method = "psci"; | |
-- next-level-cache = <&L2_0>; | |
-+ next-level-cache = <&l2_0>; | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- operating-points-v2 = <&cpu_opp_table>; | |
- }; | |
- | |
-- L2_0: l2-cache { | |
-+ l2_0: l2-cache { | |
- compatible = "cache"; | |
- cache-level = <2>; | |
- cache-unified; | |
---- a/arch/arm64/boot/dts/qcom/ipq6018.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq6018.dtsi | |
-@@ -34,12 +34,12 @@ | |
- #address-cells = <1>; | |
- #size-cells = <0>; | |
- | |
-- CPU0: cpu@0 { | |
-+ cpu0: cpu@0 { | |
- device_type = "cpu"; | |
- compatible = "arm,cortex-a53"; | |
- reg = <0x0>; | |
- enable-method = "psci"; | |
-- next-level-cache = <&L2_0>; | |
-+ next-level-cache = <&l2_0>; | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- clock-names = "cpu"; | |
- operating-points-v2 = <&cpu_opp_table>; | |
-@@ -47,12 +47,12 @@ | |
- #cooling-cells = <2>; | |
- }; | |
- | |
-- CPU1: cpu@1 { | |
-+ cpu1: cpu@1 { | |
- device_type = "cpu"; | |
- compatible = "arm,cortex-a53"; | |
- enable-method = "psci"; | |
- reg = <0x1>; | |
-- next-level-cache = <&L2_0>; | |
-+ next-level-cache = <&l2_0>; | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- clock-names = "cpu"; | |
- operating-points-v2 = <&cpu_opp_table>; | |
-@@ -60,12 +60,12 @@ | |
- #cooling-cells = <2>; | |
- }; | |
- | |
-- CPU2: cpu@2 { | |
-+ cpu2: cpu@2 { | |
- device_type = "cpu"; | |
- compatible = "arm,cortex-a53"; | |
- enable-method = "psci"; | |
- reg = <0x2>; | |
-- next-level-cache = <&L2_0>; | |
-+ next-level-cache = <&l2_0>; | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- clock-names = "cpu"; | |
- operating-points-v2 = <&cpu_opp_table>; | |
-@@ -73,12 +73,12 @@ | |
- #cooling-cells = <2>; | |
- }; | |
- | |
-- CPU3: cpu@3 { | |
-+ cpu3: cpu@3 { | |
- device_type = "cpu"; | |
- compatible = "arm,cortex-a53"; | |
- enable-method = "psci"; | |
- reg = <0x3>; | |
-- next-level-cache = <&L2_0>; | |
-+ next-level-cache = <&l2_0>; | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- clock-names = "cpu"; | |
- operating-points-v2 = <&cpu_opp_table>; | |
-@@ -86,7 +86,7 @@ | |
- #cooling-cells = <2>; | |
- }; | |
- | |
-- L2_0: l2-cache { | |
-+ l2_0: l2-cache { | |
- compatible = "cache"; | |
- cache-level = <2>; | |
- cache-unified; | |
-@@ -1015,10 +1015,10 @@ | |
- cooling-maps { | |
- map0 { | |
- trip = <&cpu_alert>; | |
-- cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-- <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-- <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-- <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | |
-+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | |
- }; | |
- }; | |
- }; | |
---- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi | |
-@@ -32,39 +32,39 @@ | |
- #address-cells = <1>; | |
- #size-cells = <0>; | |
- | |
-- CPU0: cpu@0 { | |
-+ cpu0: cpu@0 { | |
- device_type = "cpu"; | |
- compatible = "arm,cortex-a53"; | |
- reg = <0x0>; | |
-- next-level-cache = <&L2_0>; | |
-+ next-level-cache = <&l2_0>; | |
- enable-method = "psci"; | |
- }; | |
- | |
-- CPU1: cpu@1 { | |
-+ cpu1: cpu@1 { | |
- device_type = "cpu"; | |
- compatible = "arm,cortex-a53"; | |
- enable-method = "psci"; | |
- reg = <0x1>; | |
-- next-level-cache = <&L2_0>; | |
-+ next-level-cache = <&l2_0>; | |
- }; | |
- | |
-- CPU2: cpu@2 { | |
-+ cpu2: cpu@2 { | |
- device_type = "cpu"; | |
- compatible = "arm,cortex-a53"; | |
- enable-method = "psci"; | |
- reg = <0x2>; | |
-- next-level-cache = <&L2_0>; | |
-+ next-level-cache = <&l2_0>; | |
- }; | |
- | |
-- CPU3: cpu@3 { | |
-+ cpu3: cpu@3 { | |
- device_type = "cpu"; | |
- compatible = "arm,cortex-a53"; | |
- enable-method = "psci"; | |
- reg = <0x3>; | |
-- next-level-cache = <&L2_0>; | |
-+ next-level-cache = <&l2_0>; | |
- }; | |
- | |
-- L2_0: l2-cache { | |
-+ l2_0: l2-cache { | |
- compatible = "cache"; | |
- cache-level = <2>; | |
- cache-unified; | |
---- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi | |
-@@ -34,12 +34,12 @@ | |
- #address-cells = <1>; | |
- #size-cells = <0>; | |
- | |
-- CPU0: cpu@0 { | |
-+ cpu0: cpu@0 { | |
- device_type = "cpu"; | |
- compatible = "arm,cortex-a73"; | |
- reg = <0x0>; | |
- enable-method = "psci"; | |
-- next-level-cache = <&L2_0>; | |
-+ next-level-cache = <&l2_0>; | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- clock-names = "cpu"; | |
- operating-points-v2 = <&cpu_opp_table>; | |
-@@ -47,12 +47,12 @@ | |
- #cooling-cells = <2>; | |
- }; | |
- | |
-- CPU1: cpu@1 { | |
-+ cpu1: cpu@1 { | |
- device_type = "cpu"; | |
- compatible = "arm,cortex-a73"; | |
- reg = <0x1>; | |
- enable-method = "psci"; | |
-- next-level-cache = <&L2_0>; | |
-+ next-level-cache = <&l2_0>; | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- clock-names = "cpu"; | |
- operating-points-v2 = <&cpu_opp_table>; | |
-@@ -60,12 +60,12 @@ | |
- #cooling-cells = <2>; | |
- }; | |
- | |
-- CPU2: cpu@2 { | |
-+ cpu2: cpu@2 { | |
- device_type = "cpu"; | |
- compatible = "arm,cortex-a73"; | |
- reg = <0x2>; | |
- enable-method = "psci"; | |
-- next-level-cache = <&L2_0>; | |
-+ next-level-cache = <&l2_0>; | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- clock-names = "cpu"; | |
- operating-points-v2 = <&cpu_opp_table>; | |
-@@ -73,12 +73,12 @@ | |
- #cooling-cells = <2>; | |
- }; | |
- | |
-- CPU3: cpu@3 { | |
-+ cpu3: cpu@3 { | |
- device_type = "cpu"; | |
- compatible = "arm,cortex-a73"; | |
- reg = <0x3>; | |
- enable-method = "psci"; | |
-- next-level-cache = <&L2_0>; | |
-+ next-level-cache = <&l2_0>; | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- clock-names = "cpu"; | |
- operating-points-v2 = <&cpu_opp_table>; | |
-@@ -86,7 +86,7 @@ | |
- #cooling-cells = <2>; | |
- }; | |
- | |
-- L2_0: l2-cache { | |
-+ l2_0: l2-cache { | |
- compatible = "cache"; | |
- cache-level = <2>; | |
- cache-unified; | |
-@@ -865,10 +865,10 @@ | |
- cooling-maps { | |
- map0 { | |
- trip = <&cpu0_alert>; | |
-- cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-- <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-- <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-- <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | |
-+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | |
- }; | |
- }; | |
- }; | |
-@@ -893,10 +893,10 @@ | |
- cooling-maps { | |
- map0 { | |
- trip = <&cpu1_alert>; | |
-- cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-- <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-- <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-- <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | |
-+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | |
- }; | |
- }; | |
- }; | |
-@@ -921,10 +921,10 @@ | |
- cooling-maps { | |
- map0 { | |
- trip = <&cpu2_alert>; | |
-- cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-- <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-- <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-- <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | |
-+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | |
- }; | |
- }; | |
- }; | |
-@@ -949,10 +949,10 @@ | |
- cooling-maps { | |
- map0 { | |
- trip = <&cpu3_alert>; | |
-- cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-- <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-- <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-- <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | |
-+ cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-+ <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-+ <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, | |
-+ <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; | |
- }; | |
- }; | |
- }; | |
diff --git a/target/linux/qualcommax/patches-6.12/0047-v6.16-PCI-qcom-Add-support-for-IPQ5018.patch b/target/linux/qualcommax/patches-6.12/0047-v6.16-PCI-qcom-Add-support-for-IPQ5018.patch | |
deleted file mode 100644 | |
index 70e681475f..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0047-v6.16-PCI-qcom-Add-support-for-IPQ5018.patch | |
+++ /dev/null | |
@@ -1,31 +0,0 @@ | |
-From 3e5127469a8d41153fb30031a271788f52dd17ec Mon Sep 17 00:00:00 2001 | |
-From: Nitheesh Sekar <[email protected]> | |
-Date: Wed, 26 Mar 2025 12:10:58 +0400 | |
-Subject: [PATCH] PCI: qcom: Add support for IPQ5018 | |
- | |
-Add IPQ5018 platform with is based on Qcom IP rev. 2.9.0 and Synopsys IP | |
-rev. 5.00a. | |
- | |
-The platform itself has two PCIe Gen2 controllers: one single-lane and | |
-one dual-lane. So add the IPQ5018 compatible and re-use 2_9_0 ops. | |
- | |
-Signed-off-by: Nitheesh Sekar <[email protected]> | |
-Signed-off-by: Sricharan R <[email protected]> | |
-Signed-off-by: George Moussalem <[email protected]> | |
-Signed-off-by: Manivannan Sadhasivam <[email protected]> | |
-Reviewed-by: Manivannan Sadhasivam <[email protected]> | |
-Link: https://patch.msgid.link/[email protected] | |
---- | |
- drivers/pci/controller/dwc/pcie-qcom.c | 1 + | |
- 1 file changed, 1 insertion(+) | |
- | |
---- a/drivers/pci/controller/dwc/pcie-qcom.c | |
-+++ b/drivers/pci/controller/dwc/pcie-qcom.c | |
-@@ -1827,6 +1827,7 @@ static const struct of_device_id qcom_pc | |
- { .compatible = "qcom,pcie-apq8064", .data = &cfg_2_1_0 }, | |
- { .compatible = "qcom,pcie-apq8084", .data = &cfg_1_0_0 }, | |
- { .compatible = "qcom,pcie-ipq4019", .data = &cfg_2_4_0 }, | |
-+ { .compatible = "qcom,pcie-ipq5018", .data = &cfg_2_9_0 }, | |
- { .compatible = "qcom,pcie-ipq6018", .data = &cfg_2_9_0 }, | |
- { .compatible = "qcom,pcie-ipq8064", .data = &cfg_2_1_0 }, | |
- { .compatible = "qcom,pcie-ipq8064-v2", .data = &cfg_2_1_0 }, | |
diff --git a/target/linux/qualcommax/patches-6.12/0048-v6.16-arm64-dts-qcom-ipq5018-Add-PCIe-related-nodes.patch b/target/linux/qualcommax/patches-6.12/0048-v6.16-arm64-dts-qcom-ipq5018-Add-PCIe-related-nodes.patch | |
deleted file mode 100644 | |
index a7fceeba65..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0048-v6.16-arm64-dts-qcom-ipq5018-Add-PCIe-related-nodes.patch | |
+++ /dev/null | |
@@ -1,286 +0,0 @@ | |
-From 18a5bf00a02ca54d51266b861518f2844c4f08d7 Mon Sep 17 00:00:00 2001 | |
-From: Nitheesh Sekar <[email protected]> | |
-Date: Wed, 14 May 2025 09:52:13 +0400 | |
-Subject: [PATCH] arm64: dts: qcom: ipq5018: Add PCIe related nodes | |
- | |
-Add phy and controller nodes for a 2-lane Gen2 and | |
-a 1-lane Gen2 PCIe bus. IPQ5018 has 8 MSI SPI interrupts and | |
-one global interrupt. | |
- | |
-NOTE: the PCIe controller supports gen3, yet the phy is limited to gen2. | |
- | |
-Signed-off-by: Nitheesh Sekar <[email protected]> | |
-Signed-off-by: Sricharan R <[email protected]> | |
-Reviewed-by: Manivannan Sadhasivam <[email protected]> | |
-Reviewed-by: Dmitry Baryshkov <[email protected]> | |
-Reviewed-by: Konrad Dybcio <[email protected]> | |
-Signed-off-by: George Moussalem <[email protected]> | |
-Link: https://lore.kernel.org/r/[email protected] | |
-Signed-off-by: Bjorn Andersson <[email protected]> | |
---- | |
- arch/arm64/boot/dts/qcom/ipq5018.dtsi | 240 +++++++++++++++++++++++++- | |
- 1 file changed, 238 insertions(+), 2 deletions(-) | |
- | |
---- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-@@ -147,6 +147,40 @@ | |
- status = "disabled"; | |
- }; | |
- | |
-+ pcie1_phy: phy@7e000 { | |
-+ compatible = "qcom,ipq5018-uniphy-pcie-phy"; | |
-+ reg = <0x0007e000 0x800>; | |
-+ | |
-+ clocks = <&gcc GCC_PCIE1_PIPE_CLK>; | |
-+ | |
-+ resets = <&gcc GCC_PCIE1_PHY_BCR>, | |
-+ <&gcc GCC_PCIE1PHY_PHY_BCR>; | |
-+ | |
-+ #clock-cells = <0>; | |
-+ #phy-cells = <0>; | |
-+ | |
-+ num-lanes = <1>; | |
-+ | |
-+ status = "disabled"; | |
-+ }; | |
-+ | |
-+ pcie0_phy: phy@86000 { | |
-+ compatible = "qcom,ipq5018-uniphy-pcie-phy"; | |
-+ reg = <0x00086000 0x1000>; | |
-+ | |
-+ clocks = <&gcc GCC_PCIE0_PIPE_CLK>; | |
-+ | |
-+ resets = <&gcc GCC_PCIE0_PHY_BCR>, | |
-+ <&gcc GCC_PCIE0PHY_PHY_BCR>; | |
-+ | |
-+ #clock-cells = <0>; | |
-+ #phy-cells = <0>; | |
-+ | |
-+ num-lanes = <2>; | |
-+ | |
-+ status = "disabled"; | |
-+ }; | |
-+ | |
- tlmm: pinctrl@1000000 { | |
- compatible = "qcom,ipq5018-tlmm"; | |
- reg = <0x01000000 0x300000>; | |
-@@ -170,8 +204,8 @@ | |
- reg = <0x01800000 0x80000>; | |
- clocks = <&xo_board_clk>, | |
- <&sleep_clk>, | |
-- <0>, | |
-- <0>, | |
-+ <&pcie0_phy>, | |
-+ <&pcie1_phy>, | |
- <0>, | |
- <0>, | |
- <0>, | |
-@@ -387,6 +421,208 @@ | |
- status = "disabled"; | |
- }; | |
- }; | |
-+ | |
-+ pcie1: pcie@80000000 { | |
-+ compatible = "qcom,pcie-ipq5018"; | |
-+ reg = <0x80000000 0xf1d>, | |
-+ <0x80000f20 0xa8>, | |
-+ <0x80001000 0x1000>, | |
-+ <0x00078000 0x3000>, | |
-+ <0x80100000 0x1000>, | |
-+ <0x0007b000 0x1000>; | |
-+ reg-names = "dbi", | |
-+ "elbi", | |
-+ "atu", | |
-+ "parf", | |
-+ "config", | |
-+ "mhi"; | |
-+ device_type = "pci"; | |
-+ linux,pci-domain = <1>; | |
-+ bus-range = <0x00 0xff>; | |
-+ num-lanes = <1>; | |
-+ #address-cells = <3>; | |
-+ #size-cells = <2>; | |
-+ | |
-+ /* The controller supports Gen3, but the connected PHY is Gen2-capable */ | |
-+ max-link-speed = <2>; | |
-+ | |
-+ phys = <&pcie1_phy>; | |
-+ phy-names ="pciephy"; | |
-+ | |
-+ ranges = <0x01000000 0 0x00000000 0x80200000 0 0x00100000>, | |
-+ <0x02000000 0 0x80300000 0x80300000 0 0x10000000>; | |
-+ | |
-+ msi-map = <0x0 &v2m0 0x0 0xff8>; | |
-+ | |
-+ interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; | |
-+ interrupt-names = "msi0", | |
-+ "msi1", | |
-+ "msi2", | |
-+ "msi3", | |
-+ "msi4", | |
-+ "msi5", | |
-+ "msi6", | |
-+ "msi7", | |
-+ "global"; | |
-+ | |
-+ #interrupt-cells = <1>; | |
-+ interrupt-map-mask = <0 0 0 0x7>; | |
-+ interrupt-map = <0 0 0 1 &intc 0 0 142 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <0 0 0 2 &intc 0 0 143 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <0 0 0 3 &intc 0 0 144 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <0 0 0 4 &intc 0 0 145 IRQ_TYPE_LEVEL_HIGH>; | |
-+ | |
-+ clocks = <&gcc GCC_SYS_NOC_PCIE1_AXI_CLK>, | |
-+ <&gcc GCC_PCIE1_AXI_M_CLK>, | |
-+ <&gcc GCC_PCIE1_AXI_S_CLK>, | |
-+ <&gcc GCC_PCIE1_AHB_CLK>, | |
-+ <&gcc GCC_PCIE1_AUX_CLK>, | |
-+ <&gcc GCC_PCIE1_AXI_S_BRIDGE_CLK>; | |
-+ clock-names = "iface", | |
-+ "axi_m", | |
-+ "axi_s", | |
-+ "ahb", | |
-+ "aux", | |
-+ "axi_bridge"; | |
-+ | |
-+ resets = <&gcc GCC_PCIE1_PIPE_ARES>, | |
-+ <&gcc GCC_PCIE1_SLEEP_ARES>, | |
-+ <&gcc GCC_PCIE1_CORE_STICKY_ARES>, | |
-+ <&gcc GCC_PCIE1_AXI_MASTER_ARES>, | |
-+ <&gcc GCC_PCIE1_AXI_SLAVE_ARES>, | |
-+ <&gcc GCC_PCIE1_AHB_ARES>, | |
-+ <&gcc GCC_PCIE1_AXI_MASTER_STICKY_ARES>, | |
-+ <&gcc GCC_PCIE1_AXI_SLAVE_STICKY_ARES>; | |
-+ reset-names = "pipe", | |
-+ "sleep", | |
-+ "sticky", | |
-+ "axi_m", | |
-+ "axi_s", | |
-+ "ahb", | |
-+ "axi_m_sticky", | |
-+ "axi_s_sticky"; | |
-+ | |
-+ status = "disabled"; | |
-+ | |
-+ pcie@0 { | |
-+ device_type = "pci"; | |
-+ reg = <0x0 0x0 0x0 0x0 0x0>; | |
-+ bus-range = <0x01 0xff>; | |
-+ | |
-+ #address-cells = <3>; | |
-+ #size-cells = <2>; | |
-+ ranges; | |
-+ }; | |
-+ }; | |
-+ | |
-+ pcie0: pcie@a0000000 { | |
-+ compatible = "qcom,pcie-ipq5018"; | |
-+ reg = <0xa0000000 0xf1d>, | |
-+ <0xa0000f20 0xa8>, | |
-+ <0xa0001000 0x1000>, | |
-+ <0x00080000 0x3000>, | |
-+ <0xa0100000 0x1000>, | |
-+ <0x00083000 0x1000>; | |
-+ reg-names = "dbi", | |
-+ "elbi", | |
-+ "atu", | |
-+ "parf", | |
-+ "config", | |
-+ "mhi"; | |
-+ device_type = "pci"; | |
-+ linux,pci-domain = <0>; | |
-+ bus-range = <0x00 0xff>; | |
-+ num-lanes = <2>; | |
-+ #address-cells = <3>; | |
-+ #size-cells = <2>; | |
-+ | |
-+ /* The controller supports Gen3, but the connected PHY is Gen2-capable */ | |
-+ max-link-speed = <2>; | |
-+ | |
-+ phys = <&pcie0_phy>; | |
-+ phy-names ="pciephy"; | |
-+ | |
-+ ranges = <0x01000000 0 0x00000000 0xa0200000 0 0x00100000>, | |
-+ <0x02000000 0 0xa0300000 0xa0300000 0 0x10000000>; | |
-+ | |
-+ msi-map = <0x0 &v2m0 0x0 0xff8>; | |
-+ | |
-+ interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; | |
-+ interrupt-names = "msi0", | |
-+ "msi1", | |
-+ "msi2", | |
-+ "msi3", | |
-+ "msi4", | |
-+ "msi5", | |
-+ "msi6", | |
-+ "msi7", | |
-+ "global"; | |
-+ | |
-+ #interrupt-cells = <1>; | |
-+ interrupt-map-mask = <0 0 0 0x7>; | |
-+ interrupt-map = <0 0 0 1 &intc 0 0 75 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <0 0 0 2 &intc 0 0 78 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <0 0 0 3 &intc 0 0 79 IRQ_TYPE_LEVEL_HIGH>, | |
-+ <0 0 0 4 &intc 0 0 83 IRQ_TYPE_LEVEL_HIGH>; | |
-+ | |
-+ clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>, | |
-+ <&gcc GCC_PCIE0_AXI_M_CLK>, | |
-+ <&gcc GCC_PCIE0_AXI_S_CLK>, | |
-+ <&gcc GCC_PCIE0_AHB_CLK>, | |
-+ <&gcc GCC_PCIE0_AUX_CLK>, | |
-+ <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>; | |
-+ clock-names = "iface", | |
-+ "axi_m", | |
-+ "axi_s", | |
-+ "ahb", | |
-+ "aux", | |
-+ "axi_bridge"; | |
-+ | |
-+ resets = <&gcc GCC_PCIE0_PIPE_ARES>, | |
-+ <&gcc GCC_PCIE0_SLEEP_ARES>, | |
-+ <&gcc GCC_PCIE0_CORE_STICKY_ARES>, | |
-+ <&gcc GCC_PCIE0_AXI_MASTER_ARES>, | |
-+ <&gcc GCC_PCIE0_AXI_SLAVE_ARES>, | |
-+ <&gcc GCC_PCIE0_AHB_ARES>, | |
-+ <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>, | |
-+ <&gcc GCC_PCIE0_AXI_SLAVE_STICKY_ARES>; | |
-+ reset-names = "pipe", | |
-+ "sleep", | |
-+ "sticky", | |
-+ "axi_m", | |
-+ "axi_s", | |
-+ "ahb", | |
-+ "axi_m_sticky", | |
-+ "axi_s_sticky"; | |
-+ | |
-+ status = "disabled"; | |
-+ | |
-+ pcie@0 { | |
-+ device_type = "pci"; | |
-+ reg = <0x0 0x0 0x0 0x0 0x0>; | |
-+ bus-range = <0x01 0xff>; | |
-+ | |
-+ #address-cells = <3>; | |
-+ #size-cells = <2>; | |
-+ ranges; | |
-+ }; | |
-+ }; | |
- }; | |
- | |
- timer { | |
diff --git a/target/linux/qualcommax/patches-6.12/0049-v6.16-arm64-dts-qcom-ipq5018-enable-the-download-mode-supp.patch b/target/linux/qualcommax/patches-6.12/0049-v6.16-arm64-dts-qcom-ipq5018-enable-the-download-mode-supp.patch | |
deleted file mode 100644 | |
index 08200516a3..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0049-v6.16-arm64-dts-qcom-ipq5018-enable-the-download-mode-supp.patch | |
+++ /dev/null | |
@@ -1,38 +0,0 @@ | |
-From 43fefd6c71291b5793e7c4052b6e3e54d1d87715 Mon Sep 17 00:00:00 2001 | |
-From: George Moussalem <[email protected]> | |
-Date: Mon, 12 May 2025 18:36:47 +0400 | |
-Subject: [PATCH] arm64: dts: qcom: ipq5018: enable the download mode support | |
- | |
-Enable support for download mode to collect RAM dumps in case of a | |
-system crash, allowing post mortem analysis. | |
- | |
-Signed-off-by: George Moussalem <[email protected]> | |
-Reviewed-by: Konrad Dybcio <[email protected]> | |
-Link: https://lore.kernel.org/r/[email protected] | |
-Signed-off-by: Bjorn Andersson <[email protected]> | |
---- | |
- arch/arm64/boot/dts/qcom/ipq5018.dtsi | 6 ++++++ | |
- 1 file changed, 6 insertions(+) | |
- | |
---- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-@@ -79,6 +79,7 @@ | |
- firmware { | |
- scm { | |
- compatible = "qcom,scm-ipq5018", "qcom,scm"; | |
-+ qcom,dload-mode = <&tcsr 0x6100>; | |
- qcom,sdi-enabled; | |
- }; | |
- }; | |
-@@ -221,6 +222,11 @@ | |
- #hwlock-cells = <1>; | |
- }; | |
- | |
-+ tcsr: syscon@1937000 { | |
-+ compatible = "qcom,tcsr-ipq5018", "syscon"; | |
-+ reg = <0x01937000 0x21000>; | |
-+ }; | |
-+ | |
- sdhc_1: mmc@7804000 { | |
- compatible = "qcom,ipq5018-sdhci", "qcom,sdhci-msm-v5"; | |
- reg = <0x7804000 0x1000>; | |
diff --git a/target/linux/qualcommax/patches-6.12/0053-v6.16-thermal-drivers-qcom-tsens-Add-support-for-IPQ5018-t.patch b/target/linux/qualcommax/patches-6.12/0053-v6.16-thermal-drivers-qcom-tsens-Add-support-for-IPQ5018-t.patch | |
deleted file mode 100644 | |
index 1c09ffc70e..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0053-v6.16-thermal-drivers-qcom-tsens-Add-support-for-IPQ5018-t.patch | |
+++ /dev/null | |
@@ -1,64 +0,0 @@ | |
-From 04b31cc53fe0df0e87a37d18a3c0363d7dee218f Mon Sep 17 00:00:00 2001 | |
-From: Sricharan Ramabadhran <[email protected]> | |
-Date: Fri, 28 Feb 2025 09:11:38 +0400 | |
-Subject: [PATCH] thermal/drivers/qcom/tsens: Add support for IPQ5018 tsens | |
- | |
-IPQ5018 has tsens IP V1.0, 5 sensors of which 4 are in use and 1 | |
-interrupt. The IP does not have a RPM, hence use init routine for | |
-tsens v1.0 without RPM which does not early enable. | |
- | |
-Reviewed-by: Dmitry Baryshkov <[email protected]> | |
-Signed-off-by: Sricharan Ramabadhran <[email protected]> | |
-Signed-off-by: George Moussalem <[email protected]> | |
-Link: https://lore.kernel.org/r/DS7PR19MB8883BD0E36C08DD1D03CE1CB9DCC2@DS7PR19MB8883.namprd19.prod.outlook.com | |
-Signed-off-by: Daniel Lezcano <[email protected]> | |
---- | |
- drivers/thermal/qcom/tsens-v1.c | 14 ++++++++++++++ | |
- drivers/thermal/qcom/tsens.c | 3 +++ | |
- drivers/thermal/qcom/tsens.h | 3 +++ | |
- 3 files changed, 20 insertions(+) | |
- | |
---- a/drivers/thermal/qcom/tsens-v1.c | |
-+++ b/drivers/thermal/qcom/tsens-v1.c | |
-@@ -242,3 +242,17 @@ struct tsens_plat_data data_8976 = { | |
- .feat = &tsens_v1_feat, | |
- .fields = tsens_v1_regfields, | |
- }; | |
-+ | |
-+const struct tsens_ops ops_ipq5018 = { | |
-+ .init = init_tsens_v1_no_rpm, | |
-+ .calibrate = tsens_calibrate_common, | |
-+ .get_temp = get_temp_tsens_valid, | |
-+}; | |
-+ | |
-+const struct tsens_plat_data data_ipq5018 = { | |
-+ .num_sensors = 5, | |
-+ .ops = &ops_ipq5018, | |
-+ .hw_ids = (unsigned int []){0, 1, 2, 3, 4}, | |
-+ .feat = &tsens_v1_no_rpm_feat, | |
-+ .fields = tsens_v1_regfields, | |
-+}; | |
---- a/drivers/thermal/qcom/tsens.c | |
-+++ b/drivers/thermal/qcom/tsens.c | |
-@@ -1108,6 +1108,9 @@ static SIMPLE_DEV_PM_OPS(tsens_pm_ops, t | |
- | |
- static const struct of_device_id tsens_table[] = { | |
- { | |
-+ .compatible = "qcom,ipq5018-tsens", | |
-+ .data = &data_ipq5018, | |
-+ }, { | |
- .compatible = "qcom,ipq5332-tsens", | |
- .data = &data_ipq5332, | |
- }, { | |
---- a/drivers/thermal/qcom/tsens.h | |
-+++ b/drivers/thermal/qcom/tsens.h | |
-@@ -652,6 +652,9 @@ extern struct tsens_plat_data data_8226, | |
- /* TSENS v1 targets */ | |
- extern struct tsens_plat_data data_tsens_v1, data_8937, data_8976, data_8956; | |
- | |
-+/* TSENS v1 with no RPM targets */ | |
-+extern const struct tsens_plat_data data_ipq5018; | |
-+ | |
- /* TSENS v2 targets */ | |
- extern struct tsens_plat_data data_8996, data_ipq8074, data_tsens_v2; | |
- extern const struct tsens_plat_data data_ipq5332, data_ipq5424; | |
diff --git a/target/linux/qualcommax/patches-6.12/0122-arm64-dts-ipq8074-add-CPU-clock.patch b/target/linux/qualcommax/patches-6.12/0122-arm64-dts-ipq8074-add-CPU-clock.patch | |
deleted file mode 100644 | |
index a6265ff006..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0122-arm64-dts-ipq8074-add-CPU-clock.patch | |
+++ /dev/null | |
@@ -1,59 +0,0 @@ | |
-From cb3ef99c1553565e1dc0301ccd5c1c0fa2d15c15 Mon Sep 17 00:00:00 2001 | |
-From: Robert Marko <[email protected]> | |
-Date: Fri, 31 Dec 2021 17:56:14 +0100 | |
-Subject: [PATCH] arm64: dts: ipq8074: add CPU clock | |
- | |
-Now that CPU clock is exposed and can be controlled, add the necessary | |
-properties to the CPU nodes. | |
- | |
-Signed-off-by: Robert Marko <[email protected]> | |
---- | |
- arch/arm64/boot/dts/qcom/ipq8074.dtsi | 9 +++++++++ | |
- 1 file changed, 9 insertions(+) | |
- | |
---- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi | |
-@@ -5,6 +5,7 @@ | |
- | |
- #include <dt-bindings/interrupt-controller/arm-gic.h> | |
- #include <dt-bindings/clock/qcom,gcc-ipq8074.h> | |
-+#include <dt-bindings/clock/qcom,apss-ipq.h> | |
- | |
- / { | |
- #address-cells = <2>; | |
-@@ -38,6 +39,8 @@ | |
- reg = <0x0>; | |
- next-level-cache = <&l2_0>; | |
- enable-method = "psci"; | |
-+ clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
-+ clock-names = "cpu"; | |
- }; | |
- | |
- cpu1: cpu@1 { | |
-@@ -46,6 +49,8 @@ | |
- enable-method = "psci"; | |
- reg = <0x1>; | |
- next-level-cache = <&l2_0>; | |
-+ clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
-+ clock-names = "cpu"; | |
- }; | |
- | |
- cpu2: cpu@2 { | |
-@@ -54,6 +59,8 @@ | |
- enable-method = "psci"; | |
- reg = <0x2>; | |
- next-level-cache = <&l2_0>; | |
-+ clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
-+ clock-names = "cpu"; | |
- }; | |
- | |
- cpu3: cpu@3 { | |
-@@ -62,6 +69,8 @@ | |
- enable-method = "psci"; | |
- reg = <0x3>; | |
- next-level-cache = <&l2_0>; | |
-+ clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
-+ clock-names = "cpu"; | |
- }; | |
- | |
- l2_0: l2-cache { | |
diff --git a/target/linux/qualcommax/patches-6.12/0123-arm64-dts-ipq8074-add-cooling-cells-to-CPU-nodes.patch b/target/linux/qualcommax/patches-6.12/0123-arm64-dts-ipq8074-add-cooling-cells-to-CPU-nodes.patch | |
deleted file mode 100644 | |
index bea358045f..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0123-arm64-dts-ipq8074-add-cooling-cells-to-CPU-nodes.patch | |
+++ /dev/null | |
@@ -1,48 +0,0 @@ | |
-From 347ca56e86c99021fad059b9a8ef101245b8507e Mon Sep 17 00:00:00 2001 | |
-From: Robert Marko <[email protected]> | |
-Date: Fri, 31 Dec 2021 20:38:06 +0100 | |
-Subject: [PATCH] arm64: dts: ipq8074: add cooling cells to CPU nodes | |
- | |
-Since there is CPU Freq support as well as thermal sensor support | |
-now for the IPQ8074, add cooling cells to CPU nodes so that they can | |
-be used as cooling devices using CPU Freq. | |
- | |
-Signed-off-by: Robert Marko <[email protected]> | |
---- | |
- arch/arm64/boot/dts/qcom/ipq8074.dtsi | 4 ++++ | |
- 1 file changed, 4 insertions(+) | |
- | |
---- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi | |
-@@ -41,6 +41,7 @@ | |
- enable-method = "psci"; | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- clock-names = "cpu"; | |
-+ #cooling-cells = <2>; | |
- }; | |
- | |
- cpu1: cpu@1 { | |
-@@ -51,6 +52,7 @@ | |
- next-level-cache = <&l2_0>; | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- clock-names = "cpu"; | |
-+ #cooling-cells = <2>; | |
- }; | |
- | |
- cpu2: cpu@2 { | |
-@@ -61,6 +63,7 @@ | |
- next-level-cache = <&l2_0>; | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- clock-names = "cpu"; | |
-+ #cooling-cells = <2>; | |
- }; | |
- | |
- cpu3: cpu@3 { | |
-@@ -71,6 +74,7 @@ | |
- next-level-cache = <&l2_0>; | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- clock-names = "cpu"; | |
-+ #cooling-cells = <2>; | |
- }; | |
- | |
- l2_0: l2-cache { | |
diff --git a/target/linux/qualcommax/patches-6.12/0130-arm64-dts-qcom-ipq8074-add-CPU-OPP-table.patch b/target/linux/qualcommax/patches-6.12/0130-arm64-dts-qcom-ipq8074-add-CPU-OPP-table.patch | |
deleted file mode 100644 | |
index 9de502c4c3..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0130-arm64-dts-qcom-ipq8074-add-CPU-OPP-table.patch | |
+++ /dev/null | |
@@ -1,102 +0,0 @@ | |
-From a20c4e8738a00087aa5d53fe5148ed484e23d229 Mon Sep 17 00:00:00 2001 | |
-From: Robert Marko <[email protected]> | |
-Date: Sat, 31 Dec 2022 13:56:26 +0100 | |
-Subject: [PATCH] arm64: dts: qcom: ipq8074: add CPU OPP table | |
- | |
-Now that there is NVMEM CPUFreq support for IPQ8074, we can add the OPP | |
-table for SoC. | |
- | |
-Signed-off-by: Robert Marko <[email protected]> | |
---- | |
- arch/arm64/boot/dts/qcom/ipq8074.dtsi | 52 +++++++++++++++++++++++++++ | |
- 1 file changed, 52 insertions(+) | |
- | |
---- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi | |
-@@ -42,6 +42,7 @@ | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- clock-names = "cpu"; | |
- #cooling-cells = <2>; | |
-+ operating-points-v2 = <&cpu_opp_table>; | |
- }; | |
- | |
- cpu1: cpu@1 { | |
-@@ -53,6 +54,7 @@ | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- clock-names = "cpu"; | |
- #cooling-cells = <2>; | |
-+ operating-points-v2 = <&cpu_opp_table>; | |
- }; | |
- | |
- cpu2: cpu@2 { | |
-@@ -64,6 +66,7 @@ | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- clock-names = "cpu"; | |
- #cooling-cells = <2>; | |
-+ operating-points-v2 = <&cpu_opp_table>; | |
- }; | |
- | |
- cpu3: cpu@3 { | |
-@@ -75,6 +78,7 @@ | |
- clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>; | |
- clock-names = "cpu"; | |
- #cooling-cells = <2>; | |
-+ operating-points-v2 = <&cpu_opp_table>; | |
- }; | |
- | |
- l2_0: l2-cache { | |
-@@ -84,6 +88,54 @@ | |
- }; | |
- }; | |
- | |
-+ cpu_opp_table: opp-table { | |
-+ compatible = "operating-points-v2-kryo-cpu"; | |
-+ nvmem-cells = <&cpr_efuse_speedbin>; | |
-+ opp-shared; | |
-+ | |
-+ opp-1017600000 { | |
-+ opp-hz = /bits/ 64 <1017600000>; | |
-+ opp-microvolt = <1>; | |
-+ opp-supported-hw = <0xf>; | |
-+ clock-latency-ns = <200000>; | |
-+ }; | |
-+ | |
-+ opp-1382400000 { | |
-+ opp-hz = /bits/ 64 <1382400000>; | |
-+ opp-microvolt = <2>; | |
-+ opp-supported-hw = <0xf>; | |
-+ clock-latency-ns = <200000>; | |
-+ }; | |
-+ | |
-+ opp-1651200000 { | |
-+ opp-hz = /bits/ 64 <1651200000>; | |
-+ opp-microvolt = <3>; | |
-+ opp-supported-hw = <0x1>; | |
-+ clock-latency-ns = <200000>; | |
-+ }; | |
-+ | |
-+ opp-1843200000 { | |
-+ opp-hz = /bits/ 64 <1843200000>; | |
-+ opp-microvolt = <4>; | |
-+ opp-supported-hw = <0x1>; | |
-+ clock-latency-ns = <200000>; | |
-+ }; | |
-+ | |
-+ opp-1920000000 { | |
-+ opp-hz = /bits/ 64 <1920000000>; | |
-+ opp-microvolt = <5>; | |
-+ opp-supported-hw = <0x1>; | |
-+ clock-latency-ns = <200000>; | |
-+ }; | |
-+ | |
-+ opp-2208000000 { | |
-+ opp-hz = /bits/ 64 <2208000000>; | |
-+ opp-microvolt = <6>; | |
-+ opp-supported-hw = <0x1>; | |
-+ clock-latency-ns = <200000>; | |
-+ }; | |
-+ }; | |
-+ | |
- pmu { | |
- compatible = "arm,cortex-a53-pmu"; | |
- interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; | |
diff --git a/target/linux/qualcommax/patches-6.12/0150-arm64-dts-qcom-ipq5018-Add-tsens-node.patch b/target/linux/qualcommax/patches-6.12/0150-arm64-dts-qcom-ipq5018-Add-tsens-node.patch | |
deleted file mode 100644 | |
index bed9a1dc00..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0150-arm64-dts-qcom-ipq5018-Add-tsens-node.patch | |
+++ /dev/null | |
@@ -1,203 +0,0 @@ | |
-From: George Moussalem <[email protected]> | |
-Date: Fri, 28 Feb 2025 09:11:39 +0400 | |
-Subject: [PATCH v9 6/6] arm64: dts: qcom: ipq5018: Add tsens node | |
- | |
-From: Sricharan Ramabadhran <[email protected]> | |
- | |
-IPQ5018 has tsens V1.0 IP with 5 sensors, though 4 are in use. | |
-There is no RPM, so tsens has to be manually enabled. Adding the tsens | |
-and nvmem nodes and adding 4 thermal sensors (zones). With the | |
-critical temperature being 120'C and action is to reboot. | |
- | |
-Reviewed-by: Dmitry Baryshkov <[email protected]> | |
-Signed-off-by: Sricharan Ramabadhran <[email protected]> | |
-Signed-off-by: George Moussalem <[email protected]> | |
---- | |
- arch/arm64/boot/dts/qcom/ipq5018.dtsi | 169 ++++++++++++++++++++++++++ | |
- 1 file changed, 169 insertions(+) | |
- | |
---- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-@@ -182,6 +182,117 @@ | |
- status = "disabled"; | |
- }; | |
- | |
-+ qfprom: qfprom@a0000 { | |
-+ compatible = "qcom,ipq5018-qfprom", "qcom,qfprom"; | |
-+ reg = <0x000a0000 0x1000>; | |
-+ #address-cells = <1>; | |
-+ #size-cells = <1>; | |
-+ | |
-+ tsens_mode: mode@249 { | |
-+ reg = <0x249 0x1>; | |
-+ bits = <0 3>; | |
-+ }; | |
-+ | |
-+ tsens_base1: base1@249 { | |
-+ reg = <0x249 0x2>; | |
-+ bits = <3 8>; | |
-+ }; | |
-+ | |
-+ tsens_base2: base2@24a { | |
-+ reg = <0x24a 0x2>; | |
-+ bits = <3 8>; | |
-+ }; | |
-+ | |
-+ tsens_s0_p1: s0-p1@24b { | |
-+ reg = <0x24b 0x2>; | |
-+ bits = <2 6>; | |
-+ }; | |
-+ | |
-+ tsens_s0_p2: s0-p2@24c { | |
-+ reg = <0x24c 0x1>; | |
-+ bits = <1 6>; | |
-+ }; | |
-+ | |
-+ tsens_s1_p1: s1-p1@24c { | |
-+ reg = <0x24c 0x2>; | |
-+ bits = <7 6>; | |
-+ }; | |
-+ | |
-+ tsens_s1_p2: s1-p2@24d { | |
-+ reg = <0x24d 0x2>; | |
-+ bits = <5 6>; | |
-+ }; | |
-+ | |
-+ tsens_s2_p1: s2-p1@24e { | |
-+ reg = <0x24e 0x2>; | |
-+ bits = <3 6>; | |
-+ }; | |
-+ | |
-+ tsens_s2_p2: s2-p2@24f { | |
-+ reg = <0x24f 0x1>; | |
-+ bits = <1 6>; | |
-+ }; | |
-+ | |
-+ tsens_s3_p1: s3-p1@24f { | |
-+ reg = <0x24f 0x2>; | |
-+ bits = <7 6>; | |
-+ }; | |
-+ | |
-+ tsens_s3_p2: s3-p2@250 { | |
-+ reg = <0x250 0x2>; | |
-+ bits = <5 6>; | |
-+ }; | |
-+ | |
-+ tsens_s4_p1: s4-p1@251 { | |
-+ reg = <0x251 0x2>; | |
-+ bits = <3 6>; | |
-+ }; | |
-+ | |
-+ tsens_s4_p2: s4-p2@254 { | |
-+ reg = <0x254 0x1>; | |
-+ bits = <0 6>; | |
-+ }; | |
-+ }; | |
-+ | |
-+ tsens: thermal-sensor@4a9000 { | |
-+ compatible = "qcom,ipq5018-tsens"; | |
-+ reg = <0x004a9000 0x1000>, /* TM */ | |
-+ <0x004a8000 0x1000>; /* SROT */ | |
-+ | |
-+ nvmem-cells = <&tsens_mode>, | |
-+ <&tsens_base1>, | |
-+ <&tsens_base2>, | |
-+ <&tsens_s0_p1>, | |
-+ <&tsens_s0_p2>, | |
-+ <&tsens_s1_p1>, | |
-+ <&tsens_s1_p2>, | |
-+ <&tsens_s2_p1>, | |
-+ <&tsens_s2_p2>, | |
-+ <&tsens_s3_p1>, | |
-+ <&tsens_s3_p2>, | |
-+ <&tsens_s4_p1>, | |
-+ <&tsens_s4_p2>; | |
-+ | |
-+ nvmem-cell-names = "mode", | |
-+ "base1", | |
-+ "base2", | |
-+ "s0_p1", | |
-+ "s0_p2", | |
-+ "s1_p1", | |
-+ "s1_p2", | |
-+ "s2_p1", | |
-+ "s2_p2", | |
-+ "s3_p1", | |
-+ "s3_p2", | |
-+ "s4_p1", | |
-+ "s4_p2"; | |
-+ | |
-+ interrupts = <GIC_SPI 184 IRQ_TYPE_EDGE_RISING>; | |
-+ interrupt-names = "uplow"; | |
-+ #qcom,sensors = <5>; | |
-+ #thermal-sensor-cells = <1>; | |
-+ }; | |
-+ | |
- tlmm: pinctrl@1000000 { | |
- compatible = "qcom,ipq5018-tlmm"; | |
- reg = <0x01000000 0x300000>; | |
-@@ -630,6 +741,64 @@ | |
- }; | |
- }; | |
- }; | |
-+ | |
-+ thermal-zones { | |
-+ cpu-thermal { | |
-+ polling-delay-passive = <0>; | |
-+ polling-delay = <0>; | |
-+ thermal-sensors = <&tsens 2>; | |
-+ | |
-+ trips { | |
-+ cpu-critical { | |
-+ temperature = <120000>; | |
-+ hysteresis = <2>; | |
-+ type = "critical"; | |
-+ }; | |
-+ }; | |
-+ }; | |
-+ | |
-+ gephy-thermal { | |
-+ polling-delay-passive = <0>; | |
-+ polling-delay = <0>; | |
-+ thermal-sensors = <&tsens 4>; | |
-+ | |
-+ trips { | |
-+ gephy-critical { | |
-+ temperature = <120000>; | |
-+ hysteresis = <2>; | |
-+ type = "critical"; | |
-+ }; | |
-+ }; | |
-+ }; | |
-+ | |
-+ top-glue-thermal { | |
-+ polling-delay-passive = <0>; | |
-+ polling-delay = <0>; | |
-+ thermal-sensors = <&tsens 3>; | |
-+ | |
-+ trips { | |
-+ top_glue-critical { | |
-+ temperature = <120000>; | |
-+ hysteresis = <2>; | |
-+ type = "critical"; | |
-+ }; | |
-+ }; | |
-+ }; | |
-+ | |
-+ ubi32-thermal { | |
-+ polling-delay-passive = <0>; | |
-+ polling-delay = <0>; | |
-+ thermal-sensors = <&tsens 1>; | |
-+ | |
-+ trips { | |
-+ ubi32-critical { | |
-+ temperature = <120000>; | |
-+ hysteresis = <2>; | |
-+ type = "critical"; | |
-+ }; | |
-+ }; | |
-+ }; | |
-+ }; | |
- | |
- timer { | |
- compatible = "arm,armv8-timer"; | |
diff --git a/target/linux/qualcommax/patches-6.12/0304-dt-bindings-pwm-add-IPQ5018-compatible.patch b/target/linux/qualcommax/patches-6.12/0304-dt-bindings-pwm-add-IPQ5018-compatible.patch | |
deleted file mode 100644 | |
index 5705028931..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0304-dt-bindings-pwm-add-IPQ5018-compatible.patch | |
+++ /dev/null | |
@@ -1,22 +0,0 @@ | |
-From: George Moussalem <[email protected]> | |
-Subject: [PATCH] dt-bindings: mfd: qcom,tcsr: Add IPQ5018 compatible | |
-Date: Sun, 06 Oct 2024 16:34:11 +0400 | |
- | |
-Add compatible for IPQ5018. | |
- | |
-Signed-off-by: George Moussalem <[email protected]> | |
---- | |
---- a/Documentation/devicetree/bindings/pwm/qcom,ipq6018-pwm.yaml | |
-+++ b/Documentation/devicetree/bindings/pwm/qcom,ipq6018-pwm.yaml | |
-@@ -11,7 +11,10 @@ maintainers: | |
- | |
- properties: | |
- compatible: | |
-- const: qcom,ipq6018-pwm | |
-+ items: | |
-+ - enum: | |
-+ - qcom,ipq5018-pwm | |
-+ - const: qcom,ipq6018-pwm | |
- | |
- reg: | |
- description: Offset of PWM register in the TCSR block. | |
diff --git a/target/linux/qualcommax/patches-6.12/0305-pinctrl-qcom-IPQ5018-update-pwm-groups.patch b/target/linux/qualcommax/patches-6.12/0305-pinctrl-qcom-IPQ5018-update-pwm-groups.patch | |
deleted file mode 100644 | |
index 476e5f6ba1..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0305-pinctrl-qcom-IPQ5018-update-pwm-groups.patch | |
+++ /dev/null | |
@@ -1,65 +0,0 @@ | |
-From: George Moussalem <[email protected]> | |
-Subject: [PATCH] pinctrl: qcom: IPQ5018: update pwm groups | |
-Date: Wed, 27 Nov 2024 09:14:11 +0400 | |
- | |
-GPIO 1, 30, and 46 are used to control PWM1, PWM3, and PWM0 respectively which | |
-in turn drive the PWM led, so let's update the pwm# and pingroups accordingly. | |
- | |
-Signed-off-by: George Moussalem <[email protected]> | |
---- | |
---- a/drivers/pinctrl/qcom/pinctrl-ipq5018.c | |
-+++ b/drivers/pinctrl/qcom/pinctrl-ipq5018.c | |
-@@ -541,7 +541,7 @@ static const char * const qdss_tracectl_ | |
- }; | |
- | |
- static const char * const pwm0_groups[] = { | |
-- "gpio42", | |
-+ "gpio42", "gpio46", | |
- }; | |
- | |
- static const char * const qdss_cti_trig_out_b0_groups[] = { | |
-@@ -549,7 +549,7 @@ static const char * const qdss_cti_trig_ | |
- }; | |
- | |
- static const char * const pwm1_groups[] = { | |
-- "gpio43", | |
-+ "gpio43", "gpio1", | |
- }; | |
- | |
- static const char * const qdss_cti_trig_in_b0_groups[] = { | |
-@@ -565,7 +565,7 @@ static const char * const qdss_cti_trig_ | |
- }; | |
- | |
- static const char * const pwm3_groups[] = { | |
-- "gpio45", | |
-+ "gpio45", "gpio30", | |
- }; | |
- | |
- static const char * const qdss_cti_trig_in_b1_groups[] = { | |
-@@ -679,7 +679,7 @@ static const struct pinfunction ipq5018_ | |
- | |
- static const struct msm_pingroup ipq5018_groups[] = { | |
- PINGROUP(0, atest_char, _, qdss_cti_trig_out_a0, wci_txd, wci_rxd, xfem, _, _, _), | |
-- PINGROUP(1, atest_char, _, qdss_cti_trig_in_a0, wci_txd, wci_rxd, xfem, _, _, _), | |
-+ PINGROUP(1, atest_char, pwm1, qdss_cti_trig_in_a0, wci_txd, wci_rxd, xfem, _, _, _), | |
- PINGROUP(2, atest_char, _, qdss_cti_trig_out_a1, wci_txd, wci_rxd, xfem, _, _, _), | |
- PINGROUP(3, atest_char, _, qdss_cti_trig_in_a1, wci_txd, wci_rxd, xfem, _, _, _), | |
- PINGROUP(4, sdc1_data, qspi_data, blsp1_spi1, btss, dbg_out, qdss_traceclk_a, _, burn0, _), | |
-@@ -708,7 +708,7 @@ static const struct msm_pingroup ipq5018 | |
- PINGROUP(27, audio_txmclk, wsa_swrm, audio_txmclk, blsp2_spi, btss, _, qdss_tracedata_b, _, _), | |
- PINGROUP(28, audio_txbclk, wsa_swrm, blsp0_uart1, btss, qdss_tracedata_b, _, _, _, _), | |
- PINGROUP(29, audio_txfsync, _, blsp0_uart1, _, qdss_tracedata_b, _, _, _, _), | |
-- PINGROUP(30, audio_txd, led2, led0, _, _, _, _, _, _), | |
-+ PINGROUP(30, audio_txd, led2, led0, pwm3, _, _, _, _, _), | |
- PINGROUP(31, blsp2_spi0, blsp1_uart1, _, qdss_tracedata_b, eud_gpio, _, _, _, _), | |
- PINGROUP(32, blsp2_spi0, blsp1_uart1, _, qdss_tracedata_b, eud_gpio, _, _, _, _), | |
- PINGROUP(33, blsp2_i2c0, blsp2_spi0, blsp1_uart1, _, qdss_tracedata_b, eud_gpio, _, _, _), | |
-@@ -724,7 +724,7 @@ static const struct msm_pingroup ipq5018 | |
- PINGROUP(43, pwm1, qdss_cti_trig_in_b0, wci_txd, wci_rxd, xfem, _, _, _, _), | |
- PINGROUP(44, pwm2, qdss_cti_trig_out_b1, wci_txd, wci_rxd, xfem, _, _, _, _), | |
- PINGROUP(45, pwm3, qdss_cti_trig_in_b1, wci_txd, wci_rxd, xfem, _, _, _, _), | |
-- PINGROUP(46, led0, _, _, _, _, _, _, _, _), | |
-+ PINGROUP(46, led0, pwm0, _, _, _, _, _, _, _), | |
- }; | |
- | |
- static const struct msm_pinctrl_soc_data ipq5018_pinctrl = { | |
diff --git a/target/linux/qualcommax/patches-6.12/0306-arm64-dts-qcom-ipq5018-Add-PWM-node.patch b/target/linux/qualcommax/patches-6.12/0306-arm64-dts-qcom-ipq5018-Add-PWM-node.patch | |
deleted file mode 100644 | |
index b97aa11ebc..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0306-arm64-dts-qcom-ipq5018-Add-PWM-node.patch | |
+++ /dev/null | |
@@ -1,27 +0,0 @@ | |
-From: George Moussalem <[email protected]> | |
-Subject: [PATCH] arm64: dts: qcom: ipq5018: Add PWM node | |
-Date: Sun, 06 Oct 2024 16:34:11 +0400 | |
- | |
-Add PWM node. | |
- | |
-Signed-off-by: George Moussalem <[email protected]> | |
---- | |
---- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-@@ -338,6 +338,16 @@ | |
- reg = <0x01937000 0x21000>; | |
- }; | |
- | |
-+ pwm: pwm@1941010 { | |
-+ compatible = "qcom,ipq5018-pwm", "qcom,ipq6018-pwm"; | |
-+ reg = <0x01941010 0x20>; | |
-+ clocks = <&gcc GCC_ADSS_PWM_CLK>; | |
-+ assigned-clocks = <&gcc GCC_ADSS_PWM_CLK>; | |
-+ assigned-clock-rates = <100000000>; | |
-+ #pwm-cells = <2>; | |
-+ status = "disabled"; | |
-+ }; | |
-+ | |
- sdhc_1: mmc@7804000 { | |
- compatible = "qcom,ipq5018-sdhci", "qcom,sdhci-msm-v5"; | |
- reg = <0x7804000 0x1000>; | |
diff --git a/target/linux/qualcommax/patches-6.12/0324-arm64-dts-qcom-ipq5018-Add-crypto-nodes.patch b/target/linux/qualcommax/patches-6.12/0324-arm64-dts-qcom-ipq5018-Add-crypto-nodes.patch | |
deleted file mode 100644 | |
index 135624d97a..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0324-arm64-dts-qcom-ipq5018-Add-crypto-nodes.patch | |
+++ /dev/null | |
@@ -1,41 +0,0 @@ | |
-From: George Moussalem <[email protected]> | |
-Subject: [PATCH] arm64: dts: qcom: ipq5018: Add crypto nodes | |
-Date: Sun, 06 Oct 2024 16:34:11 +0400 | |
- | |
-Add dma controller and crypto nodes. | |
- | |
-Signed-off-by: George Moussalem <[email protected]> | |
---- | |
---- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-@@ -293,6 +293,30 @@ | |
- #thermal-sensor-cells = <1>; | |
- }; | |
- | |
-+ cryptobam: dma-controller@704000 { | |
-+ compatible = "qcom,bam-v1.7.0"; | |
-+ reg = <0x00704000 0x20000>; | |
-+ interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>; | |
-+ clocks = <&gcc GCC_CRYPTO_AHB_CLK>; | |
-+ clock-names = "bam_clk"; | |
-+ #dma-cells = <1>; | |
-+ qcom,ee = <1>; | |
-+ qcom,controlled-remotely; | |
-+ status = "disabled"; | |
-+ }; | |
-+ | |
-+ crypto: crypto@73a000 { | |
-+ compatible = "qcom,crypto-v5.1"; | |
-+ reg = <0x0073a000 0x6000>; | |
-+ clocks = <&gcc GCC_CRYPTO_AHB_CLK>, | |
-+ <&gcc GCC_CRYPTO_AXI_CLK>, | |
-+ <&gcc GCC_CRYPTO_CLK>; | |
-+ clock-names = "iface", "bus", "core"; | |
-+ dmas = <&cryptobam 2>, <&cryptobam 3>; | |
-+ dma-names = "rx", "tx"; | |
-+ status = "disabled"; | |
-+ }; | |
-+ | |
- tlmm: pinctrl@1000000 { | |
- compatible = "qcom,ipq5018-tlmm"; | |
- reg = <0x01000000 0x300000>; | |
diff --git a/target/linux/qualcommax/patches-6.12/0337-arm64-dts-qcom-ipq5018-Add-PRNG-node.patch b/target/linux/qualcommax/patches-6.12/0337-arm64-dts-qcom-ipq5018-Add-PRNG-node.patch | |
deleted file mode 100644 | |
index 23fb94e0e7..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0337-arm64-dts-qcom-ipq5018-Add-PRNG-node.patch | |
+++ /dev/null | |
@@ -1,25 +0,0 @@ | |
-From: George Moussalem <[email protected]> | |
-Subject: [PATCH] arm64: dts: qcom: ipq5018: Add PRNG node | |
-Date: Sun, 06 Oct 2024 16:34:11 +0400 | |
- | |
-Add PRNG node. | |
- | |
-Signed-off-by: George Moussalem <[email protected]> | |
---- | |
---- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-@@ -254,6 +254,14 @@ | |
- }; | |
- }; | |
- | |
-+ prng: rng@e3000 { | |
-+ compatible = "qcom,prng-ee"; | |
-+ reg = <0x000e3000 0x1000>; | |
-+ clocks = <&gcc GCC_PRNG_AHB_CLK>; | |
-+ clock-names = "core"; | |
-+ status = "disabled"; | |
-+ }; | |
-+ | |
- tsens: thermal-sensor@4a9000 { | |
- compatible = "qcom,ipq5018-tsens"; | |
- reg = <0x004a9000 0x1000>, /* TM */ | |
diff --git a/target/linux/qualcommax/patches-6.12/0339-arm64-dts-qcom-ipq5018-Add-QUP1-UART2-node.patch b/target/linux/qualcommax/patches-6.12/0339-arm64-dts-qcom-ipq5018-Add-QUP1-UART2-node.patch | |
deleted file mode 100644 | |
index c875690b58..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0339-arm64-dts-qcom-ipq5018-Add-QUP1-UART2-node.patch | |
+++ /dev/null | |
@@ -1,27 +0,0 @@ | |
-From: George Moussalem <[email protected]> | |
-Subject: [PATCH] arm64: dts: qcom: ipq5018: Add QUP1-UART2 node | |
-Date: Sun, 06 Oct 2024 16:34:11 +0400 | |
- | |
-Add QUP1-UART2 node. | |
- | |
-Signed-off-by: George Moussalem <[email protected]> | |
---- | |
---- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-@@ -417,6 +417,16 @@ | |
- status = "disabled"; | |
- }; | |
- | |
-+ blsp1_uart2: serial@78b0000 { | |
-+ compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; | |
-+ reg = <0x078b0000 0x200>; | |
-+ interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; | |
-+ clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, | |
-+ <&gcc GCC_BLSP1_AHB_CLK>; | |
-+ clock-names = "core", "iface"; | |
-+ status = "disabled"; | |
-+ }; | |
-+ | |
- blsp1_spi1: spi@78b5000 { | |
- compatible = "qcom,spi-qup-v2.2.1"; | |
- #address-cells = <1>; | |
diff --git a/target/linux/qualcommax/patches-6.12/0340-arm64-dts-qcom-ipq5018-Add-QUP3-I2C-node.patch b/target/linux/qualcommax/patches-6.12/0340-arm64-dts-qcom-ipq5018-Add-QUP3-I2C-node.patch | |
deleted file mode 100644 | |
index 70ddcc7147..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0340-arm64-dts-qcom-ipq5018-Add-QUP3-I2C-node.patch | |
+++ /dev/null | |
@@ -1,32 +0,0 @@ | |
-From: George Moussalem <[email protected]> | |
-Subject: [PATCH] arm64: dts: qcom: ipq5018: Add QUP3 I2C node | |
-Date: Sun, 06 Oct 2024 16:34:11 +0400 | |
- | |
-Add QUP3-I2C node. | |
- | |
-Signed-off-by: George Moussalem <[email protected]> | |
---- | |
---- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-@@ -441,6 +441,21 @@ | |
- status = "disabled"; | |
- }; | |
- | |
-+ blsp1_i2c3: i2c@78b7000 { | |
-+ compatible = "qcom,i2c-qup-v2.2.1"; | |
-+ #address-cells = <1>; | |
-+ #size-cells = <0>; | |
-+ reg = <0x078b7000 0x600>; | |
-+ interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; | |
-+ clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>, | |
-+ <&gcc GCC_BLSP1_AHB_CLK>; | |
-+ clock-names = "core", "iface"; | |
-+ clock-frequency = <400000>; | |
-+ dmas = <&blsp_dma 9>, <&blsp_dma 8>; | |
-+ dma-names = "tx", "rx"; | |
-+ status = "disabled"; | |
-+ }; | |
-+ | |
- usb: usb@8af8800 { | |
- compatible = "qcom,ipq5018-dwc3", "qcom,dwc3"; | |
- reg = <0x08af8800 0x400>; | |
diff --git a/target/linux/qualcommax/patches-6.12/0421-arm64-dts-qcom-ipq5018-Add-SPI-nand-node.patch b/target/linux/qualcommax/patches-6.12/0421-arm64-dts-qcom-ipq5018-Add-SPI-nand-node.patch | |
deleted file mode 100644 | |
index 516b46743b..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0421-arm64-dts-qcom-ipq5018-Add-SPI-nand-node.patch | |
+++ /dev/null | |
@@ -1,52 +0,0 @@ | |
-From c2019f64539dd24e6e0da3cea2219d6f9e6b03e4 Mon Sep 17 00:00:00 2001 | |
-From: Ziyang Huang <[email protected]> | |
-Date: Sun, 8 Sep 2024 16:40:11 +0800 | |
-Subject: [PATCH] arm64: dts: qcom: ipq5018: Add SPI nand node | |
- | |
-Add SPI NAND support for IPQ5018 SoC. | |
- | |
-Signed-off-by: Ziyang Huang <[email protected]> | |
-Signed-off-by: George Moussalem <[email protected]> | |
---- | |
- arch/arm64/boot/dts/qcom/ipq5018.dtsi | 40 +++++++++++++++++++++++++++ | |
- 1 file changed, 40 insertions(+) | |
- | |
---- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-@@ -456,6 +456,36 @@ | |
- status = "disabled"; | |
- }; | |
- | |
-+ qpic_bam: dma@7984000 { | |
-+ compatible = "qcom,bam-v1.7.0"; | |
-+ reg = <0x07984000 0x1c000>; | |
-+ interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>; | |
-+ clocks = <&gcc GCC_QPIC_AHB_CLK>; | |
-+ clock-names = "bam_clk"; | |
-+ #dma-cells = <1>; | |
-+ qcom,ee = <0>; | |
-+ status = "disabled"; | |
-+ }; | |
-+ | |
-+ qpic_nand: qpic-nand@79b0000 { | |
-+ compatible = "qcom,ipq5018-snand", "qcom,ipq9574-snand"; | |
-+ reg = <0x079b0000 0x10000>; | |
-+ #address-cells = <1>; | |
-+ #size-cells = <0>; | |
-+ clocks = <&gcc GCC_QPIC_CLK>, | |
-+ <&gcc GCC_QPIC_AHB_CLK>, | |
-+ <&gcc GCC_QPIC_IO_MACRO_CLK>; | |
-+ clock-names = "core", "aon", "iom"; | |
-+ | |
-+ dmas = <&qpic_bam 0>, | |
-+ <&qpic_bam 1>, | |
-+ <&qpic_bam 2>, | |
-+ <&qpic_bam 3>; | |
-+ dma-names = "tx", "rx", "cmd", "status"; | |
-+ | |
-+ status = "disabled"; | |
-+ }; | |
-+ | |
- usb: usb@8af8800 { | |
- compatible = "qcom,ipq5018-dwc3", "qcom,dwc3"; | |
- reg = <0x08af8800 0x400>; | |
diff --git a/target/linux/qualcommax/patches-6.12/0703-clk-qcom-cmn-pll-add-IPQ5018-support.patch b/target/linux/qualcommax/patches-6.12/0703-clk-qcom-cmn-pll-add-IPQ5018-support.patch | |
deleted file mode 100644 | |
index 75b37df9aa..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0703-clk-qcom-cmn-pll-add-IPQ5018-support.patch | |
+++ /dev/null | |
@@ -1,78 +0,0 @@ | |
-From a28797563b8c97c9abced82e0cf89302fcd2bf37 Mon Sep 17 00:00:00 2001 | |
-From: Ziyang Huang <[email protected]> | |
-Date: Sun, 8 Sep 2024 16:40:11 +0800 | |
-Subject: [PATCH 1/2] clk: qcom: cmn-pll: add IPQ5018 support | |
- | |
-Add support for IPQ5018 (and removing dependency on the IPQ9574 platform). | |
-The common network block in IPQ5018 must be enabled first through a | |
-specific register at a fixed offset in the TCSR area, set in the DTS. | |
- | |
-Signed-off-by: Ziyang Huang <[email protected]> | |
-Signed-off-by: George Moussalem <[email protected]> | |
---- | |
- drivers/clk/qcom/Kconfig | 1 - | |
- drivers/clk/qcom/clk-ipq-cmn-pll.c | 29 +++++++++++++++++++++++++++++ | |
- 2 files changed, 29 insertions(+), 1 deletion(-) | |
- | |
---- a/drivers/clk/qcom/Kconfig | |
-+++ b/drivers/clk/qcom/Kconfig | |
-@@ -192,7 +192,6 @@ config IPQ_APSS_6018 | |
- | |
- config IPQ_CMN_PLL | |
- tristate "IPQ CMN PLL Clock Controller" | |
-- depends on IPQ_GCC_9574 | |
- help | |
- Support for CMN PLL clock controller on IPQ platform. The | |
- CMN PLL feeds the reference clocks to the Ethernet devices | |
---- a/drivers/clk/qcom/clk-ipq-cmn-pll.c | |
-+++ b/drivers/clk/qcom/clk-ipq-cmn-pll.c | |
-@@ -42,6 +42,9 @@ | |
- #include <linux/platform_device.h> | |
- #include <linux/slab.h> | |
- | |
-+#define TCSR_ETH_CMN 0x0 | |
-+#define TCSR_ETH_CMN_ENABLE BIT(0) | |
-+ | |
- #define CMN_PLL_REFCLK_SRC_SELECTION 0x28 | |
- #define CMN_PLL_REFCLK_SRC_DIV GENMASK(9, 8) | |
- | |
-@@ -79,6 +82,28 @@ static const struct cmn_pll_fixed_output | |
- CLK_PLL_OUTPUT(ETH_25MHZ_CLK, "eth-25mhz", 25000000UL), | |
- }; | |
- | |
-+static int ipq_cmn_pll_tcsr_enable(struct platform_device *pdev) | |
-+{ | |
-+ struct resource *res; | |
-+ void __iomem *tcsr_base; | |
-+ u32 val; | |
-+ | |
-+ /* For IPQ50xx, tcsr is necessary to enable cmn block */ | |
-+ res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "tcsr"); | |
-+ if (!res) | |
-+ return 0; | |
-+ | |
-+ tcsr_base = devm_ioremap_resource(&pdev->dev, res); | |
-+ if (IS_ERR_OR_NULL(tcsr_base)) | |
-+ return PTR_ERR(tcsr_base); | |
-+ | |
-+ val = readl(tcsr_base + TCSR_ETH_CMN); | |
-+ val |= TCSR_ETH_CMN_ENABLE; | |
-+ writel(val, (tcsr_base + TCSR_ETH_CMN)); | |
-+ | |
-+ return 0; | |
-+} | |
-+ | |
- static int ipq_cmn_pll_config(struct device *dev, unsigned long parent_rate) | |
- { | |
- void __iomem *base; | |
-@@ -181,6 +206,10 @@ static int ipq_cmn_pll_clk_probe(struct | |
- struct clk *clk; | |
- int ret; | |
- | |
-+ ret = ipq_cmn_pll_tcsr_enable(pdev); | |
-+ if (ret) | |
-+ return dev_err_probe(dev, ret, "Enable CMN PLL failed\n"); | |
-+ | |
- /* | |
- * To access the CMN PLL registers, the GCC AHB & SYSY clocks | |
- * for CMN PLL block need to be enabled. | |
diff --git a/target/linux/qualcommax/patches-6.12/0704-arm64-dts-qcom-ipq5018-Add-ethernet-cmn-node.patch b/target/linux/qualcommax/patches-6.12/0704-arm64-dts-qcom-ipq5018-Add-ethernet-cmn-node.patch | |
deleted file mode 100644 | |
index e528a9b86d..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0704-arm64-dts-qcom-ipq5018-Add-ethernet-cmn-node.patch | |
+++ /dev/null | |
@@ -1,43 +0,0 @@ | |
-From 1b625a37b96b0448aac126d7720eec38de8e5956 Mon Sep 17 00:00:00 2001 | |
-From: Ziyang Huang <[email protected]> | |
-Date: Sun, 8 Sep 2024 16:40:11 +0800 | |
-Subject: [PATCH 2/2] arm64: dts: qcom: ipq5018: Add ethernet cmn node | |
- | |
-Signed-off-by: Ziyang Huang <[email protected]> | |
---- | |
- arch/arm64/boot/dts/qcom/ipq5018.dtsi | 19 +++++++++++++++++++ | |
- 1 file changed, 19 insertions(+) | |
- | |
---- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-@@ -16,6 +16,12 @@ | |
- #size-cells = <2>; | |
- | |
- clocks { | |
-+ cmn_pll_ref_clk: cmn-pll-ref-clk { | |
-+ compatible = "fixed-clock"; | |
-+ clock-frequency = <96000000>; | |
-+ #clock-cells = <0>; | |
-+ }; | |
-+ | |
- sleep_clk: sleep-clk { | |
- compatible = "fixed-clock"; | |
- #clock-cells = <0>; | |
-@@ -182,6 +188,17 @@ | |
- status = "disabled"; | |
- }; | |
- | |
-+ cmn_pll: clock-controller@9b000 { | |
-+ compatible = "qcom,ipq9574-cmn-pll"; | |
-+ reg = <0x0009b000 0x800>; | |
-+ reg-names = "cmn"; | |
-+ clocks = <&cmn_pll_ref_clk>, | |
-+ <&gcc GCC_CMN_BLK_AHB_CLK>, | |
-+ <&gcc GCC_CMN_BLK_SYS_CLK>; | |
-+ clock-names = "ref", "ahb", "sys"; | |
-+ #clock-cells = <1>; | |
-+ }; | |
-+ | |
- qfprom: qfprom@a0000 { | |
- compatible = "qcom,ipq5018-qfprom", "qcom,qfprom"; | |
- reg = <0x000a0000 0x1000>; | |
diff --git a/target/linux/qualcommax/patches-6.12/0711-clk-qcom-gcc-ipq5018-fix-ge-phy-reset.patch b/target/linux/qualcommax/patches-6.12/0711-clk-qcom-gcc-ipq5018-fix-ge-phy-reset.patch | |
deleted file mode 100644 | |
index 72d86c6783..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0711-clk-qcom-gcc-ipq5018-fix-ge-phy-reset.patch | |
+++ /dev/null | |
@@ -1,32 +0,0 @@ | |
-From 19600588e6403ff9f6c1e985fc025afb9160a56f Mon Sep 17 00:00:00 2001 | |
-From: George Moussalem <[email protected]> | |
-Date: Wed, 28 May 2025 08:37:25 +0400 | |
-Subject: [PATCH v2 2/5] clk: qcom: gcc-ipq5018: fix GE PHY reset | |
-MIME-Version: 1.0 | |
-Content-Type: text/plain; charset="utf-8" | |
-Content-Transfer-Encoding: 7bit | |
-Message-Id: <[email protected]> | |
- | |
-The MISC reset is supposed to trigger a resets across the MDC, DSP, and | |
-RX & TX clocks of the IPQ5018 internal GE PHY. So let's set the bitmask | |
-of the reset definition accordingly in the GCC as per the downstream | |
-driver. | |
- | |
-Link: https://git.codelinaro.org/clo/qsdk/oss/kernel/linux-ipq-5.4/-/commit/00743c3e82fa87cba4460e7a2ba32f473a9ce932 | |
- | |
-Signed-off-by: George Moussalem <[email protected]> | |
---- | |
- drivers/clk/qcom/gcc-ipq5018.c | 2 +- | |
- 1 file changed, 1 insertion(+), 1 deletion(-) | |
- | |
---- a/drivers/clk/qcom/gcc-ipq5018.c | |
-+++ b/drivers/clk/qcom/gcc-ipq5018.c | |
-@@ -3660,7 +3660,7 @@ static const struct qcom_reset_map gcc_i | |
- [GCC_WCSS_AXI_S_ARES] = { 0x59008, 6 }, | |
- [GCC_WCSS_Q6_BCR] = { 0x18004, 0 }, | |
- [GCC_WCSSAON_RESET] = { 0x59010, 0}, | |
-- [GCC_GEPHY_MISC_ARES] = { 0x56004, 0 }, | |
-+ [GCC_GEPHY_MISC_ARES] = { 0x56004, .bitmask = GENMASK(3, 0) }, | |
- }; | |
- | |
- static const struct of_device_id gcc_ipq5018_match_table[] = { | |
diff --git a/target/linux/qualcommax/patches-6.12/0712-net-phy-qcom-at803x-add-qualcomm-ipq5018-internal-phy-support.patch b/target/linux/qualcommax/patches-6.12/0712-net-phy-qcom-at803x-add-qualcomm-ipq5018-internal-phy-support.patch | |
deleted file mode 100644 | |
index 394eca19da..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0712-net-phy-qcom-at803x-add-qualcomm-ipq5018-internal-phy-support.patch | |
+++ /dev/null | |
@@ -1,277 +0,0 @@ | |
-From 9a89cb300c1ed5b90bae5684c88c85895a15c849 Mon Sep 17 00:00:00 2001 | |
-From: George Moussalem <[email protected]> | |
-Date: Mon, 02 Jun 2025 12:50:39 +0400 | |
-Subject: [PATCH v3 3/5] net: phy: qcom: at803x: Add Qualcomm IPQ5018 Internal PHY support | |
-MIME-Version: 1.0 | |
-Content-Type: text/plain; charset="utf-8" | |
-Content-Transfer-Encoding: 7bit | |
-Message-Id: <[email protected]> | |
- | |
-The IPQ5018 SoC contains a single internal Gigabit Ethernet PHY which | |
-provides an MDI interface directly to an RJ45 connector or an external | |
-switch over a PHY to PHY link. | |
- | |
-The PHY supports 10/100/1000 mbps link modes, CDT, auto-negotiation and | |
-802.3az EEE. | |
- | |
-Let's add support for this PHY in the at803x driver as it falls within | |
-the Qualcomm Atheros OUI. | |
- | |
-Signed-off-by: George Moussalem <[email protected]> | |
---- | |
- drivers/net/phy/qcom/Kconfig | 2 +- | |
- drivers/net/phy/qcom/at803x.c | 185 ++++++++++++++++++++++++++++++++++++++++-- | |
- 2 files changed, 178 insertions(+), 9 deletions(-) | |
- | |
---- a/drivers/net/phy/qcom/Kconfig | |
-+++ b/drivers/net/phy/qcom/Kconfig | |
-@@ -7,7 +7,7 @@ config AT803X_PHY | |
- select QCOM_NET_PHYLIB | |
- depends on REGULATOR | |
- help | |
-- Currently supports the AR8030, AR8031, AR8033, AR8035 model | |
-+ Currently supports the AR8030, AR8031, AR8033, AR8035, IPQ5018 model | |
- | |
- config QCA83XX_PHY | |
- tristate "Qualcomm Atheros QCA833x PHYs" | |
---- a/drivers/net/phy/qcom/at803x.c | |
-+++ b/drivers/net/phy/qcom/at803x.c | |
-@@ -7,19 +7,24 @@ | |
- * Author: Matus Ujhelyi <[email protected]> | |
- */ | |
- | |
--#include <linux/phy.h> | |
--#include <linux/module.h> | |
--#include <linux/string.h> | |
--#include <linux/netdevice.h> | |
-+#include <linux/bitfield.h> | |
-+#include <linux/clk.h> | |
-+#include <linux/clk-provider.h> | |
- #include <linux/etherdevice.h> | |
- #include <linux/ethtool_netlink.h> | |
--#include <linux/bitfield.h> | |
--#include <linux/regulator/of_regulator.h> | |
--#include <linux/regulator/driver.h> | |
--#include <linux/regulator/consumer.h> | |
-+#include <linux/mfd/syscon.h> | |
-+#include <linux/module.h> | |
-+#include <linux/netdevice.h> | |
- #include <linux/of.h> | |
-+#include <linux/phy.h> | |
- #include <linux/phylink.h> | |
-+#include <linux/regmap.h> | |
-+#include <linux/regulator/consumer.h> | |
-+#include <linux/regulator/driver.h> | |
-+#include <linux/regulator/of_regulator.h> | |
-+#include <linux/reset.h> | |
- #include <linux/sfp.h> | |
-+#include <linux/string.h> | |
- #include <dt-bindings/net/qca-ar803x.h> | |
- | |
- #include "qcom.h" | |
-@@ -93,6 +98,8 @@ | |
- #define ATH8035_PHY_ID 0x004dd072 | |
- #define AT8030_PHY_ID_MASK 0xffffffef | |
- | |
-+#define IPQ5018_PHY_ID 0x004dd0c0 | |
-+ | |
- #define QCA9561_PHY_ID 0x004dd042 | |
- | |
- #define AT803X_PAGE_FIBER 0 | |
-@@ -105,6 +112,50 @@ | |
- /* disable hibernation mode */ | |
- #define AT803X_DISABLE_HIBERNATION_MODE BIT(2) | |
- | |
-+#define IPQ5018_PHY_FIFO_CONTROL 0x19 | |
-+#define IPQ5018_PHY_FIFO_RESET GENMASK(1, 0) | |
-+ | |
-+#define IPQ5018_PHY_DEBUG_EDAC 0x4380 | |
-+#define IPQ5018_PHY_MMD1_MDAC 0x8100 | |
-+#define IPQ5018_PHY_DAC_MASK GENMASK(15, 8) | |
-+ | |
-+/* MDAC and EDAC values for short cable length */ | |
-+#define IPQ5018_PHY_DEBUG_EDAC_VAL 0x10 | |
-+#define IPQ5018_PHY_MMD1_MDAC_VAL 0x10 | |
-+ | |
-+#define IPQ5018_PHY_MMD1_MSE_THRESH1 0x1000 | |
-+#define IPQ5018_PHY_MMD1_MSE_THRESH2 0x1001 | |
-+#define IPQ5018_PHY_PCS_AZ_CTRL1 0x8008 | |
-+#define IPQ5018_PHY_PCS_AZ_CTRL2 0x8009 | |
-+#define IPQ5018_PHY_PCS_CDT_THRESH_CTRL3 0x8074 | |
-+#define IPQ5018_PHY_PCS_CDT_THRESH_CTRL4 0x8075 | |
-+#define IPQ5018_PHY_PCS_CDT_THRESH_CTRL5 0x8076 | |
-+#define IPQ5018_PHY_PCS_CDT_THRESH_CTRL6 0x8077 | |
-+#define IPQ5018_PHY_PCS_CDT_THRESH_CTRL7 0x8078 | |
-+#define IPQ5018_PHY_PCS_CDT_THRESH_CTRL9 0x807a | |
-+#define IPQ5018_PHY_PCS_CDT_THRESH_CTRL13 0x807e | |
-+#define IPQ5018_PHY_PCS_CDT_THRESH_CTRL14 0x807f | |
-+ | |
-+#define IPQ5018_PHY_MMD1_MSE_THRESH1_VAL 0xf1 | |
-+#define IPQ5018_PHY_MMD1_MSE_THRESH2_VAL 0x1f6 | |
-+#define IPQ5018_PHY_PCS_AZ_CTRL1_VAL 0x7880 | |
-+#define IPQ5018_PHY_PCS_AZ_CTRL2_VAL 0xc8 | |
-+#define IPQ5018_PHY_PCS_CDT_THRESH_CTRL3_VAL 0xc040 | |
-+#define IPQ5018_PHY_PCS_CDT_THRESH_CTRL4_VAL 0xa060 | |
-+#define IPQ5018_PHY_PCS_CDT_THRESH_CTRL5_VAL 0xc040 | |
-+#define IPQ5018_PHY_PCS_CDT_THRESH_CTRL6_VAL 0xa060 | |
-+#define IPQ5018_PHY_PCS_CDT_THRESH_CTRL7_VAL 0xc24c | |
-+#define IPQ5018_PHY_PCS_CDT_THRESH_CTRL9_VAL 0xc060 | |
-+#define IPQ5018_PHY_PCS_CDT_THRESH_CTRL13_VAL 0xb060 | |
-+#define IPQ5018_PHY_PCS_NEAR_ECHO_THRESH_VAL 0x90b0 | |
-+ | |
-+#define IPQ5018_PHY_DEBUG_ANA_LDO_EFUSE 0x1 | |
-+#define IPQ5018_PHY_DEBUG_ANA_LDO_EFUSE_MASK GENMASK(7, 4) | |
-+#define IPQ5018_PHY_DEBUG_ANA_LDO_EFUSE_DEFAULT 0x50 | |
-+#define IPQ5018_PHY_DEBUG_ANA_DAC_FILTER 0xa080 | |
-+ | |
-+#define IPQ5018_TCSR_ETH_LDO_READY BIT(0) | |
-+ | |
- MODULE_DESCRIPTION("Qualcomm Atheros AR803x PHY driver"); | |
- MODULE_AUTHOR("Matus Ujhelyi"); | |
- MODULE_LICENSE("GPL"); | |
-@@ -130,6 +181,11 @@ struct at803x_context { | |
- u16 led_control; | |
- }; | |
- | |
-+struct ipq5018_priv { | |
-+ struct reset_control *rst; | |
-+ bool set_short_cable_dac; | |
-+}; | |
-+ | |
- static int at803x_write_page(struct phy_device *phydev, int page) | |
- { | |
- int mask; | |
-@@ -960,6 +1016,105 @@ static int at8035_probe(struct phy_devic | |
- return at8035_parse_dt(phydev); | |
- } | |
- | |
-+static int ipq5018_cable_test_start(struct phy_device *phydev) | |
-+{ | |
-+ phy_write_mmd(phydev, MDIO_MMD_PCS, IPQ5018_PHY_PCS_CDT_THRESH_CTRL3, | |
-+ IPQ5018_PHY_PCS_CDT_THRESH_CTRL3_VAL); | |
-+ phy_write_mmd(phydev, MDIO_MMD_PCS, IPQ5018_PHY_PCS_CDT_THRESH_CTRL4, | |
-+ IPQ5018_PHY_PCS_CDT_THRESH_CTRL4_VAL); | |
-+ phy_write_mmd(phydev, MDIO_MMD_PCS, IPQ5018_PHY_PCS_CDT_THRESH_CTRL5, | |
-+ IPQ5018_PHY_PCS_CDT_THRESH_CTRL5_VAL); | |
-+ phy_write_mmd(phydev, MDIO_MMD_PCS, IPQ5018_PHY_PCS_CDT_THRESH_CTRL6, | |
-+ IPQ5018_PHY_PCS_CDT_THRESH_CTRL6_VAL); | |
-+ phy_write_mmd(phydev, MDIO_MMD_PCS, IPQ5018_PHY_PCS_CDT_THRESH_CTRL7, | |
-+ IPQ5018_PHY_PCS_CDT_THRESH_CTRL7_VAL); | |
-+ phy_write_mmd(phydev, MDIO_MMD_PCS, IPQ5018_PHY_PCS_CDT_THRESH_CTRL9, | |
-+ IPQ5018_PHY_PCS_CDT_THRESH_CTRL9_VAL); | |
-+ phy_write_mmd(phydev, MDIO_MMD_PCS, IPQ5018_PHY_PCS_CDT_THRESH_CTRL13, | |
-+ IPQ5018_PHY_PCS_CDT_THRESH_CTRL13_VAL); | |
-+ phy_write_mmd(phydev, MDIO_MMD_PCS, IPQ5018_PHY_PCS_CDT_THRESH_CTRL3, | |
-+ IPQ5018_PHY_PCS_NEAR_ECHO_THRESH_VAL); | |
-+ | |
-+ /* we do all the (time consuming) work later */ | |
-+ return 0; | |
-+} | |
-+ | |
-+static int ipq5018_config_init(struct phy_device *phydev) | |
-+{ | |
-+ struct ipq5018_priv *priv = phydev->priv; | |
-+ u16 val = 0; | |
-+ | |
-+ /* | |
-+ * set LDO efuse: first temporarily store ANA_DAC_FILTER value from | |
-+ * debug register as it will be reset once the ANA_LDO_EFUSE register | |
-+ * is written to | |
-+ */ | |
-+ val = at803x_debug_reg_read(phydev, IPQ5018_PHY_DEBUG_ANA_DAC_FILTER); | |
-+ at803x_debug_reg_mask(phydev, IPQ5018_PHY_DEBUG_ANA_LDO_EFUSE, | |
-+ IPQ5018_PHY_DEBUG_ANA_LDO_EFUSE_MASK, | |
-+ IPQ5018_PHY_DEBUG_ANA_LDO_EFUSE_DEFAULT); | |
-+ at803x_debug_reg_write(phydev, IPQ5018_PHY_DEBUG_ANA_DAC_FILTER, val); | |
-+ | |
-+ /* set 8023AZ CTRL values */ | |
-+ phy_write_mmd(phydev, MDIO_MMD_PCS, IPQ5018_PHY_PCS_AZ_CTRL1, | |
-+ IPQ5018_PHY_PCS_AZ_CTRL1_VAL); | |
-+ phy_write_mmd(phydev, MDIO_MMD_PCS, IPQ5018_PHY_PCS_AZ_CTRL2, | |
-+ IPQ5018_PHY_PCS_AZ_CTRL2_VAL); | |
-+ | |
-+ /* set MSE threshold values */ | |
-+ phy_write_mmd(phydev, MDIO_MMD_PMAPMD, IPQ5018_PHY_MMD1_MSE_THRESH1, | |
-+ IPQ5018_PHY_MMD1_MSE_THRESH1_VAL); | |
-+ phy_write_mmd(phydev, MDIO_MMD_PMAPMD, IPQ5018_PHY_MMD1_MSE_THRESH2, | |
-+ IPQ5018_PHY_MMD1_MSE_THRESH2_VAL); | |
-+ | |
-+ /* PHY DAC values are optional and only set in a PHY to PHY link architecture */ | |
-+ if (priv->set_short_cable_dac) { | |
-+ /* setting MDAC (Multi-level Digital-to-Analog Converter) in MMD1 */ | |
-+ phy_modify_mmd(phydev, MDIO_MMD_PMAPMD, IPQ5018_PHY_MMD1_MDAC, | |
-+ IPQ5018_PHY_DAC_MASK, IPQ5018_PHY_MMD1_MDAC_VAL); | |
-+ | |
-+ /* setting EDAC (Error-detection and Correction) in debug register */ | |
-+ at803x_debug_reg_mask(phydev, IPQ5018_PHY_DEBUG_EDAC, | |
-+ IPQ5018_PHY_DAC_MASK, IPQ5018_PHY_DEBUG_EDAC_VAL); | |
-+ } | |
-+ | |
-+ return 0; | |
-+} | |
-+ | |
-+static void ipq5018_link_change_notify(struct phy_device *phydev) | |
-+{ | |
-+ mdiobus_modify_changed(phydev->mdio.bus, phydev->mdio.addr, | |
-+ IPQ5018_PHY_FIFO_CONTROL, IPQ5018_PHY_FIFO_RESET, | |
-+ phydev->link ? IPQ5018_PHY_FIFO_RESET : 0); | |
-+} | |
-+ | |
-+static int ipq5018_probe(struct phy_device *phydev) | |
-+{ | |
-+ struct device *dev = &phydev->mdio.dev; | |
-+ struct ipq5018_priv *priv; | |
-+ int ret; | |
-+ | |
-+ priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); | |
-+ if (!priv) | |
-+ return -ENOMEM; | |
-+ | |
-+ priv->set_short_cable_dac = of_property_read_bool(dev->of_node, | |
-+ "qcom,dac-preset-short-cable"); | |
-+ | |
-+ priv->rst = devm_reset_control_array_get_exclusive(dev); | |
-+ if (IS_ERR_OR_NULL(priv->rst)) | |
-+ return dev_err_probe(dev, PTR_ERR(priv->rst), | |
-+ "failed to acquire reset\n"); | |
-+ | |
-+ ret = reset_control_reset(priv->rst); | |
-+ if (ret) | |
-+ return dev_err_probe(dev, ret, "failed to reset\n"); | |
-+ | |
-+ phydev->priv = priv; | |
-+ | |
-+ return 0; | |
-+} | |
-+ | |
- static struct phy_driver at803x_driver[] = { | |
- { | |
- /* Qualcomm Atheros AR8035 */ | |
-@@ -1052,6 +1207,19 @@ static struct phy_driver at803x_driver[] | |
- .soft_reset = genphy_soft_reset, | |
- .config_aneg = at803x_config_aneg, | |
- }, { | |
-+ PHY_ID_MATCH_EXACT(IPQ5018_PHY_ID), | |
-+ .name = "Qualcomm Atheros IPQ5018 internal PHY", | |
-+ .flags = PHY_IS_INTERNAL | PHY_POLL_CABLE_TEST, | |
-+ .probe = ipq5018_probe, | |
-+ .config_init = ipq5018_config_init, | |
-+ .link_change_notify = ipq5018_link_change_notify, | |
-+ .read_status = at803x_read_status, | |
-+ .config_intr = at803x_config_intr, | |
-+ .handle_interrupt = at803x_handle_interrupt, | |
-+ .cable_test_start = ipq5018_cable_test_start, | |
-+ .cable_test_get_status = qca808x_cable_test_get_status, | |
-+ .soft_reset = genphy_soft_reset, | |
-+}, { | |
- /* Qualcomm Atheros QCA9561 */ | |
- PHY_ID_MATCH_EXACT(QCA9561_PHY_ID), | |
- .name = "Qualcomm Atheros QCA9561 built-in PHY", | |
-@@ -1077,6 +1245,7 @@ static const struct mdio_device_id __may | |
- { PHY_ID_MATCH_EXACT(ATH8032_PHY_ID) }, | |
- { PHY_ID_MATCH_EXACT(ATH8035_PHY_ID) }, | |
- { PHY_ID_MATCH_EXACT(ATH9331_PHY_ID) }, | |
-+ { PHY_ID_MATCH_EXACT(IPQ5018_PHY_ID) }, | |
- { PHY_ID_MATCH_EXACT(QCA9561_PHY_ID) }, | |
- { } | |
- }; | |
diff --git a/target/linux/qualcommax/patches-6.12/0713-arm64-dts-qcom-ipq5018-add-mdio-buses.patch b/target/linux/qualcommax/patches-6.12/0713-arm64-dts-qcom-ipq5018-add-mdio-buses.patch | |
deleted file mode 100644 | |
index d99f49ccad..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0713-arm64-dts-qcom-ipq5018-add-mdio-buses.patch | |
+++ /dev/null | |
@@ -1,55 +0,0 @@ | |
-From 97a159dd7747724619e54cb3460d9b8d4ed08be7 Mon Sep 17 00:00:00 2001 | |
-From: George Moussalem <[email protected]> | |
-Date: Mon, 02 Jun 2025 12:50:40 +0400 | |
-Subject: [PATCH v3 4/5] arm64: dts: qcom: ipq5018: Add MDIO buses | |
-MIME-Version: 1.0 | |
-Content-Type: text/plain; charset="utf-8" | |
-Content-Transfer-Encoding: 7bit | |
-Message-Id: <[email protected]> | |
- | |
-IPQ5018 contains two mdio buses of which one bus is used to control the | |
-SoC's internal GE PHY, while the other bus is connected to external PHYs | |
-or switches. | |
- | |
-There's already support for IPQ5018 in the mdio-ipq4019 driver, so let's | |
-simply add the mdio nodes for them. | |
- | |
-Reviewed-by: Konrad Dybcio <[email protected]> | |
-Signed-off-by: George Moussalem <[email protected]> | |
---- | |
- arch/arm64/boot/dts/qcom/ipq5018.dtsi | 24 ++++++++++++++++++++++++ | |
- 1 file changed, 24 insertions(+) | |
- | |
---- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-@@ -188,6 +188,30 @@ | |
- status = "disabled"; | |
- }; | |
- | |
-+ mdio0: mdio@88000 { | |
-+ compatible = "qcom,ipq5018-mdio"; | |
-+ reg = <0x00088000 0x64>; | |
-+ #address-cells = <1>; | |
-+ #size-cells = <0>; | |
-+ | |
-+ clocks = <&gcc GCC_MDIO0_AHB_CLK>; | |
-+ clock-names = "gcc_mdio_ahb_clk"; | |
-+ | |
-+ status = "disabled"; | |
-+ }; | |
-+ | |
-+ mdio1: mdio@90000 { | |
-+ compatible = "qcom,ipq5018-mdio"; | |
-+ reg = <0x00090000 0x64>; | |
-+ #address-cells = <1>; | |
-+ #size-cells = <0>; | |
-+ | |
-+ clocks = <&gcc GCC_MDIO1_AHB_CLK>; | |
-+ clock-names = "gcc_mdio_ahb_clk"; | |
-+ | |
-+ status = "disabled"; | |
-+ }; | |
-+ | |
- cmn_pll: clock-controller@9b000 { | |
- compatible = "qcom,ipq9574-cmn-pll"; | |
- reg = <0x0009b000 0x800>; | |
diff --git a/target/linux/qualcommax/patches-6.12/0714-arm64-dts-qcom-ipq5018-add-ge-phy-to-internal-mdio-bus.patch b/target/linux/qualcommax/patches-6.12/0714-arm64-dts-qcom-ipq5018-add-ge-phy-to-internal-mdio-bus.patch | |
deleted file mode 100644 | |
index e3b1fa970d..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0714-arm64-dts-qcom-ipq5018-add-ge-phy-to-internal-mdio-bus.patch | |
+++ /dev/null | |
@@ -1,82 +0,0 @@ | |
-From 1b733e878ac1292c6e0f2e9a49685b80c35619b0 Mon Sep 17 00:00:00 2001 | |
-From: George Moussalem <[email protected]> | |
-Date: Mon, 02 Jun 2025 12:50:41 +0400 | |
-Subject: [PATCH v3 5/5] arm64: dts: qcom: ipq5018: Add GE PHY to internal mdio bus | |
-MIME-Version: 1.0 | |
-Content-Type: text/plain; charset="utf-8" | |
-Content-Transfer-Encoding: 7bit | |
-Message-Id: <[email protected]> | |
- | |
-The IPQ5018 SoC contains an internal GE PHY, always at phy address 7. | |
-As such, let's add the GE PHY node to the SoC dtsi. | |
- | |
-The LDO controller found in the SoC must be enabled to provide constant | |
-low voltages to the PHY. The mdio-ipq4019 driver already has support | |
-for this, so adding the appropriate TCSR register offset. | |
- | |
-In addition, the GE PHY outputs both the RX and TX clocks to the GCC | |
-which gate controls them and routes them back to the PHY itself. | |
-So let's create two DT fixed clocks and register them in the GCC node. | |
- | |
-Reviewed-by: Konrad Dybcio <[email protected]> | |
-Signed-off-by: George Moussalem <[email protected]> | |
---- | |
- arch/arm64/boot/dts/qcom/ipq5018.dtsi | 26 +++++++++++++++++++++++--- | |
- 1 file changed, 23 insertions(+), 3 deletions(-) | |
- | |
---- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-@@ -22,6 +22,18 @@ | |
- #clock-cells = <0>; | |
- }; | |
- | |
-+ gephy_rx_clk: gephy-rx-clk { | |
-+ compatible = "fixed-clock"; | |
-+ clock-frequency = <125000000>; | |
-+ #clock-cells = <0>; | |
-+ }; | |
-+ | |
-+ gephy_tx_clk: gephy-tx-clk { | |
-+ compatible = "fixed-clock"; | |
-+ clock-frequency = <125000000>; | |
-+ #clock-cells = <0>; | |
-+ }; | |
-+ | |
- sleep_clk: sleep-clk { | |
- compatible = "fixed-clock"; | |
- #clock-cells = <0>; | |
-@@ -190,7 +202,8 @@ | |
- | |
- mdio0: mdio@88000 { | |
- compatible = "qcom,ipq5018-mdio"; | |
-- reg = <0x00088000 0x64>; | |
-+ reg = <0x00088000 0x64>, | |
-+ <0x019475c4 0x4>; | |
- #address-cells = <1>; | |
- #size-cells = <0>; | |
- | |
-@@ -198,6 +211,13 @@ | |
- clock-names = "gcc_mdio_ahb_clk"; | |
- | |
- status = "disabled"; | |
-+ | |
-+ ge_phy: ethernet-phy@7 { | |
-+ compatible = "ethernet-phy-id004d.d0c0"; | |
-+ reg = <7>; | |
-+ | |
-+ resets = <&gcc GCC_GEPHY_MISC_ARES>; | |
-+ }; | |
- }; | |
- | |
- mdio1: mdio@90000 { | |
-@@ -392,8 +412,8 @@ | |
- <&pcie0_phy>, | |
- <&pcie1_phy>, | |
- <0>, | |
-- <0>, | |
-- <0>, | |
-+ <&gephy_rx_clk>, | |
-+ <&gephy_tx_clk>, | |
- <0>, | |
- <0>; | |
- #clock-cells = <1>; | |
diff --git a/target/linux/qualcommax/patches-6.12/0715-arm64-dts-qcom-ipq5018-add-vendor-compatible-to-mdio-node.patch b/target/linux/qualcommax/patches-6.12/0715-arm64-dts-qcom-ipq5018-add-vendor-compatible-to-mdio-node.patch | |
deleted file mode 100644 | |
index e7dffa8910..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0715-arm64-dts-qcom-ipq5018-add-vendor-compatible-to-mdio-node.patch | |
+++ /dev/null | |
@@ -1,20 +0,0 @@ | |
-From: George Moussalem <[email protected]> | |
-Date: Wed, 28 May 2025 08:37:28 +0400 | |
-Subject: [PATCH] arm64: dts: qcom: ipq5018: Add vendor compatible to mdio bus | |
- | |
-QCA SSDK needs to register the MDIO bus in its driver. Without a proper reference, | |
-it will crash. Since it tries to look up the MDIO bus using compatible strings that | |
-aren't upstreamed, add the vendor compatible. | |
- | |
-Signed-off-by: George Moussalem <[email protected]> | |
---- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-@@ -201,7 +201,7 @@ | |
- }; | |
- | |
- mdio0: mdio@88000 { | |
-- compatible = "qcom,ipq5018-mdio"; | |
-+ compatible = "qcom,ipq5018-mdio", "qcom,ipq40xx-mdio"; | |
- reg = <0x00088000 0x64>, | |
- <0x019475c4 0x4>; | |
- #address-cells = <1>; | |
diff --git a/target/linux/qualcommax/patches-6.12/0721-clk-gcc-ipq5018-remove-the-unsupported-clk-combinati.patch b/target/linux/qualcommax/patches-6.12/0721-clk-gcc-ipq5018-remove-the-unsupported-clk-combinati.patch | |
deleted file mode 100644 | |
index c6225f62b3..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0721-clk-gcc-ipq5018-remove-the-unsupported-clk-combinati.patch | |
+++ /dev/null | |
@@ -1,35 +0,0 @@ | |
-From f71366e0530db2c5cecbbbb6edfbf7344bd6f83b Mon Sep 17 00:00:00 2001 | |
-From: Ziyang Huang <[email protected]> | |
-Date: Sun, 8 Sep 2024 16:40:12 +0800 | |
-Subject: [PATCH 1/2] clk: gcc-ipq5018: remove the unsupported clk | |
- combination for gmac | |
- | |
-Comment out the unsupported clock combination in the frequency table | |
-for GMAC1. | |
- | |
-Signed-off-by: Ziyang Huang <[email protected]> | |
-Signed-off-by: George Moussalem <[email protected]> | |
---- | |
- drivers/clk/qcom/gcc-ipq5018.c | 4 ++-- | |
- 1 file changed, 2 insertions(+), 2 deletions(-) | |
- | |
---- a/drivers/clk/qcom/gcc-ipq5018.c | |
-+++ b/drivers/clk/qcom/gcc-ipq5018.c | |
-@@ -678,7 +678,7 @@ static const struct freq_tbl ftbl_gmac1_ | |
- F(2500000, P_UNIPHY_RX, 12.5, 0, 0), | |
- F(24000000, P_XO, 1, 0, 0), | |
- F(25000000, P_UNIPHY_RX, 2.5, 0, 0), | |
-- F(125000000, P_UNIPHY_RX, 2.5, 0, 0), | |
-+ /* F(125000000, P_UNIPHY_RX, 2.5, 0, 0), */ | |
- F(125000000, P_UNIPHY_RX, 1, 0, 0), | |
- F(312500000, P_UNIPHY_RX, 1, 0, 0), | |
- { } | |
-@@ -718,7 +718,7 @@ static const struct freq_tbl ftbl_gmac1_ | |
- F(2500000, P_UNIPHY_TX, 12.5, 0, 0), | |
- F(24000000, P_XO, 1, 0, 0), | |
- F(25000000, P_UNIPHY_TX, 2.5, 0, 0), | |
-- F(125000000, P_UNIPHY_TX, 2.5, 0, 0), | |
-+ /* F(125000000, P_UNIPHY_TX, 2.5, 0, 0), */ | |
- F(125000000, P_UNIPHY_TX, 1, 0, 0), | |
- F(312500000, P_UNIPHY_TX, 1, 0, 0), | |
- { } | |
diff --git a/target/linux/qualcommax/patches-6.12/0722-clk-qcom-gcc-ipq5018-refer-to-uniphy-rx-and-tx-clk-providers-by-name.patch b/target/linux/qualcommax/patches-6.12/0722-clk-qcom-gcc-ipq5018-refer-to-uniphy-rx-and-tx-clk-providers-by-name.patch | |
deleted file mode 100644 | |
index 6ecdee0161..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0722-clk-qcom-gcc-ipq5018-refer-to-uniphy-rx-and-tx-clk-providers-by-name.patch | |
+++ /dev/null | |
@@ -1,40 +0,0 @@ | |
-From ce9e56a436e486690097cfbdda2d0c11b60db4c2 Mon Sep 17 00:00:00 2001 | |
-From: Ziyang Huang <[email protected]> | |
-Date: Sun, 8 Sep 2024 16:40:12 +0800 | |
-Subject: [PATCH] clk: gcc-ipq5018: refer to UNIPHY rx and tx clk providers by name | |
- | |
-QCA-SSDK does not register the output clocks of the onboard uniphy so the | |
-GCC and DTS can't reference them by their index. | |
-The SSDK references them by name, so let's change the GCC driver | |
-accordingly. | |
- | |
-Signed-off-by: Ziyang Huang <[email protected]> | |
-Signed-off-by: George Moussalem <[email protected]> | |
---- | |
- drivers/clk/qcom/gcc-ipq5018.c | 16 ++++++++-------- | |
- 1 file changed, 8 insertions(+), 8 deletions(-) | |
- | |
---- a/drivers/clk/qcom/gcc-ipq5018.c | |
-+++ b/drivers/clk/qcom/gcc-ipq5018.c | |
-@@ -368,8 +368,8 @@ static const struct parent_map gcc_xo_ge | |
- | |
- static const struct clk_parent_data gcc_xo_uniphy_gcc_rx_uniphy_gcc_tx_ubi32_pll_gpll0[] = { | |
- { .index = DT_XO }, | |
-- { .index = DT_UNIPHY_RX_CLK }, | |
-- { .index = DT_UNIPHY_TX_CLK }, | |
-+ { .name = "uniphy_gcc_rx", .index = -1 }, | |
-+ { .name = "uniphy_gcc_tx", .index = -1 }, | |
- { .hw = &ubi32_pll.clkr.hw }, | |
- { .hw = &gpll0.clkr.hw }, | |
- }; | |
-@@ -384,8 +384,8 @@ static const struct parent_map gcc_xo_un | |
- | |
- static const struct clk_parent_data gcc_xo_uniphy_gcc_tx_uniphy_gcc_rx_ubi32_pll_gpll0[] = { | |
- { .index = DT_XO }, | |
-- { .index = DT_UNIPHY_TX_CLK }, | |
-- { .index = DT_UNIPHY_RX_CLK }, | |
-+ { .name = "uniphy_gcc_tx", .index = -1 }, | |
-+ { .name = "uniphy_gcc_rx", .index = -1 }, | |
- { .hw = &ubi32_pll.clkr.hw }, | |
- { .hw = &gpll0.clkr.hw }, | |
- }; | |
diff --git a/target/linux/qualcommax/patches-6.12/0723-clk-qcom-gcc-ipq5018-fix-uniphy-soft-reset-issue.patch b/target/linux/qualcommax/patches-6.12/0723-clk-qcom-gcc-ipq5018-fix-uniphy-soft-reset-issue.patch | |
deleted file mode 100644 | |
index f4d7742722..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0723-clk-qcom-gcc-ipq5018-fix-uniphy-soft-reset-issue.patch | |
+++ /dev/null | |
@@ -1,22 +0,0 @@ | |
-From: George Moussalem <[email protected]> | |
-Date: Fri, 30 May 2025 09:12:23 +0400 | |
-Subject: [PATCH] clk: qcom: gcc-ipq5018: fix UNIPHY soft reset issue | |
- | |
-The SOFT reset is supposed to trigger a resets across the SYS, RX, and | |
-TX lines of the IPQ5018 UNIPHY. So let's set the bitmask of the reset | |
-definition accordingly in the GCC as per the downstream driver. | |
- | |
-Link: https://git.codelinaro.org/clo/qsdk/oss/kernel/linux-ipq-5.4/-/commit/036bdc62aca561e8ff94a29c447fc400de2b7304 | |
- | |
-Signed-off-by: George Moussalem <[email protected]> | |
---- a/drivers/clk/qcom/gcc-ipq5018.c | |
-+++ b/drivers/clk/qcom/gcc-ipq5018.c | |
-@@ -3647,7 +3647,7 @@ static const struct qcom_reset_map gcc_i | |
- [GCC_UNIPHY_SYS_ARES] = { 0x56104, 1 }, | |
- [GCC_UNIPHY_RX_ARES] = { 0x56104, 4 }, | |
- [GCC_UNIPHY_TX_ARES] = { 0x56104, 5 }, | |
-- [GCC_UNIPHY_SOFT_RESET] = {0x56104, 0 }, | |
-+ [GCC_UNIPHY_SOFT_RESET] = {0x56104, .bitmask = 0x32 }, | |
- [GCC_USB0_BCR] = { 0x3e070, 0 }, | |
- [GCC_USB0_PHY_BCR] = { 0x3e034, 0 }, | |
- [GCC_WCSS_BCR] = { 0x18000, 0 }, | |
diff --git a/target/linux/qualcommax/patches-6.12/0814-remoteproc-qcom_q6v5_mpd-support-ipq5018.patch b/target/linux/qualcommax/patches-6.12/0814-remoteproc-qcom_q6v5_mpd-support-ipq5018.patch | |
deleted file mode 100644 | |
index 9cdf59ad21..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0814-remoteproc-qcom_q6v5_mpd-support-ipq5018.patch | |
+++ /dev/null | |
@@ -1,111 +0,0 @@ | |
-From 4ae334127f073aa5f7c9209c9f0a17fd9e331db1 Mon Sep 17 00:00:00 2001 | |
-From: Ziyang Huang <[email protected]> | |
-Date: Sun, 8 Sep 2024 16:40:12 +0800 | |
-Subject: [PATCH] remoteproc: qcom_q6v5_mpd: support ipq5018 | |
- | |
-Signed-off-by: Ziyang Huang <[email protected]> | |
---- | |
- drivers/remoteproc/qcom_q6v5_mpd.c | 37 +++++++++++++++++++++++++++--- | |
- 1 file changed, 34 insertions(+), 3 deletions(-) | |
- | |
---- a/drivers/remoteproc/qcom_q6v5_mpd.c | |
-+++ b/drivers/remoteproc/qcom_q6v5_mpd.c | |
-@@ -156,6 +156,8 @@ static int q6_wcss_spawn_pd(struct rproc | |
- static int wcss_pd_start(struct rproc *rproc) | |
- { | |
- struct userpd *upd = rproc->priv; | |
-+ struct rproc *rpd_rproc = dev_get_drvdata(upd->dev->parent); | |
-+ struct q6_wcss *wcss = rpd_rproc->priv; | |
- u32 pasid = (upd->pd_asid << 8) | UPD_SWID; | |
- int ret; | |
- | |
-@@ -171,6 +173,14 @@ static int wcss_pd_start(struct rproc *r | |
- return ret; | |
- } | |
- | |
-+ if (upd->pd_asid == 1) { | |
-+ ret = qcom_scm_internal_wifi_powerup(wcss->desc->pasid); | |
-+ if (ret) { | |
-+ dev_err(upd->dev, "failed to power up internal radio\n"); | |
-+ return ret; | |
-+ } | |
-+ } | |
-+ | |
- return ret; | |
- } | |
- | |
-@@ -180,6 +190,12 @@ static int q6_wcss_stop(struct rproc *rp | |
- const struct wcss_data *desc = wcss->desc; | |
- int ret; | |
- | |
-+ ret = qcom_q6v5_request_stop(&wcss->q6, NULL); | |
-+ if (ret) { | |
-+ dev_err(wcss->dev, "pd not stopped\n"); | |
-+ return ret; | |
-+ } | |
-+ | |
- ret = qcom_scm_pas_shutdown(desc->pasid); | |
- if (ret) { | |
- dev_err(wcss->dev, "not able to shutdown\n"); | |
-@@ -219,6 +235,7 @@ static int wcss_pd_stop(struct rproc *rp | |
- { | |
- struct userpd *upd = rproc->priv; | |
- struct rproc *rpd_rproc = dev_get_drvdata(upd->dev->parent); | |
-+ struct q6_wcss *wcss = rpd_rproc->priv; | |
- u32 pasid = (upd->pd_asid << 8) | UPD_SWID; | |
- int ret; | |
- | |
-@@ -230,6 +247,14 @@ static int wcss_pd_stop(struct rproc *rp | |
- } | |
- } | |
- | |
-+ if (upd->pd_asid == 1) { | |
-+ ret = qcom_scm_internal_wifi_shutdown(wcss->desc->pasid); | |
-+ if (ret) { | |
-+ dev_err(upd->dev, "failed to power down internal radio\n"); | |
-+ return ret; | |
-+ } | |
-+ } | |
-+ | |
- ret = qcom_scm_msa_unlock(pasid); | |
- if (ret) { | |
- dev_err(upd->dev, "failed to power down pd\n"); | |
-@@ -431,15 +456,14 @@ static int wcss_pd_load(struct rproc *rp | |
- struct userpd *upd = rproc->priv; | |
- struct rproc *rpd_rproc = dev_get_drvdata(upd->dev->parent); | |
- struct q6_wcss *wcss = rpd_rproc->priv; | |
-- u32 pasid = (upd->pd_asid << 8) | UPD_SWID; | |
- int ret; | |
- | |
- ret = rproc_boot(rpd_rproc); | |
- if (ret) | |
- return ret; | |
- | |
-- return qcom_mdt_load(upd->dev, fw, rproc->firmware, | |
-- pasid, wcss->mem_region, | |
-+ return qcom_mdt_load_pd_seg(upd->dev, fw, rproc->firmware, | |
-+ wcss->desc->pasid, upd->pd_asid, wcss->mem_region, | |
- wcss->mem_phys, wcss->mem_size, | |
- NULL); | |
- } | |
-@@ -776,6 +800,12 @@ static void q6_wcss_remove(struct platfo | |
- rproc_free(rproc); | |
- } | |
- | |
-+static const struct wcss_data q6_ipq5018_res_init = { | |
-+ .pasid = MPD_WCNSS_PAS_ID, | |
-+ // .share_upd_info_to_q6 = true, /* Version 1 */ | |
-+ // .mdt_load_sec = qcom_mdt_load_pd_seg, | |
-+}; | |
-+ | |
- static const struct wcss_data q6_ipq5332_res_init = { | |
- .pasid = MPD_WCNSS_PAS_ID, | |
- .share_upd_info_to_q6 = true, | |
-@@ -786,6 +816,7 @@ static const struct wcss_data q6_ipq9574 | |
- }; | |
- | |
- static const struct of_device_id q6_wcss_of_match[] = { | |
-+ { .compatible = "qcom,ipq5018-q6-mpd", .data = &q6_ipq5018_res_init }, | |
- { .compatible = "qcom,ipq5332-q6-mpd", .data = &q6_ipq5332_res_init }, | |
- { .compatible = "qcom,ipq9574-q6-mpd", .data = &q6_ipq9574_res_init }, | |
- { }, | |
diff --git a/target/linux/qualcommax/patches-6.12/0815-remoteproc-qcom_q6v5_mpd-add-support-for-passing-v1-bootargs.patch b/target/linux/qualcommax/patches-6.12/0815-remoteproc-qcom_q6v5_mpd-add-support-for-passing-v1-bootargs.patch | |
deleted file mode 100644 | |
index f601377e47..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0815-remoteproc-qcom_q6v5_mpd-add-support-for-passing-v1-bootargs.patch | |
+++ /dev/null | |
@@ -1,163 +0,0 @@ | |
-From: George Moussalem <[email protected]> | |
-Date: Mon, 09 Dec 2024 09:59:38 +0400 | |
-Subject: [PATCH] remoteproc: qcom_q6v5_mpd: add support for passing v1 bootargs | |
- | |
-On multi-PD platforms such as IPQ5018, boot args are passed to the root PD | |
-run on the Q6 processor which in turn boots the user PDs for internal | |
-(IPQ5018) and external wifi radios (such as QCN6122). These boot args | |
-let the user PD process know details like what PCIE index, user PD ID, and | |
-reset GPIO is used. These are otherwise hardcoded in the firmware. | |
- | |
-Below is the structure expected of the version 1 boot args including the | |
-default values hardcoded in the firmware for IPQ5018: | |
- | |
-+------------+------+--------------+--------------+ | |
-| Argument | type | def val UPD2 | def val UPD3 | | |
-+------------+------+--------------+--------------+ | |
-| PCIE Index | u32 | 0x02 (PCIE1) | 0x01 (PCIE0) | | |
-| Length | u32 | 0x04 | 0x04 | | |
-| User PD ID | u32 | 0x02 | 0x03 | | |
-| Reset GPIO | u32 | 0x12 | 0x0f | | |
-| Reserved 1 | u32 | 0x00 | 0x00 | | |
-| Reserved 2 | u32 | 0x00 | 0x00 | | |
-+------------+------+--------------+--------------+ | |
- | |
-On IPQ5018/QCN6122 boards, the default mapping is as follows: | |
- | |
- +-> UPD1 ----> IPQ5018 Internal 2.4G Radio | |
- / | |
- / | |
-Root PD +---> UPD2 ----> QCN6122 6G Radio on PCIE1 (if available) | |
- \ | |
- \ | |
- +-> UPD3 ----> QCN6102 5G Radio on PCIE0 | |
- | |
-To support (future) boards with other mappings or control what UPD ID is | |
-used, let's add support for passing boot args for more flexibility. | |
- | |
-Signed-off-by: George Moussalem <[email protected]> | |
---- | |
---- a/drivers/remoteproc/qcom_q6v5_mpd.c | |
-+++ b/drivers/remoteproc/qcom_q6v5_mpd.c | |
-@@ -43,7 +43,11 @@ | |
- #define UPD_BOOT_INFO_SMEM_SIZE 4096 | |
- #define UPD_BOOT_INFO_HEADER_TYPE 0x2 | |
- #define UPD_BOOT_INFO_SMEM_ID 507 | |
--#define VERSION2 2 | |
-+ | |
-+enum q6_bootargs_version { | |
-+ VERSION1 = 1, | |
-+ VERSION2, | |
-+}; | |
- | |
- /** | |
- * struct userpd_boot_info_header - header of user pd bootinfo | |
-@@ -95,6 +99,7 @@ struct userpd { | |
- struct wcss_data { | |
- u32 pasid; | |
- bool share_upd_info_to_q6; | |
-+ u8 bootargs_version; | |
- }; | |
- | |
- /** | |
-@@ -299,10 +304,13 @@ static void *q6_wcss_da_to_va(struct rpr | |
- static int share_upd_bootinfo_to_q6(struct rproc *rproc) | |
- { | |
- int i, ret; | |
-+ u32 rd_val; | |
- size_t size; | |
- u16 cnt = 0, version; | |
- void *ptr; | |
-+ u8 *bootargs_arr; | |
- struct q6_wcss *wcss = rproc->priv; | |
-+ struct device_node *np = wcss->dev->of_node; | |
- struct userpd *upd; | |
- struct userpd_boot_info upd_bootinfo = {0}; | |
- const struct firmware *fw; | |
-@@ -324,10 +332,47 @@ static int share_upd_bootinfo_to_q6(stru | |
- } | |
- | |
- /*Version*/ | |
-- version = VERSION2; | |
-+ version = (wcss->desc->bootargs_version) ? wcss->desc->bootargs_version : VERSION2; | |
- memcpy_toio(ptr, &version, sizeof(version)); | |
- ptr += sizeof(version); | |
- | |
-+ cnt = ret = of_property_count_u32_elems(np, "boot-args"); | |
-+ if (ret < 0) { | |
-+ if (ret == -ENODATA) { | |
-+ dev_err(wcss->dev, "failed to read boot args ret:%d\n", ret); | |
-+ return ret; | |
-+ } | |
-+ cnt = 0; | |
-+ } | |
-+ | |
-+ /* No of elements */ | |
-+ memcpy_toio(ptr, &cnt, sizeof(u16)); | |
-+ ptr += sizeof(u16); | |
-+ | |
-+ bootargs_arr = kzalloc(cnt, GFP_KERNEL); | |
-+ if (!bootargs_arr) { | |
-+ dev_err(wcss->dev, "failed to allocate memory\n"); | |
-+ return PTR_ERR(bootargs_arr); | |
-+ } | |
-+ | |
-+ for (i = 0; i < cnt; i++) { | |
-+ ret = of_property_read_u32_index(np, "boot-args", i, &rd_val); | |
-+ if (ret) { | |
-+ dev_err(wcss->dev, "failed to read boot args\n"); | |
-+ kfree(bootargs_arr); | |
-+ return ret; | |
-+ } | |
-+ bootargs_arr[i] = (u8)rd_val; | |
-+ } | |
-+ | |
-+ /* Copy bootargs */ | |
-+ memcpy_toio(ptr, bootargs_arr, cnt); | |
-+ ptr += (cnt); | |
-+ | |
-+ of_node_put(np); | |
-+ kfree(bootargs_arr); | |
-+ cnt = 0; | |
-+ | |
- for (i = 0; i < ARRAY_SIZE(wcss->upd); i++) | |
- if (wcss->upd[i]) | |
- cnt++; | |
-@@ -383,12 +428,14 @@ static int q6_wcss_load(struct rproc *rp | |
- | |
- /* Share user pd boot info to Q6 remote processor */ | |
- if (desc->share_upd_info_to_q6) { | |
-- ret = share_upd_bootinfo_to_q6(rproc); | |
-- if (ret) { | |
-- dev_err(wcss->dev, | |
-- "user pd boot info sharing with q6 failed %d\n", | |
-- ret); | |
-- return ret; | |
-+ if (of_property_present(wcss->dev->of_node, "boot-args")) { | |
-+ ret = share_upd_bootinfo_to_q6(rproc); | |
-+ if (ret) { | |
-+ dev_err(wcss->dev, | |
-+ "user pd boot info sharing with q6 failed %d\n", | |
-+ ret); | |
-+ return ret; | |
-+ } | |
- } | |
- } | |
- | |
-@@ -802,13 +849,15 @@ static void q6_wcss_remove(struct platfo | |
- | |
- static const struct wcss_data q6_ipq5018_res_init = { | |
- .pasid = MPD_WCNSS_PAS_ID, | |
-- // .share_upd_info_to_q6 = true, /* Version 1 */ | |
-+ .share_upd_info_to_q6 = true, | |
-+ .bootargs_version = VERSION1, | |
- // .mdt_load_sec = qcom_mdt_load_pd_seg, | |
- }; | |
- | |
- static const struct wcss_data q6_ipq5332_res_init = { | |
- .pasid = MPD_WCNSS_PAS_ID, | |
- .share_upd_info_to_q6 = true, | |
-+ .bootargs_version = VERSION2, | |
- }; | |
- | |
- static const struct wcss_data q6_ipq9574_res_init = { | |
diff --git a/target/linux/qualcommax/patches-6.12/0816-arm64-dts-qcom-ipq5018-add-wifi-support.patch b/target/linux/qualcommax/patches-6.12/0816-arm64-dts-qcom-ipq5018-add-wifi-support.patch | |
deleted file mode 100644 | |
index d158688928..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0816-arm64-dts-qcom-ipq5018-add-wifi-support.patch | |
+++ /dev/null | |
@@ -1,241 +0,0 @@ | |
-From: George Moussalem <[email protected]> | |
-Date: Wed, 27 Oct 2024 16:34:11 +0400 | |
-Subject: [PATCH] arm64: dts: qcom: ipq5018: add wifi support | |
- | |
-The IPQ5018 SoC comes with an internal 2x2 2.4Ghz wifi radio. | |
-QCN6122 is a PCIe based wifi solution specific to the IPQ5018 platform which | |
-comes optinally packed with 1 or 2 QCN6122 chips or with an external | |
-PCIe based wifi solution (such as QCN9074) for 5/6 Ghz support. | |
- | |
-As such, add wifi nodes for both IPQ5018 and QCN6122. | |
- | |
-Signed-off-by: George Moussalem <[email protected]> | |
---- | |
---- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-@@ -697,6 +697,225 @@ | |
- }; | |
- }; | |
- | |
-+ wifi0: wifi@c000000 { | |
-+ compatible = "qcom,ipq5018-wifi"; | |
-+ reg = <0xc000000 0x1000000>; | |
-+ | |
-+ interrupts = <GIC_SPI 288 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 289 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 290 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 291 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 292 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 293 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 294 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 295 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 296 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 297 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 298 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 299 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 300 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 301 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 302 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 303 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 304 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 305 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 306 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 307 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 308 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 309 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 310 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 311 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 312 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 313 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 314 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 315 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 316 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 317 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 318 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 319 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 320 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 321 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 322 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 323 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 324 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 325 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 326 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 327 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 328 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 329 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 330 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 331 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 332 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 333 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 334 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 335 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 336 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 337 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 338 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 339 IRQ_TYPE_EDGE_RISING>; | |
-+ | |
-+ interrupt-names = "misc-pulse1", | |
-+ "misc-latch", | |
-+ "sw-exception", | |
-+ "watchdog", | |
-+ "ce0", | |
-+ "ce1", | |
-+ "ce2", | |
-+ "ce3", | |
-+ "ce4", | |
-+ "ce5", | |
-+ "ce6", | |
-+ "ce7", | |
-+ "ce8", | |
-+ "ce9", | |
-+ "ce10", | |
-+ "ce11", | |
-+ "host2wbm-desc-feed", | |
-+ "host2reo-re-injection", | |
-+ "host2reo-command", | |
-+ "host2rxdma-monitor-ring3", | |
-+ "host2rxdma-monitor-ring2", | |
-+ "host2rxdma-monitor-ring1", | |
-+ "reo2ost-exception", | |
-+ "wbm2host-rx-release", | |
-+ "reo2host-status", | |
-+ "reo2host-destination-ring4", | |
-+ "reo2host-destination-ring3", | |
-+ "reo2host-destination-ring2", | |
-+ "reo2host-destination-ring1", | |
-+ "rxdma2host-monitor-destination-mac3", | |
-+ "rxdma2host-monitor-destination-mac2", | |
-+ "rxdma2host-monitor-destination-mac1", | |
-+ "ppdu-end-interrupts-mac3", | |
-+ "ppdu-end-interrupts-mac2", | |
-+ "ppdu-end-interrupts-mac1", | |
-+ "rxdma2host-monitor-status-ring-mac3", | |
-+ "rxdma2host-monitor-status-ring-mac2", | |
-+ "rxdma2host-monitor-status-ring-mac1", | |
-+ "host2rxdma-host-buf-ring-mac3", | |
-+ "host2rxdma-host-buf-ring-mac2", | |
-+ "host2rxdma-host-buf-ring-mac1", | |
-+ "rxdma2host-destination-ring-mac3", | |
-+ "rxdma2host-destination-ring-mac2", | |
-+ "rxdma2host-destination-ring-mac1", | |
-+ "host2tcl-input-ring4", | |
-+ "host2tcl-input-ring3", | |
-+ "host2tcl-input-ring2", | |
-+ "host2tcl-input-ring1", | |
-+ "wbm2host-tx-completions-ring3", | |
-+ "wbm2host-tx-completions-ring2", | |
-+ "wbm2host-tx-completions-ring1", | |
-+ "tcl2host-status-ring"; | |
-+ | |
-+ status = "disabled"; | |
-+ }; | |
-+ | |
-+ //QCN6102 5G | |
-+ wifi1: wifi1@c000000 { | |
-+ reg = <0x0b00a040 0x0>; | |
-+ compatible = "qcom,qcn6122-wifi"; | |
-+ interrupts = <GIC_SPI 416 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 417 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 418 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 419 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 420 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 421 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 422 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 423 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 424 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 425 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 426 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 427 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 428 IRQ_TYPE_EDGE_RISING>; | |
-+ status = "disabled"; | |
-+ }; | |
-+ | |
-+ //QCN6122 5G/6G | |
-+ wifi2: wifi2@c000000 { | |
-+ reg = <0x0b00a040 0x0>; | |
-+ compatible = "qcom,qcn6122-wifi"; | |
-+ interrupts = <GIC_SPI 448 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 450 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 451 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 452 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 453 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 454 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 455 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 456 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 457 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 458 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 459 IRQ_TYPE_EDGE_RISING>, | |
-+ <GIC_SPI 460 IRQ_TYPE_EDGE_RISING>; | |
-+ status = "disabled"; | |
-+ }; | |
-+ | |
-+ q6v5_wcss: remoteproc@cd00000 { | |
-+ compatible = "qcom,ipq5018-q6-mpd"; | |
-+ reg = <0x0cd00000 0x4040>; | |
-+ #address-cells = <1>; | |
-+ #size-cells = <1>; | |
-+ ranges; | |
-+ | |
-+ clocks = <&gcc GCC_XO_CLK>, | |
-+ <&gcc GCC_SLEEP_CLK_SRC>, | |
-+ <&gcc GCC_SYS_NOC_WCSS_AHB_CLK>; | |
-+ | |
-+ interrupts-extended = <&intc GIC_SPI 291 IRQ_TYPE_EDGE_RISING>, | |
-+ <&wcss_smp2p_in 0 IRQ_TYPE_NONE>, | |
-+ <&wcss_smp2p_in 1 IRQ_TYPE_NONE>, | |
-+ <&wcss_smp2p_in 2 IRQ_TYPE_NONE>, | |
-+ <&wcss_smp2p_in 3 IRQ_TYPE_NONE>; | |
-+ interrupt-names = "wdog", | |
-+ "fatal", | |
-+ "ready", | |
-+ "handover", | |
-+ "stop-ack"; | |
-+ | |
-+ qcom,smem-states = <&wcss_smp2p_out 0>, | |
-+ <&wcss_smp2p_out 1>; | |
-+ qcom,smem-state-names = "shutdown", | |
-+ "stop"; | |
-+ | |
-+ status = "disabled"; | |
-+ | |
-+ glink-edge { | |
-+ interrupts = <GIC_SPI 179 IRQ_TYPE_EDGE_RISING>; | |
-+ label = "rtr"; | |
-+ qcom,remote-pid = <1>; | |
-+ mboxes = <&apcs_glb 8>; | |
-+ | |
-+ qrtr_requests { | |
-+ qcom,glink-channels = "IPCRTR"; | |
-+ }; | |
-+ }; | |
-+ }; | |
-+ | |
-+ wcss: smp2p-wcss { | |
-+ compatible = "qcom,smp2p"; | |
-+ qcom,smem = <435>, <428>; | |
-+ | |
-+ interrupt-parent = <&intc>; | |
-+ interrupts = <GIC_SPI 177 IRQ_TYPE_EDGE_RISING>; | |
-+ | |
-+ mboxes = <&apcs_glb 9>; | |
-+ | |
-+ qcom,local-pid = <0>; | |
-+ qcom,remote-pid = <1>; | |
-+ | |
-+ wcss_smp2p_out: master-kernel { | |
-+ qcom,entry-name = "master-kernel"; | |
-+ qcom,smp2p-feature-ssr-ack; | |
-+ #qcom,smem-state-cells = <1>; | |
-+ }; | |
-+ | |
-+ wcss_smp2p_in: slave-kernel { | |
-+ qcom,entry-name = "slave-kernel"; | |
-+ interrupt-controller; | |
-+ #interrupt-cells = <2>; | |
-+ }; | |
-+ }; | |
-+ | |
- pcie1: pcie@80000000 { | |
- compatible = "qcom,pcie-ipq5018"; | |
- reg = <0x80000000 0xf1d>, | |
diff --git a/target/linux/qualcommax/patches-6.12/0817-arm64-dts-qcom-ipq5018-add-tz_apps-reserved-memory-region.patch b/target/linux/qualcommax/patches-6.12/0817-arm64-dts-qcom-ipq5018-add-tz_apps-reserved-memory-region.patch | |
deleted file mode 100644 | |
index e2e63837a9..0000000000 | |
--- a/target/linux/qualcommax/patches-6.12/0817-arm64-dts-qcom-ipq5018-add-tz_apps-reserved-memory-region.patch | |
+++ /dev/null | |
@@ -1,22 +0,0 @@ | |
-From: George Moussalem <[email protected]> | |
-Date: Wed, 05 Feb 2025 12:12:47 +0400 | |
-Subject: [PATCH] arm64: dts: qcom: ipq5018: add tz_apps reserved memory region | |
- | |
-Add tz_apps memory region needed for wifi to work. | |
- | |
-Signed-off-by: George Moussalem <[email protected]> | |
---- | |
---- a/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-+++ b/arch/arm64/boot/dts/qcom/ipq5018.dtsi | |
-@@ -123,6 +123,11 @@ | |
- #size-cells = <2>; | |
- ranges; | |
- | |
-+ tz_apps@4a400000 { | |
-+ reg = <0x0 0x4a400000 0x0 0x400000>; | |
-+ no-map; | |
-+ }; | |
-+ | |
- bootloader@4a800000 { | |
- reg = <0x0 0x4a800000 0x0 0x200000>; | |
- no-map; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment