linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] Add PCIe EP and IPA support for SDX55
@ 2021-11-26  7:05 Manivannan Sadhasivam
  2021-11-26  7:05 ` [PATCH 1/6] ARM: dts: qcom: sdx55: Add support for PCIe PHY Manivannan Sadhasivam
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Manivannan Sadhasivam @ 2021-11-26  7:05 UTC (permalink / raw)
  To: bjorn.andersson; +Cc: linux-arm-msm, linux-kernel, Manivannan Sadhasivam

Hi Bjorn,

This series adds the devicetree support for PCIe PHY, PCIe EP and IPA on SDX55.
The PCIe EP is enabled only on FN980 as there is no endpoint support on T55.

For IPA, the support is enabled on both FN980 and T55 boards. With this, IPA
seems to be functional as the modem ready interrupt has been received. But there
is an issue with some QMI command failing with the mode, so can't do the
data call atm.

Thanks,
Mani

Manivannan Sadhasivam (6):
  ARM: dts: qcom: sdx55: Add support for PCIe PHY
  ARM: dts: qcom: sdx55-fn980: Enable PCIE0 PHY
  ARM: dts: qcom: sdx55: Add support for PCIe EP
  ARM: dts: qcom: sdx55-fn980: Enable PCIe EP
  ARM: dts: qcom: sdx55-fn980: Enable IPA
  ARM: dts: qcom: sdx55-t55: Enable IPA

 arch/arm/boot/dts/qcom-sdx55-t55.dts          |  6 ++
 .../boot/dts/qcom-sdx55-telit-fn980-tlb.dts   | 59 ++++++++++++++
 arch/arm/boot/dts/qcom-sdx55.dtsi             | 80 +++++++++++++++++++
 3 files changed, 145 insertions(+)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/6] ARM: dts: qcom: sdx55: Add support for PCIe PHY
  2021-11-26  7:05 [PATCH 0/6] Add PCIe EP and IPA support for SDX55 Manivannan Sadhasivam
@ 2021-11-26  7:05 ` Manivannan Sadhasivam
  2021-11-26  7:05 ` [PATCH 2/6] ARM: dts: qcom: sdx55-fn980: Enable PCIE0 PHY Manivannan Sadhasivam
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Manivannan Sadhasivam @ 2021-11-26  7:05 UTC (permalink / raw)
  To: bjorn.andersson; +Cc: linux-arm-msm, linux-kernel, Manivannan Sadhasivam

Add devicetree support for PCIe PHY used in SDX55 platform. This PHY is
used by the PCIe EP controller.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
---
 arch/arm/boot/dts/qcom-sdx55.dtsi | 35 +++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/arch/arm/boot/dts/qcom-sdx55.dtsi b/arch/arm/boot/dts/qcom-sdx55.dtsi
index 44526ad9d210..16995782dfdf 100644
--- a/arch/arm/boot/dts/qcom-sdx55.dtsi
+++ b/arch/arm/boot/dts/qcom-sdx55.dtsi
@@ -309,6 +309,41 @@ qpic_nand: nand-controller@1b30000 {
 			status = "disabled";
 		};
 
+		pcie0_phy: phy@1c07000 {
+			compatible = "qcom,sdx55-qmp-pcie-phy";
+			reg = <0x01c07000 0x1c4>;
+			#address-cells = <1>;
+			#size-cells = <1>;
+			ranges;
+			clocks = <&gcc GCC_PCIE_AUX_PHY_CLK_SRC>,
+				 <&gcc GCC_PCIE_CFG_AHB_CLK>,
+				 <&gcc GCC_PCIE_0_CLKREF_CLK>,
+				 <&gcc GCC_PCIE_RCHNG_PHY_CLK>;
+			clock-names = "aux", "cfg_ahb", "ref", "refgen";
+
+			resets = <&gcc GCC_PCIE_PHY_BCR>;
+			reset-names = "phy";
+
+			assigned-clocks = <&gcc GCC_PCIE_RCHNG_PHY_CLK>;
+			assigned-clock-rates = <100000000>;
+
+			status = "disabled";
+
+			pcie0_lane: lanes@1c06000 {
+				reg = <0x01c06000 0x104>, /* tx0 */
+				      <0x01c06200 0x328>, /* rx0 */
+				      <0x01c07200 0x1e8>, /* pcs */
+				      <0x01c06800 0x104>, /* tx1 */
+				      <0x01c06a00 0x328>, /* rx1 */
+				      <0x01c07600 0x800>; /* pcs_misc */
+				clocks = <&gcc GCC_PCIE_PIPE_CLK>;
+				clock-names = "pipe0";
+
+				#phy-cells = <0>;
+				clock-output-names = "pcie_pipe_clk";
+			};
+		};
+
 		ipa: ipa@1e40000 {
 			compatible = "qcom,sdx55-ipa";
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/6] ARM: dts: qcom: sdx55-fn980: Enable PCIE0 PHY
  2021-11-26  7:05 [PATCH 0/6] Add PCIe EP and IPA support for SDX55 Manivannan Sadhasivam
  2021-11-26  7:05 ` [PATCH 1/6] ARM: dts: qcom: sdx55: Add support for PCIe PHY Manivannan Sadhasivam
