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(+)
--
2.34.1
From: Luca Weiss <[email protected]>
IPA is used for mobile data. Enable it.
Signed-off-by: Luca Weiss <[email protected]>
Signed-off-by: Alex Elder <[email protected]>
---
arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts b/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
index c456e9594ea5b..1e199a7898a04 100644
--- a/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
+++ b/arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
@@ -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";
--
2.34.1
From: Luca Weiss <[email protected]>
IPA is used for mobile data. Add a node describing it.
Signed-off-by: Luca Weiss <[email protected]>
Signed-off-by: Alex Elder <[email protected]>
---
arch/arm64/boot/dts/qcom/sm6350.dtsi | 47 ++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm6350.dtsi b/arch/arm64/boot/dts/qcom/sm6350.dtsi
index 43324bf291c30..f622d870bc827 100644
--- a/arch/arm64/boot/dts/qcom/sm6350.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm6350.dtsi
@@ -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>;
--
2.34.1