[PATCH 05/13] arm64: dts: hisilicon: Add HI3670 PCI-E controller support

Mauro Carvalho Chehab mchehab+huawei at kernel.org
Tue Feb 2 08:29:50 EST 2021


From: Manivannan Sadhasivam <manivannan.sadhasivam at linaro.org>

Add PCI-E controller support for HiSilicon HI3670 SoC.

[mchehab+huawei at kernel.org: fix merge conflicts]
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam at linaro.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei at kernel.org>
---
 arch/arm64/boot/dts/hisilicon/hi3670.dtsi | 64 +++++++++++++++++++++++
 1 file changed, 64 insertions(+)

diff --git a/arch/arm64/boot/dts/hisilicon/hi3670.dtsi b/arch/arm64/boot/dts/hisilicon/hi3670.dtsi
index 5522a5de07a8..c0a0336a8ea4 100644
--- a/arch/arm64/boot/dts/hisilicon/hi3670.dtsi
+++ b/arch/arm64/boot/dts/hisilicon/hi3670.dtsi
@@ -177,6 +177,12 @@ sctrl: sctrl at fff0a000 {
 			#clock-cells = <1>;
 		};
 
+		pmctrl: pmctrl at fff31000 {
+			compatible = "hisilicon,hi3670-pmctrl", "syscon";
+			reg = <0x0 0xfff31000 0x0 0x1000>;
+			#clock-cells = <1>;
+		};
+
 		iomcu: iomcu at ffd7e000 {
 			compatible = "hisilicon,hi3670-iomcu", "syscon";
 			reg = <0x0 0xffd7e000 0x0 0x1000>;
@@ -660,6 +666,64 @@ gpio28: gpio at fff1d000 {
 			clock-names = "apb_pclk";
 		};
 
+		its_pcie: interrupt-controller at f4000000 {
+			compatible = "arm,gic-v3-its";
+			msi-controller;
+			reg = <0x0 0xf5100000 0x0 0x100000>;
+		};
+
+		pcie at f4000000 {
+			compatible = "hisilicon,kirin970-pcie", "hisilicon,kirin960-pcie";
+			reg = <0x0 0xf4000000 0x0 0x1000000>,
+			      <0x0 0xfc180000 0x0 0x1000>,
+			      <0x0 0xfc000000 0x0 0x80000>,
+			      <0x0 0xf5000000 0x0 0x2000>;
+			reg-names = "dbi", "apb", "phy", "config";
+			bus-range = <0x0  0x1>;
+			msi-parent = <&its_pcie>;
+			#address-cells = <3>;
+			#size-cells = <2>;
+			device_type = "pci";
+			ranges = <0x02000000 0x0 0x00000000
+				  0x0 0xf6000000
+				  0x0 0x02000000>;
+			num-lanes = <1>;
+			#interrupt-cells = <1>;
+			interrupts = <0 283 4>;
+			interrupt-names = "msi";
+			interrupt-map-mask = <0 0 0 7>;
+			interrupt-map = <0x0 0 0 1
+					 &gic GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
+					<0x0 0 0 2
+					 &gic GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>,
+					<0x0 0 0 3
+					 &gic GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>,
+					<0x0 0 0 4
+					 &gic GIC_SPI 285 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&crg_ctrl HI3670_CLK_GATE_PCIEPHY_REF>,
+				 <&crg_ctrl HI3670_CLK_GATE_PCIEAUX>,
+				 <&crg_ctrl HI3670_PCLK_GATE_PCIE_PHY>,
+				 <&crg_ctrl HI3670_PCLK_GATE_PCIE_SYS>,
+				 <&crg_ctrl HI3670_ACLK_GATE_PCIE>;
+			clock-names = "pcie_phy_ref", "pcie_aux",
+				      "pcie_apb_phy", "pcie_apb_sys",
+				      "pcie_aclk";
+			switch,reset-gpios = <&gpio7 0 0 >;
+			eth,reset-gpios = <&gpio25 2 0 >;
+			m_2,reset-gpios = <&gpio3 1 0 >;
+			mini1,reset-gpios = <&gpio27 4 0 >;
+
+			eth,clkreq-gpios = <&gpio20 6 0 >;
+			m_2,clkreq-gpios = <&gpio27 3 0 >;
+			mini1,clkreq-gpios = <&gpio17 0 0 >;
+
+			/*vboost iboost pre post main*/
+			eye_param = <0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF>;
+
+			pinctrl-names = "default";
+			pinctrl-0 = <&pcie_clkreq_pmx_func &pcie_clkreq_cfg_func>;
+		};
+
 		/* UFS */
 		ufs: ufs at ff3c0000 {
 			compatible = "hisilicon,hi3670-ufs", "jedec,ufs-2.1";
-- 
2.29.2




More information about the linux-arm-kernel mailing list