@ 2021-11-26  7:05 ` Manivannan Sadhasivam
  2021-11-26  7:05 ` [PATCH 3/6] ARM: dts: qcom: sdx55: Add support for PCIe EP Manivannan Sadhasivam
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Manivannan Sadhasivam @ 2021-11-26  7:05 UTC (permalink / raw)
  To: bjorn.andersson; +Cc: linux-arm-msm, linux-kernel, Manivannan Sadhasivam

Enable PCIE0 PHY on Telit FN980 TLB for PCIE EP.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
---
 arch/arm/boot/dts/qcom-sdx55-telit-fn980-tlb.dts | 7 +++++++
 1 file changed, 7 insertions(+)

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 80c40da79604..e8b5327afbe7 100644
--- a/arch/arm/boot/dts/qcom-sdx55-telit-fn980-tlb.dts
+++ b/arch/arm/boot/dts/qcom-sdx55-telit-fn980-tlb.dts
@@ -236,6 +236,13 @@ &blsp1_uart3 {
 	status = "ok";
 };
 
+&pcie0_phy {
+	status = "okay";
+
+	vdda-phy-supply = <&vreg_l1e_bb_1p2>;
+	vdda-pll-supply = <&vreg_l4e_bb_0p875>;
+};
+
 &qpic_bam {
 	status = "ok";
 };
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/6] ARM: dts: qcom: sdx55: Add support for PCIe EP
  2021-11-26  7:05 [PATCH 0/6] Add PCIe EP and IPA support for SDX55 Manivannan Sadhasivam
  2021-11-26  7:05 ` [PATCH 1/6] ARM: dts: qcom: sdx55: Add support for PCIe PHY Manivannan Sadhasivam
  2021-11-26  7:05 ` [PATCH 2/6] ARM: dts: qcom: sdx55-fn980: Enable PCIE0 PHY Manivannan Sadhasivam
@ 2021-11-26  7:05 ` Manivannan Sadhasivam
  2021-11-26  7:05 ` [PATCH 4/6] ARM: dts: qcom: sdx55-fn980: Enable " Manivannan Sadhasivam
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Manivannan Sadhasivam @ 2021-11-26  7:05 UTC (permalink / raw)
  To: bjorn.andersson; +Cc: linux-arm-msm, linux-kernel, Manivannan Sadhasivam

Add support for PCIe Endpoint controller on the Qualcomm SDX55 platform.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
---
 arch/arm/boot/dts/qcom-sdx55.dtsi | 45 +++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/arch/arm/boot/dts/qcom-sdx55.dtsi b/arch/arm/boot/dts/qcom-sdx55.dtsi
index 16995782dfdf..5d769b3f2d35 100644
--- a/arch/arm/boot/dts/qcom-sdx55.dtsi
+++ b/arch/arm/boot/dts/qcom-sdx55.dtsi
@@ -8,6 +8,7 @@
 
 #include <dt-bindings/clock/qcom,gcc-sdx55.h>
 #include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interconnect/qcom,sdx55.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/power/qcom-rpmpd.h>
