summaryrefslogtreecommitdiff
path: root/arch/arm/mach-mx6/pcie.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-mx6/pcie.c')
-rw-r--r--arch/arm/mach-mx6/pcie.c13
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);