From 14079448cccc2fb8e2709d5ea194bd5e6a11ded9 Mon Sep 17 00:00:00 2001 From: Alex Elder Date: Mon, 27 Mar 2023 14:56:04 -0500 Subject: [PATCH 1/8] ARM: dts: qcom: sdx65: add IPA information Add IPA-related nodes and definitions to "sdx65.dtsi". The SMP2P nodes (ipa_smp2p_out and ipa_smp2p_in) are already present. Enable IPA in "sdx65-mtp.dts"; this GSI firmware is loaded by Trust Zone on this platform. Reviewed-by: Konrad Dybcio Reviewed-by: Krzysztof Kozlowski Tested-by: Rohit Agarwal Signed-off-by: Alex Elder Signed-off-by: Bjorn Andersson Link: https://lore.kernel.org/r/20230327195605.2854123-2-elder@linaro.org --- arch/arm/boot/dts/qcom-sdx65-mtp.dts | 5 ++++ arch/arm/boot/dts/qcom-sdx65.dtsi | 39 ++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/arch/arm/boot/dts/qcom-sdx65-mtp.dts b/arch/arm/boot/dts/qcom-sdx65-mtp.dts index ed98c83c141f..72e25de0db5f 100644 --- a/arch/arm/boot/dts/qcom-sdx65-mtp.dts +++ b/arch/arm/boot/dts/qcom-sdx65-mtp.dts @@ -245,6 +245,11 @@ &blsp1_uart3 { status = "okay"; }; +&ipa { + qcom,gsi-loader = "skip"; + status = "okay"; +}; + &qpic_bam { status = "okay"; }; diff --git a/arch/arm/boot/dts/qcom-sdx65.dtsi b/arch/arm/boot/dts/qcom-sdx65.dtsi index 192f9f94bc8b..74671cc12c88 100644 --- a/arch/arm/boot/dts/qcom-sdx65.dtsi +++ b/arch/arm/boot/dts/qcom-sdx65.dtsi @@ -11,6 +11,7 @@ #include #include #include +#include / { #address-cells = <1>; @@ -299,6 +300,44 @@ tcsr_mutex: hwlock@1f40000 { #hwlock-cells = <1>; }; + ipa: ipa@3f40000 { + compatible = "qcom,sdx65-ipa"; + + reg = <0x03f40000 0x10000>, + <0x03f50000 0x5000>, + <0x03e04000 0xfc000>; + reg-names = "ipa-reg", + "ipa-shared", + "gsi"; + + interrupts-extended = <&intc GIC_SPI 241 IRQ_TYPE_EDGE_RISING>, + <&intc GIC_SPI 47 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"; + + iommus = <&apps_smmu 0x5e0 0x0>, + <&apps_smmu 0x5e2 0x0>; + + clocks = <&rpmhcc RPMH_IPA_CLK>; + clock-names = "core"; + + interconnects = <&system_noc MASTER_IPA &mc_virt SLAVE_EBI1>, + <&mem_noc MASTER_APPSS_PROC &system_noc SLAVE_IPA_CFG>; + interconnect-names = "memory", + "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"; + }; + remoteproc_mpss: remoteproc@4080000 { compatible = "qcom,sdx55-mpss-pas"; reg = <0x04080000 0x4040>; From 280ecc191281892bf33ed6bfdea46b4c27ce582c Mon Sep 17 00:00:00 2001 From: Alex Elder Date: Mon, 27 Mar 2023 14:56:05 -0500 Subject: [PATCH 2/8] ARM: dts: qcom: sdx65: move status properties to end of nodes Move a few device tree "status" properties so that they are the last specified property, in "qcom-sdx65-mtp.dts" and "qcom-sdx65.dtsi". Note that properties must always be specified before sub-nodes. Reviewed-by: Konrad Dybcio Suggested-by: Konrad Dybcio Signed-off-by: Alex Elder Signed-off-by: Bjorn Andersson Link: https://lore.kernel.org/r/20230327195605.2854123-3-elder@linaro.org --- arch/arm/boot/dts/qcom-sdx65-mtp.dts | 6 +++--- arch/arm/boot/dts/qcom-sdx65.dtsi | 8 +++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/arch/arm/boot/dts/qcom-sdx65-mtp.dts b/arch/arm/boot/dts/qcom-sdx65-mtp.dts index 72e25de0db5f..57bc3b03d3aa 100644 --- a/arch/arm/boot/dts/qcom-sdx65-mtp.dts +++ b/arch/arm/boot/dts/qcom-sdx65-mtp.dts @@ -270,8 +270,8 @@ nand@0 { }; &remoteproc_mpss { - status = "okay"; memory-region = <&mpss_adsp_mem>; + status = "okay"; }; &usb { @@ -283,14 +283,14 @@ &usb_dwc3 { }; &usb_hsphy { - status = "okay"; vdda-pll-supply = <&vreg_l4b_0p88>; vdda33-supply = <&vreg_l10b_3p08>; vdda18-supply = <&vreg_l5b_1p8>; + status = "okay"; }; &usb_qmpphy { - status = "okay"; vdda-phy-supply = <&vreg_l4b_0p88>; vdda-pll-supply = <&vreg_l1b_1p2>; + status = "okay"; }; diff --git a/arch/arm/boot/dts/qcom-sdx65.dtsi b/arch/arm/boot/dts/qcom-sdx65.dtsi index 74671cc12c88..525dd8a1f664 100644 --- a/arch/arm/boot/dts/qcom-sdx65.dtsi +++ b/arch/arm/boot/dts/qcom-sdx65.dtsi @@ -224,16 +224,15 @@ usb_hsphy: phy@ff4000 { "qcom,usb-snps-hs-7nm-phy"; reg = <0xff4000 0x120>; #phy-cells = <0>; - status = "disabled"; clocks = <&rpmhcc RPMH_CXO_CLK>; clock-names = "ref"; resets = <&gcc GCC_QUSB2PHY_BCR>; + status = "disabled"; }; usb_qmpphy: phy@ff6000 { compatible = "qcom,sdx65-qmp-usb3-uni-phy"; reg = <0x00ff6000 0x1c8>; - status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges; @@ -247,6 +246,8 @@ usb_qmpphy: phy@ff6000 { <&gcc GCC_USB3_PHY_BCR>; reset-names = "phy", "common"; + status = "disabled"; + usb_ssphy: phy@ff6200 { reg = <0x00ff6e00 0x160>, <0x00ff7000 0x1ec>, @@ -394,7 +395,6 @@ mem_noc: interconnect@9680000 { usb: usb@a6f8800 { compatible = "qcom,sdx65-dwc3", "qcom,dwc3"; reg = <0x0a6f8800 0x400>; - status = "disabled"; #address-cells = <1>; #size-cells = <1>; ranges; @@ -424,6 +424,8 @@ usb: usb@a6f8800 { resets = <&gcc GCC_USB30_BCR>; + status = "disabled"; + usb_dwc3: usb@a600000 { compatible = "snps,dwc3"; reg = <0x0a600000 0xcd00>; From 941a8a4505cd44e826536ce41ffb863196d68769 Mon Sep 17 00:00:00 2001 From: Konrad Dybcio Date: Wed, 5 Apr 2023 17:50:31 +0200 Subject: [PATCH 3/8] dt-bindings: arm: qcom: Add QRB2210/QCM2290 and RB1 board Document QRB210, a QRB version of QCM2290. Document QTI Robotics RB1 as a QRB2210 device. Signed-off-by: Konrad Dybcio Signed-off-by: Bjorn Andersson Link: https://lore.kernel.org/r/20230403-topic-rb1_qcm-v2-2-dae06f8830dc@linaro.org --- Documentation/devicetree/bindings/arm/qcom.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml index f8d29b65f28b..fb16cfe36b1e 100644 --- a/Documentation/devicetree/bindings/arm/qcom.yaml +++ b/Documentation/devicetree/bindings/arm/qcom.yaml @@ -47,7 +47,9 @@ description: | msm8996 msm8998 qcs404 + qcm2290 qdu1000 + qrb2210 qru1000 sa8155p sa8540p @@ -354,6 +356,13 @@ properties: - const: swir,wp8548 - const: qcom,mdm9615 + - description: Qualcomm Technologies, Inc. Robotics RB1 + items: + - enum: + - qcom,qrb2210-rb1 + - const: qcom,qrb2210 + - const: qcom,qcm2290 + - description: Qualcomm Technologies, Inc. Distributed Unit 1000 platform items: - enum: From 814e1461feb3491807668359bfbda14a324486c1 Mon Sep 17 00:00:00 2001 From: Lux Aliaga Date: Mon, 6 Mar 2023 14:08:15 -0300 Subject: [PATCH 4/8] dt-bindings: arm: qcom: Document xiaomi,laurel-sprout board Document the Xiaomi Mi A3 (xiaomi-laurel-sprout) smartphone which is based on the Snapdragon 665 SoC. Signed-off-by: Lux Aliaga Reviewed-by: Krzysztof Kozlowski Signed-off-by: Bjorn Andersson Link: https://lore.kernel.org/r/20230306170817.3806-6-they@mint.lgbt --- Documentation/devicetree/bindings/arm/qcom.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml index fb16cfe36b1e..4770d7aadb63 100644 --- a/Documentation/devicetree/bindings/arm/qcom.yaml +++ b/Documentation/devicetree/bindings/arm/qcom.yaml @@ -881,6 +881,7 @@ properties: - items: - enum: - sony,pdx201 + - xiaomi,laurel-sprout - const: qcom,sm6125 - items: From f6b161efbb456b11731a4afa330c82223e883832 Mon Sep 17 00:00:00 2001 From: Kathiravan T Date: Thu, 23 Mar 2023 15:01:19 +0530 Subject: [PATCH 5/8] dt-bindings: arm: qcom: document MI01.6 board based on IPQ5332 family Document the MI01.6 (Reference Design Platform 468) board based on IPQ5332 family of SoCs. Signed-off-by: Kathiravan T Acked-by: Krzysztof Kozlowski Signed-off-by: Bjorn Andersson Link: https://lore.kernel.org/r/20230323093120.20558-2-quic_kathirav@quicinc.com --- Documentation/devicetree/bindings/arm/qcom.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml index 4770d7aadb63..785b969294a8 100644 --- a/Documentation/devicetree/bindings/arm/qcom.yaml +++ b/Documentation/devicetree/bindings/arm/qcom.yaml @@ -86,6 +86,7 @@ description: | adp ap-al02-c7 ap-mi01.2 + ap-mi01.6 cdp cp01-c1 dragonboard @@ -330,6 +331,7 @@ properties: - items: - enum: - qcom,ipq5332-ap-mi01.2 + - qcom,ipq5332-ap-mi01.6 - const: qcom,ipq5332 - items: From a6d1d862638b51f2a874948f75fd7284d066f900 Mon Sep 17 00:00:00 2001 From: Manivannan Sadhasivam Date: Fri, 31 Mar 2023 20:29:14 +0530 Subject: [PATCH 6/8] ARM: dts: qcom: sdx55: Move reset and wake gpios to board dts The reset and wake properties in the PCIe EP node belong to the board dts as they can be customized per board design. So let's move them from SoC dtsi. Signed-off-by: Manivannan Sadhasivam Reviewed-by: Konrad Dybcio Signed-off-by: Bjorn Andersson Link: https://lore.kernel.org/r/20230331145915.11653-1-manivannan.sadhasivam@linaro.org --- arch/arm/boot/dts/qcom-sdx55-telit-fn980-tlb.dts | 3 +++ arch/arm/boot/dts/qcom-sdx55.dtsi | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/qcom-sdx55-telit-fn980-tlb.dts b/arch/arm/boot/dts/qcom-sdx55-telit-fn980-tlb.dts index 81f33eba39e5..b73b707342af 100644 --- a/arch/arm/boot/dts/qcom-sdx55-telit-fn980-tlb.dts +++ b/arch/arm/boot/dts/qcom-sdx55-telit-fn980-tlb.dts @@ -255,6 +255,9 @@ &pcie_ep { pinctrl-names = "default"; pinctrl-0 = <&pcie_ep_clkreq_default &pcie_ep_perst_default &pcie_ep_wake_default>; + + reset-gpios = <&tlmm 57 GPIO_ACTIVE_LOW>; + wake-gpios = <&tlmm 53 GPIO_ACTIVE_LOW>; }; &qpic_bam { diff --git a/arch/arm/boot/dts/qcom-sdx55.dtsi b/arch/arm/boot/dts/qcom-sdx55.dtsi index 9148a840b8a0..342c3d14001e 100644 --- a/arch/arm/boot/dts/qcom-sdx55.dtsi +++ b/arch/arm/boot/dts/qcom-sdx55.dtsi @@ -421,8 +421,6 @@ pcie_ep: pcie-ep@1c00000 { ; interrupt-names = "global", "doorbell"; - reset-gpios = <&tlmm 57 GPIO_ACTIVE_LOW>; - wake-gpios = <&tlmm 53 GPIO_ACTIVE_LOW>; resets = <&gcc GCC_PCIE_BCR>; reset-names = "core"; power-domains = <&gcc PCIE_GDSC>; From 23fbf5339d4b18858bcd38811c0eb96df00e8289 Mon Sep 17 00:00:00 2001 From: Manivannan Sadhasivam Date: Fri, 31 Mar 2023 20:29:15 +0530 Subject: [PATCH 7/8] ARM: dts: qcom: sdx55-fn980: Move "status" property to the end of node To align with rest of the devicetree files, let's move the "status" property to the end of the nodes. Signed-off-by: Manivannan Sadhasivam Signed-off-by: Bjorn Andersson Link: https://lore.kernel.org/r/20230331145915.11653-2-manivannan.sadhasivam@linaro.org --- arch/arm/boot/dts/qcom-sdx55-telit-fn980-tlb.dts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/arch/arm/boot/dts/qcom-sdx55-telit-fn980-tlb.dts b/arch/arm/boot/dts/qcom-sdx55-telit-fn980-tlb.dts index b73b707342af..8fadc6e70692 100644 --- a/arch/arm/boot/dts/qcom-sdx55-telit-fn980-tlb.dts +++ b/arch/arm/boot/dts/qcom-sdx55-telit-fn980-tlb.dts @@ -243,21 +243,21 @@ &ipa { }; &pcie_phy { - status = "okay"; - vdda-phy-supply = <&vreg_l1e_bb_1p2>; vdda-pll-supply = <&vreg_l4e_bb_0p875>; + + status = "okay"; }; &pcie_ep { - status = "okay"; - pinctrl-names = "default"; pinctrl-0 = <&pcie_ep_clkreq_default &pcie_ep_perst_default &pcie_ep_wake_default>; reset-gpios = <&tlmm 57 GPIO_ACTIVE_LOW>; wake-gpios = <&tlmm 53 GPIO_ACTIVE_LOW>; + + status = "okay"; }; &qpic_bam { @@ -280,8 +280,8 @@ nand@0 { }; &remoteproc_mpss { - status = "okay"; memory-region = <&mpss_adsp_mem>; + status = "okay"; }; &tlmm { @@ -308,16 +308,18 @@ pcie_ep_wake_default: pcie-ep-wake-default-state { }; &usb_hsphy { - status = "okay"; vdda-pll-supply = <&vreg_l4e_bb_0p875>; vdda33-supply = <&vreg_l10e_3p1>; vdda18-supply = <&vreg_l5e_bb_1p7>; + + status = "okay"; }; &usb_qmpphy { - status = "okay"; vdda-phy-supply = <&vreg_l4e_bb_0p875>; vdda-pll-supply = <&vreg_l1e_bb_1p2>; + + status = "okay"; }; &usb { From 4e859ef0bae3c0839ad362408d2f7321332e4850 Mon Sep 17 00:00:00 2001 From: Bhupesh Sharma Date: Tue, 11 Apr 2023 12:58:38 +0530 Subject: [PATCH 8/8] dt-bindings: arm: qcom: Document the Qualcomm qrb4210-rb2 board Document the Qualcomm qrb4210-rb2 board based on Robotics version of the Snapdragon SM4250 Soc, i.e. QRB4210. Acked-by: Krzysztof Kozlowski Signed-off-by: Bhupesh Sharma Signed-off-by: Bjorn Andersson Link: https://lore.kernel.org/r/20230411072840.2751813-2-bhupesh.sharma@linaro.org --- Documentation/devicetree/bindings/arm/qcom.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml index 785b969294a8..d9dd25695c3d 100644 --- a/Documentation/devicetree/bindings/arm/qcom.yaml +++ b/Documentation/devicetree/bindings/arm/qcom.yaml @@ -50,6 +50,7 @@ description: | qcm2290 qdu1000 qrb2210 + qrb4210 qru1000 sa8155p sa8540p @@ -97,6 +98,7 @@ description: | liquid mtp qrd + rb2 ride sbc x100 @@ -874,6 +876,12 @@ properties: - oneplus,billie2 - const: qcom,sm4250 + - items: + - enum: + - qcom,qrb4210-rb2 + - const: qcom,qrb4210 + - const: qcom,sm4250 + - items: - enum: - lenovo,j606f