@@ -391,6 +392,11 @@ tcsr_mutex: hwlock@1f40000 {
 			#hwlock-cells = <1>;
 		};
 
+		tcsr: syscon@1fcb000 {
+			compatible = "syscon";
+			reg = <0x01fc0000 0x1000>;
+		};
+
 		sdhc_1: sdhci@8804000 {
 			compatible = "qcom,sdx55-sdhci", "qcom,sdhci-msm-v5";
 			reg = <0x08804000 0x1000>;
@@ -403,6 +409,45 @@ sdhc_1: sdhci@8804000 {
 			status = "disabled";
 		};
 
+		pcie_ep: pcie-ep@40000000 {
+			compatible = "qcom,sdx55-pcie-ep";
+			reg = <0x01c00000 0x3000>,
+			      <0x40000000 0xf1d>,
+			      <0x40000f20 0xc8>,
+			      <0x40001000 0x1000>,
+			      <0x40002000 0x10000>,
+			      <0x01c03000 0x3000>;
+			reg-names = "parf", "dbi", "elbi", "atu", "addr_space",
+				    "mmio";
+
+			qcom,perst-regs = <&tcsr 0xb258 0xb270>;
+
+			clocks = <&gcc GCC_PCIE_AUX_CLK>,
+				 <&gcc GCC_PCIE_CFG_AHB_CLK>,
+				 <&gcc GCC_PCIE_MSTR_AXI_CLK>,
+				 <&gcc GCC_PCIE_SLV_AXI_CLK>,
+				 <&gcc GCC_PCIE_SLV_Q2A_AXI_CLK>,
+				 <&gcc GCC_PCIE_SLEEP_CLK>,
+				 <&gcc GCC_PCIE_0_CLKREF_CLK>;
+			clock-names = "aux", "cfg", "bus_master", "bus_slave",
+				      "slave_q2a", "sleep", "ref";
+
+			interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
+			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>;
+			phys = <&pcie0_lane>;
+			phy-names = "pciephy";
+			max-link-speed = <3>;
+			num-lanes = <2>;
+
+			status = "disabled";
+		};
+
 		remoteproc_mpss: remoteproc@4080000 {
 			compatible = "qcom,sdx55-mpss-pas";
 			reg = <0x04080000 0x4040>;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 4/6] ARM: dts: qcom: sdx55-fn980: Enable PCIe EP
  2021-11-26  7:05 [PATCH 0/6] Add PCIe EP and IPA support for SDX55 Manivannan Sadhasivam
                   ` (2 preceding siblings ...)
  2021-11-26  7:05 ` [PATCH 3/6] ARM: dts: qcom: sdx55: Add support for PCIe EP Manivannan Sadhasivam
@ 2021-11-26  7:05 ` Manivannan Sadhasivam
  2021-11-26  7:05 ` [PATCH 5/6] ARM: dts: qcom: sdx55-fn980: Enable IPA Manivannan Sadhasivam
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Manivannan Sadhasivam @ 2021-11-26  7:05 UTC (permalink / raw)
  To: bjorn.andersson; +Cc: linux-arm-msm, linux-kernel, Manivannan Sadhasivam

Enable PCIe Endpoint controller on the Telit FN980 TLB board based
on Qualcomm SDX55 platform.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
---
 .../boot/dts/qcom-sdx55-telit-fn980-tlb.dts   | 46 +++++++++++++++++++
 1 file changed, 46 insertions(+)

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 e8b5327afbe7..01ac91738f34 100644
--- a/arch/arm/boot/dts/qcom-sdx55-telit-fn980-tlb.dts
+++ b/arch/arm/boot/dts/qcom-sdx55-telit-fn980-tlb.dts
@@ -243,6 +243,14 @@ &pcie0_phy {
 	vdda-pll-supply = <&vreg_l4e_bb_0p875>;
 };
 
+&pcie_ep {
+	status = "okay";
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&pcie_ep_clkreq_default &pcie_ep_perst_default
+		     &pcie_ep_wake_default>;
+};
+
 &qpic_bam {
 	status = "ok";
 };
@@ -267,6 +275,44 @@ &remoteproc_mpss {
 	memory-region = <&mpss_adsp_mem>;
 };
 
+&tlmm {
+	pcie_ep_clkreq_default: pcie_ep_clkreq_default {
+		mux {
+			pins = "gpio56";
+			function = "pcie_clkreq";
+		};
+		config {
+			pins = "gpio56";
+			drive-strength = <2>;
+			bias-disable;
+		};
+	};
+
+	pcie_ep_perst_default: pcie_ep_perst_default {
+		mux {
+			pins = "gpio57";
+			function = "gpio";
+		};
+		config {
+			pins = "gpio57";
+			drive-strength = <2>;
+			bias-pull-down;
+		};
+	};
+
+	pcie_ep_wake_default: pcie_ep_wake_default {
+		mux {
+			pins = "gpio53";
+			function = "gpio";
+		};
+		config {
+			pins = "gpio53";
+			drive-strength = <2>;
+			bias-disable;
+		};
+	};
+};
+
 &usb_hsphy {
 	status = "okay";
 	vdda-pll-supply = <&vreg_l4e_bb_0p875>;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 5/6] ARM: dts: qcom: sdx55-fn980: Enable IPA
  2021-11-26  7:05 [PATCH 0/6] Add PCIe EP and IPA support for SDX55 Manivannan Sadhasivam
                   ` (3 preceding siblings ...)
  2021-11-26  7:05 ` [PATCH 4/6] ARM: dts: qcom: sdx55-fn980: Enable " Manivannan Sadhasivam
@ 2021-11-26  7:05 ` Manivannan Sadhasivam
  2021-11-26  7:05 ` [PATCH 6/6] ARM: dts: qcom: sdx55-t55: " Manivannan Sadhasivam
  2021-12-01 15:12 ` [PATCH 0/6] Add PCIe EP and IPA support for SDX55 Bjorn Andersson
  6 siblings, 0 replies; 8+ messages in thread
From: Manivannan Sadhasivam @ 2021-11-26  7:05 UTC (permalink / raw)
  To: bjorn.andersson; +Cc: linux-arm-msm, linux-kernel, Manivannan Sadhasivam

Enable IP Accelerator (IPA) on Telit FN980 TLB for getting data
connectivity from modem.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
---
 arch/arm/boot/dts/qcom-sdx55-telit-fn980-tlb.dts | 6 ++++++
 1 file changed, 6 insertions(+)

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 01ac91738f34..a4fa468a095f 100644
--- a/arch/arm/boot/dts/qcom-sdx55-telit-fn980-tlb.dts
+++ b/arch/arm/boot/dts/qcom-sdx55-telit-fn980-tlb.dts
@@ -236,6 +236,12 @@ &blsp1_uart3 {
 	status = "ok";
 };
 
+&ipa {
+	status = "okay";
+
+	memory-region = <&ipa_fw_mem>;
+};
+
 &pcie0_phy {
 	status = "okay";
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 6/6] ARM: dts: qcom: sdx55-t55: Enable IPA
  2021-11-26  7:05 [PATCH 0/6] Add PCIe EP and IPA support for SDX55 Manivannan Sadhasivam
                   ` (4 preceding siblings ...)
  2021-11-26  7:05 ` [PATCH 5/6] ARM: dts: qcom: sdx55-fn980: Enable IPA Manivannan Sadhasivam
@ 2021-11-26  7:05 ` Manivannan Sadhasivam
  2021-12-01 15:12 ` [PATCH 0/6] Add PCIe EP and IPA support for SDX55 Bjorn Andersson
  6 siblings, 0 replies; 8+ messages in thread
From: Manivannan Sadhasivam @ 2021-11-26  7:05 UTC (permalink / raw)
  To: bjorn.andersson; +Cc: linux-arm-msm, linux-kernel, Manivannan Sadhasivam

Enable IP Accelerator (IPA) on Thundercomm T55 board for getting data
connectivity from modem.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
---
 arch/arm/boot/dts/qcom-sdx55-t55.dts | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm/boot/dts/qcom-sdx55-t55.dts b/arch/arm/boot/dts/qcom-sdx55-t55.dts
index 2ffcd085904d..7ed8feb99afb 100644
--- a/arch/arm/boot/dts/qcom-sdx55-t55.dts
+++ b/arch/arm/boot/dts/qcom-sdx55-t55.dts
@@ -236,6 +236,12 @@ &blsp1_uart3 {
 	status = "ok";
 };
 
+&ipa {
+	status = "okay";
+
+	memory-region = <&ipa_fw_mem>;
+};
+
 &qpic_bam {
 	status = "ok";
 };
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/6] Add PCIe EP and IPA support for SDX55
  2021-11-26  7:05 [PATCH 0/6] Add PCIe EP and IPA support for SDX55 Manivannan Sadhasivam
                   ` (5 preceding siblings ...)
  2021-11-26  7:05 ` [PATCH 6/6] ARM: dts: qcom: sdx55-t55: " Manivannan Sadhasivam
@ 2021-12-01 15:12 ` Bjorn Andersson
  6 siblings, 0 replies; 8+ messages in thread
From: Bjorn Andersson @ 2021-12-01 15:12 UTC (permalink / raw)
  To: Manivannan Sadhasivam; +Cc: linux-arm-msm, linux-kernel

On Fri, 26 Nov 2021 12:35:14 +0530, Manivannan Sadhasivam wrote:
> This series adds the devicetree support for PCIe PHY, PCIe EP and IPA on SDX55.
> The PCIe EP is enabled only on FN980 as there is no endpoint support on T55.
> 
> For IPA, the support is enabled on both FN980 and T55 boards. With this, IPA
> seems to be functional as the modem ready interrupt has been received. But there
> is an issue with some QMI command failing with the mode, so can't do the
> data call atm.
> 
> [...]

Applied, thanks!

[1/6] ARM: dts: qcom: sdx55: Add support for PCIe PHY
      commit: 254a27585eb135f35887579ebc7d0e02b9788b92
[2/6] ARM: dts: qcom: sdx55-fn980: Enable PCIE0 PHY
      commit: a5a2661287b450f2b1f751ae7b4da4f39976571b
[3/6] ARM: dts: qcom: sdx55: Add support for PCIe EP
      commit: e6b69813283f9babc6892c1324d2c3bd2a577d9c
[4/6] ARM: dts: qcom: sdx55-fn980: Enable PCIe EP
      commit: 7cecfb53cad8e9f564fdf11e56502c7d8607b3a3
[5/6] ARM: dts: qcom: sdx55-fn980: Enable IPA
      commit: e1fb17ee85bc85808eeb103afa63581d065c7328
[6/6] ARM: dts: qcom: sdx55-t55: Enable IPA
      commit: 1f7fe79d03b2ac0991c8a229ca50a9f45b71df80

Best regards,
-- 
Bjorn Andersson <bjorn.andersson@linaro.org>

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-12-01 15:15 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-26  7:05 [PATCH 0/6] Add PCIe EP and IPA support for SDX55 Manivannan Sadhasivam
2021-11-26  7:05 ` [PATCH 1/6] ARM: dts: qcom: sdx55: Add support for PCIe PHY Manivannan Sadhasivam
2021-11-26  7:05 ` [PATCH 2/6] ARM: dts: qcom: sdx55-fn980: Enable PCIE0 PHY Manivannan Sadhasivam
2021-11-26  7:05 ` [PATCH 3/6] ARM: dts: qcom: sdx55: Add support for PCIe EP Manivannan Sadhasivam
2021-11-26  7:05 ` [PATCH 4/6] ARM: dts: qcom: sdx55-fn980: Enable " Manivannan Sadhasivam
2021-11-26  7:05 ` [PATCH 5/6] ARM: dts: qcom: sdx55-fn980: Enable IPA Manivannan Sadhasivam
2021-11-26  7:05 ` [PATCH 6/6] ARM: dts: qcom: sdx55-t55: " Manivannan Sadhasivam
2021-12-01 15:12 ` [PATCH 0/6] Add PCIe EP and IPA support for SDX55 Bjorn Andersson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).