diff options
-rw-r--r-- | drivers/pci/host/pci-imx6.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/pci/host/pci-imx6.c b/drivers/pci/host/pci-imx6.c index b5988b4e56e5..233fe8a88264 100644 --- a/drivers/pci/host/pci-imx6.c +++ b/drivers/pci/host/pci-imx6.c | |||
@@ -257,11 +257,6 @@ static int imx6_pcie_deassert_core_reset(struct pcie_port *pp) | |||
257 | struct imx6_pcie *imx6_pcie = to_imx6_pcie(pp); | 257 | struct imx6_pcie *imx6_pcie = to_imx6_pcie(pp); |
258 | int ret; | 258 | int ret; |
259 | 259 | ||
260 | regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1, | ||
261 | IMX6Q_GPR1_PCIE_TEST_PD, 0 << 18); | ||
262 | regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1, | ||
263 | IMX6Q_GPR1_PCIE_REF_CLK_EN, 1 << 16); | ||
264 | |||
265 | ret = clk_prepare_enable(imx6_pcie->pcie_phy); | 260 | ret = clk_prepare_enable(imx6_pcie->pcie_phy); |
266 | if (ret) { | 261 | if (ret) { |
267 | dev_err(pp->dev, "unable to enable pcie_phy clock\n"); | 262 | dev_err(pp->dev, "unable to enable pcie_phy clock\n"); |
@@ -283,6 +278,12 @@ static int imx6_pcie_deassert_core_reset(struct pcie_port *pp) | |||
283 | /* allow the clocks to stabilize */ | 278 | /* allow the clocks to stabilize */ |
284 | usleep_range(200, 500); | 279 | usleep_range(200, 500); |
285 | 280 | ||
281 | /* power up core phy and enable ref clock */ | ||
282 | regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1, | ||
283 | IMX6Q_GPR1_PCIE_TEST_PD, 0 << 18); | ||
284 | regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1, | ||
285 | IMX6Q_GPR1_PCIE_REF_CLK_EN, 1 << 16); | ||
286 | |||
286 | /* Some boards don't have PCIe reset GPIO. */ | 287 | /* Some boards don't have PCIe reset GPIO. */ |
287 | if (gpio_is_valid(imx6_pcie->reset_gpio)) { | 288 | if (gpio_is_valid(imx6_pcie->reset_gpio)) { |
288 | gpio_set_value(imx6_pcie->reset_gpio, 0); | 289 | gpio_set_value(imx6_pcie->reset_gpio, 0); |