diff options
Diffstat (limited to 'arch/arm/mach-mx6/pcie.c')
-rw-r--r-- | arch/arm/mach-mx6/pcie.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/arch/arm/mach-mx6/pcie.c b/arch/arm/mach-mx6/pcie.c index c4e8f7d922c9..e6b77ae9e750 100644 --- a/arch/arm/mach-mx6/pcie.c +++ b/arch/arm/mach-mx6/pcie.c @@ -746,7 +746,8 @@ static void __init add_pcie_port(void __iomem *base, void __iomem *dbi_base, spin_lock_init(&pp->conf_lock); memset(pp->res, 0, sizeof(pp->res)); } else { - pr_info("IMX PCIe port: link down!\n"); + pr_info("IMX PCIe port: link down with power supply %d!\n", + pdata->pcie_power_always_on); /* Release the clocks, and disable the power */ pcie_clk = clk_get(NULL, "pcie_clk"); @@ -759,11 +760,13 @@ static void __init add_pcie_port(void __iomem *base, void __iomem *dbi_base, imx_pcie_clrset(IOMUXC_GPR1_PCIE_REF_CLK_EN, 0 << 16, IOMUXC_GPR1); - /* Disable PCIE power */ - gpio_request(pdata->pcie_pwr_en, "PCIE POWER_EN"); + if (!pdata->pcie_power_always_on) { + /* Disable PCIE power */ + gpio_request(pdata->pcie_pwr_en, "PCIE POWER_EN"); - /* activate PCIE_PWR_EN */ - gpio_direction_output(pdata->pcie_pwr_en, 0); + /* activate PCIE_PWR_EN */ + gpio_direction_output(pdata->pcie_pwr_en, 0); + } imx_pcie_clrset(IOMUXC_GPR1_TEST_POWERDOWN, 1 << 18, IOMUXC_GPR1); |