Skip to contentSkip to conversation

arm64: dts: qcom: sm6350: enable IPA

PATCH Superseded Alex Elder 1 participant 3 messages Dec 8, 2022

Subsystems (3)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

Alex Elder

author
#0 lore raw

cover arm64: dts: qcom: sm6350: enable IPA

Enable IPA for the SM6350 SoC, which implements IPA v4.7. Enable it on the Fairphone 4, which incorporates IPA definitions used for the SM6350.

Please delay applying this until after Linux v6.1 is tagged.

-Alex

Luca Weiss (2):
arm64: dts: qcom: sm6350: add IPA node
arm64: dts: qcom: sm7225-fairphone-fp4: enable IPA

 arch/arm64/boot/dts/qcom/sm6350.dtsi          | 47 +++++++++++++++++++
 .../boot/dts/qcom/sm7225-fairphone-fp4.dts    |  7 +++
 2 files changed, 54 insertions(+)
Signature · 1 line
2.34.1
author
#1 lore raw

PATCH 1/2 arm64: dts: qcom: sm6350: add IPA node

From: Luca Weiss <[email protected]>

IPA is used for mobile data. Add a node describing it.

---
 arch/arm64/boot/dts/qcom/sm6350.dtsi | 47 ++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)
arch/arm64/boot/dts/qcom/sm6350.dtsi +47 -0
index 43324bf291c30..f622d870bc827 100644
@@ -432,7 +432,17 @@ modem_smp2p_out: master-kernel {
 
 		modem_smp2p_in: slave-kernel {
 			qcom,entry-name = "slave-kernel";
+			interrupt-controller;
+			#interrupt-cells = <2>;
+		};
 
+		ipa_smp2p_out: ipa-ap-to-modem {
+			qcom,entry-name = "ipa";
+			#qcom,smem-state-cells = <1>;
+		};
+
+		ipa_smp2p_in: ipa-modem-to-ap {
+			qcom,entry-name = "ipa";
 			interrupt-controller;
 			#interrupt-cells = <2>;
 		};
@@ -847,6 +857,43 @@ ufs_mem_phy_lanes: phy@1d87400 {
 			};
 		};
 
+		ipa: ipa@1e40000 {
+			compatible = "qcom,sm6350-ipa";
+
+			iommus = <&apps_smmu 0x440 0x0>,
+				 <&apps_smmu 0x442 0x0>;
+			reg = <0 0x01e40000 0 0x8000>,
+			      <0 0x01e50000 0 0x3000>,
+			      <0 0x01e04000 0 0x23000>;
+			reg-names = "ipa-reg",
+				    "ipa-shared",
+				    "gsi";
+
+			interrupts-extended = <&intc GIC_SPI 311 IRQ_TYPE_EDGE_RISING>,
+					      <&intc GIC_SPI 432 IRQ_TYPE_LEVEL_HIGH>,
+					      <&ipa_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+					      <&ipa_smp2p_in 1 IRQ_TYPE_EDGE_RISING>;
+			interrupt-names = "ipa",
+					  "gsi",
+					  "ipa-clock-query",
+					  "ipa-setup-ready";
+
+			clocks = <&rpmhcc RPMH_IPA_CLK>;
+			clock-names = "core";
+
+			interconnects = <&aggre2_noc MASTER_IPA 0 &clk_virt SLAVE_EBI_CH0 0>,
+					<&aggre2_noc MASTER_IPA 0 &system_noc SLAVE_OCIMEM 0>,
+					<&gem_noc MASTER_AMPSS_M0 0 &config_noc SLAVE_IPA_CFG 0>;
+			interconnect-names = "memory", "imem", "config";
+
+			qcom,smem-states = <&ipa_smp2p_out 0>,
+					   <&ipa_smp2p_out 1>;
+			qcom,smem-state-names = "ipa-clock-enabled-valid",
+						"ipa-clock-enabled";
+
+			status = "disabled";
+		};
+
 		tcsr_mutex: hwlock@1f40000 {
 			compatible = "qcom,tcsr-mutex";
 			reg = <0x0 0x01f40000 0x0 0x40000>;
Signature · 1 line
2.34.1
author
#2 lore raw

PATCH 2/2 arm64: dts: qcom: sm7225-fairphone-fp4: enable IPA

In reply to Alex Elder

From: Luca Weiss <[email protected]>

IPA is used for mobile data. Enable it.

---
 arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts | 7 +++++++
 1 file changed, 7 insertions(+)
arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts +7 -0
index c456e9594ea5b..1e199a7898a04 100644
@@ -362,6 +362,13 @@ haptics@5a {
 	};
 };
 
+&ipa {
+	status = "okay";
+
+	memory-region = <&pil_ipa_fw_mem>;
+	firmware-name = "qcom/sm7225/fairphone4/ipa_fws.mdt";
+};
+
 &mpss {
 	status = "okay";
 	firmware-name = "qcom/sm7225/fairphone4/modem.mdt";
Signature · 1 line
2.34.1