Merge "ARM: dts: msm: update dt node to support PCIe2 on kona"
diff --git a/arch/arm64/boot/dts/qcom/kona-pcie.dtsi b/arch/arm64/boot/dts/qcom/kona-pcie.dtsi
index 2b64323..2a28bd5 100644
--- a/arch/arm64/boot/dts/qcom/kona-pcie.dtsi
+++ b/arch/arm64/boot/dts/qcom/kona-pcie.dtsi
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-only
/*
- * Copyright (c) 2018, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
*/
#include <dt-bindings/clock/qcom,gcc-kona.h>
@@ -9,16 +9,13 @@
pcie2: qcom,pcie@1c10000 {
compatible = "qcom,pci-msm";
- reg = <0x01c10000 0x4000>,
+ reg = <0x01c10000 0x3000>,
<0x01c16000 0x2000>,
<0x64000000 0xf1d>,
<0x64000f20 0xa8>,
<0x64001000 0x1000>,
- <0x64100000 0x100000>,
- <0x64200000 0x100000>,
- <0x64300000 0x4000000>;
- reg-names = "parf", "phy", "dm_core", "elbi", "iatu", "conf",
- "io", "bars";
+ <0x64100000 0x100000>;
+ reg-names = "parf", "phy", "dm_core", "elbi", "iatu", "conf";
cell-index = <2>;
linux,pci-domain = <2>;
@@ -26,20 +23,19 @@
#address-cells = <3>;
#size-cells = <2>;
ranges = <0x01000000 0x0 0x64200000 0x64200000 0x0 0x100000>,
- <0x02000000 0x0 0x64300000 0x64300000 0x0 0x4000000>;
+ <0x02000000 0x0 0x64300000 0x64300000 0x0 0x3d00000>;
interrupt-parent = <&pcie2>;
- interrupts = <0 1 2 3 4 5>;
- interrupt-names = "int_msi", "int_a", "int_b", "int_c", "int_d",
- "int_global_int";
+ interrupts = <0 1 2 3 4>;
+ interrupt-names = "int_global_int", "int_a", "int_b", "int_c",
+ "int_d";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 0xffffffff>;
- interrupt-map = <0 0 0 0 &intc GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH
+ interrupt-map = <0 0 0 0 &intc GIC_SPI 236 IRQ_TYPE_LEVEL_HIGH
0 0 0 1 &intc GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH
0 0 0 2 &intc GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH
0 0 0 3 &intc GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH
- 0 0 0 4 &intc GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH
- 0 0 0 5 &intc GIC_SPI 236 IRQ_TYPE_LEVEL_HIGH>;
+ 0 0 0 4 &intc GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>;
msi-parent = <&pcie2_msi>;
perst-gpio = <&tlmm 85 0>;
@@ -53,8 +49,8 @@
vreg-1p8-supply = <&pm8150_l9>;
vreg-0p9-supply = <&pm8150_l5>;
vreg-cx-supply = <&VDD_CX_LEVEL>;
- qcom,vreg-1p8-voltage-level = <1200000 1200000 24000>;
- qcom,vreg-0p9-voltage-level = <880000 880000 24000>;
+ qcom,vreg-1p8-voltage-level = <1200000 1200000 25500>;
+ qcom,vreg-0p9-voltage-level = <880000 880000 98800>;
qcom,vreg-cx-voltage-level = <RPMH_REGULATOR_LEVEL_MAX
RPMH_REGULATOR_LEVEL_NOM 0>;
@@ -75,13 +71,14 @@
<&clock_gcc GCC_PCIE_2_SLV_Q2A_AXI_CLK>,
<&clock_gcc GCC_AGGRE_NOC_PCIE_TBU_CLK>,
<&clock_gcc GCC_PCIE2_PHY_REFGEN_CLK>,
- <&clock_gcc GCC_PCIE_PHY_AUX_CLK>;
+ <&clock_gcc GCC_PCIE_PHY_AUX_CLK>,
+ <&clock_gcc GCC_DDRSS_PCIE_SF_TBU_CLK>;
clock-names = "pcie_2_pipe_clk", "pcie_2_ref_clk_src",
"pcie_2_aux_clk", "pcie_2_cfg_ahb_clk",
"pcie_2_mstr_axi_clk", "pcie_2_slv_axi_clk",
"pcie_2_ldo", "pcie_2_slv_q2a_axi_clk",
"pcie_tbu_clk", "pcie_phy_refgen_clk",
- "pcie_phy_aux_clk";
+ "pcie_phy_aux_clk", "pcie_ddrss_sf_tbu_clk";
max-clock-frequency-hz = <0>, <0>, <19200000>, <0>, <0>, <0>,
<0>, <0>, <0>, <0>, <100000000>, <0>;
@@ -97,9 +94,153 @@
qcom,boot-option = <0x1>;
qcom,use-19p2mhz-aux-clk;
qcom,no-l0s-supported;
+ qcom,no-l1-supported;
+ qcom,no-l1ss-supported;
+ qcom,no-aux-clk-sync;
qcom,slv-addr-space-size = <0x4000000>;
qcom,ep-latency = <10>;
+ qcom,pcie-phy-ver = <0x1000>;
+ qcom,phy-status-offset = <0xa14>;
+ qcom,phy-status-bit = <6>;
+ qcom,phy-power-down-offset = <0xa40>;
+ qcom,phy-sequence = <0x0a40 0x03 0x0
+ 0x0010 0x00 0x0
+ 0x001c 0x31 0x0
+ 0x0020 0x01 0x0
+ 0x0024 0xde 0x0
+ 0x0028 0x07 0x0
+ 0x0030 0x4c 0x0
+ 0x0034 0x06 0x0
+ 0x0048 0x90 0x0
+ 0x0058 0x0f 0x0
+ 0x0074 0x06 0x0
+ 0x0078 0x06 0x0
+ 0x007c 0x16 0x0
+ 0x0080 0x16 0x0
+ 0x0084 0x36 0x0
+ 0x0088 0x36 0x0
+ 0x0094 0x08 0x0
+ 0x00a4 0x42 0x0
+ 0x00ac 0x0a 0x0
+ 0x00b0 0x1a 0x0
+ 0x00b4 0x14 0x0
+ 0x00b8 0x34 0x0
+ 0x00bc 0x82 0x0
+ 0x00c4 0x68 0x0
+ 0x00cc 0x55 0x0
+ 0x00d0 0x55 0x0
+ 0x00d4 0x03 0x0
+ 0x00d8 0xab 0x0
+ 0x00dc 0xaa 0x0
+ 0x00e0 0x02 0x0
+ 0x010c 0x02 0x0
+ 0x0110 0x24 0x0
+ 0x0118 0xb4 0x0
+ 0x011c 0x03 0x0
+ 0x0154 0x34 0x0
+ 0x0158 0x01 0x0
+ 0x016c 0x08 0x0
+ 0x01ac 0xb9 0x0
+ 0x01b0 0x1e 0x0
+ 0x01b4 0x94 0x0
+ 0x01b8 0x18 0x0
+ 0x01bc 0x11 0x0
+ 0x0284 0x35 0x0
+ 0x029c 0x12 0x0
+ 0x023c 0x11 0x0
+ 0x0304 0x02 0x0
+ 0x0408 0x0c 0x0
+ 0x0414 0x03 0x0
+ 0x0434 0x7f 0x0
+ 0x0444 0x70 0x0
+ 0x0460 0x30 0x0
+ 0x0464 0x00 0x0
+ 0x04d4 0x54 0x0
+ 0x04d8 0x07 0x0
+ 0x04dc 0x0d 0x0
+ 0x04e8 0x00 0x0
+ 0x04ec 0x0e 0x0
+ 0x04f0 0x4a 0x0
+ 0x04f4 0x0f 0x0
+ 0x04f8 0xc0 0x0
+ 0x04fc 0x00 0x0
+ 0x0510 0x17 0x0
+ 0x0518 0x1c 0x0
+ 0x051c 0x03 0x0
+ 0x0524 0x1e 0x0
+ 0x0570 0xff 0x0
+ 0x0574 0xff 0x0
+ 0x0578 0xff 0x0
+ 0x057c 0x7f 0x0
+ 0x0580 0x66 0x0
+ 0x0584 0x24 0x0
+ 0x0588 0xe4 0x0
+ 0x058c 0xec 0x0
+ 0x0590 0x3b 0x0
+ 0x0594 0x36 0x0
+ 0x0598 0xd4 0x0
+ 0x059c 0x54 0x0
+ 0x05a0 0xdb 0x0
+ 0x05a4 0x3b 0x0
+ 0x05a8 0x31 0x0
+ 0x05bc 0x0c 0x0
+ 0x0684 0x35 0x0
+ 0x069c 0x12 0x0
+ 0x063c 0x11 0x0
+ 0x0704 0x20 0x0
+ 0x0808 0x0c 0x0
+ 0x0814 0x03 0x0
+ 0x0834 0x7f 0x0
+ 0x0844 0x70 0x0
+ 0x0860 0x30 0x0
+ 0x0864 0x00 0x0
+ 0x08d4 0x54 0x0
+ 0x08d8 0x07 0x0
+ 0x08dc 0x0d 0x0
+ 0x08e8 0x00 0x0
+ 0x08ec 0x0e 0x0
+ 0x08f0 0x4a 0x0
+ 0x08f4 0x0f 0x0
+ 0x08f8 0xc0 0x0
+ 0x08fc 0x00 0x0
+ 0x0910 0x17 0x0
+ 0x0918 0x1c 0x0
+ 0x091c 0x03 0x0
+ 0x0924 0x1e 0x0
+ 0x0970 0xff 0x0
+ 0x0974 0xff 0x0
+ 0x0978 0xff 0x0
+ 0x097c 0x7f 0x0
+ 0x0980 0x66 0x0
+ 0x0984 0x24 0x0
+ 0x0988 0xe4 0x0
+ 0x098c 0xec 0x0
+ 0x0990 0x3b 0x0
+ 0x0994 0x36 0x0
+ 0x0998 0xd4 0x0
+ 0x099c 0x54 0x0
+ 0x09a0 0xdb 0x0
+ 0x09a4 0x3b 0x0
+ 0x09a8 0x31 0x0
+ 0x09bc 0x0c 0x0
+ 0x0adc 0x05 0x0
+ 0x0b88 0x88 0x0
+ 0x0b98 0x0b 0x0
+ 0x0ba4 0x01 0x0
+ 0x0bec 0x01 0x0
+ 0x0e0c 0x0d 0x0
+ 0x0e14 0x07 0x0
+ 0x0e1c 0xc1 0x0
+ 0x0e40 0x01 0x0
+ 0x0e48 0x01 0x0
+ 0x0e90 0x00 0x0
+ 0x0eb4 0x33 0x0
+ 0x0ebc 0x00 0x0
+ 0x0ee0 0x58 0x0
+ 0x0a00 0x00 0x0
+ 0x0a44 0x03 0x0>;
+
pcie2_rp: pcie2_rp {
reg = <0 0 0 0 0>;
};
diff --git a/arch/arm64/boot/dts/qcom/kona-pinctrl.dtsi b/arch/arm64/boot/dts/qcom/kona-pinctrl.dtsi
index 2146971..d6944ae 100644
--- a/arch/arm64/boot/dts/qcom/kona-pinctrl.dtsi
+++ b/arch/arm64/boot/dts/qcom/kona-pinctrl.dtsi
@@ -528,7 +528,7 @@
pcie2_clkreq_default: pcie2_clkreq_default {
mux {
pins = "gpio86";
- function = "pci_e1";
+ function = "pci_e2";
};
config {
diff --git a/drivers/pci/controller/pci-msm.c b/drivers/pci/controller/pci-msm.c
index fd8cc78..d25a75e 100644
--- a/drivers/pci/controller/pci-msm.c
+++ b/drivers/pci/controller/pci-msm.c
@@ -153,7 +153,7 @@
#define MAX_PROP_SIZE (32)
#define MAX_RC_NAME_LEN (15)
#define MSM_PCIE_MAX_VREG (4)
-#define MSM_PCIE_MAX_CLK (13)
+#define MSM_PCIE_MAX_CLK (14)
#define MSM_PCIE_MAX_PIPE_CLK (1)
#define MAX_RC_NUM (3)
#define MAX_DEVICE_NUM (20)
@@ -757,6 +757,7 @@ static struct msm_pcie_clk_info_t
{NULL, "pcie_0_sleep_clk", 0, false, false},
{NULL, "pcie_phy_refgen_clk", 0, false, false},
{NULL, "pcie_tbu_clk", 0, false, false},
+ {NULL, "pcie_ddrss_sf_tbu_clk", 0, false, false},
{NULL, "pcie_phy_cfg_ahb_clk", 0, false, false},
{NULL, "pcie_phy_aux_clk", 0, false, false}
},
@@ -772,6 +773,7 @@ static struct msm_pcie_clk_info_t
{NULL, "pcie_1_sleep_clk", 0, false, false},
{NULL, "pcie_phy_refgen_clk", 0, false, false},
{NULL, "pcie_tbu_clk", 0, false, false},
+ {NULL, "pcie_ddrss_sf_tbu_clk", 0, false, false},
{NULL, "pcie_phy_cfg_ahb_clk", 0, false, false},
{NULL, "pcie_phy_aux_clk", 0, false, false}
},
@@ -787,6 +789,7 @@ static struct msm_pcie_clk_info_t
{NULL, "pcie_2_sleep_clk", 0, false, false},
{NULL, "pcie_phy_refgen_clk", 0, false, false},
{NULL, "pcie_tbu_clk", 0, false, false},
+ {NULL, "pcie_ddrss_sf_tbu_clk", 0, false, false},
{NULL, "pcie_phy_cfg_ahb_clk", 0, false, false},
{NULL, "pcie_phy_aux_clk", 0, false, false}
}