summaryrefslogtreecommitdiff
path: root/drivers/pci/controller/dwc/pci-imx6.c
diff options
context:
space:
mode:
authorRichard Zhu <hongxing.zhu@nxp.com>2019-12-23 18:14:44 +0800
committerRichard Zhu <hongxing.zhu@nxp.com>2019-12-24 10:04:41 +0800
commit0d7a95f59337bd002866be8241f64efe85a355db (patch)
tree2a3eded03c603465db3e69685d90dba8cf950b0c /drivers/pci/controller/dwc/pci-imx6.c
parentd63e7593f337ea66399e7a157589ac6755230ab9 (diff)
LF-583 PCI: imx6q: turn off the refclk and set testpd mode when link is down
To save power consumption, turn off the REFCLK and set the test power down mode when link is down during the initialization. Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com> Acked-by: Fugang Duan <fugang.duan@nxp.com>
Diffstat (limited to 'drivers/pci/controller/dwc/pci-imx6.c')
-rw-r--r--drivers/pci/controller/dwc/pci-imx6.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c
index f43bfd6090ce..8e7ac565b31e 100644
--- a/drivers/pci/controller/dwc/pci-imx6.c
+++ b/drivers/pci/controller/dwc/pci-imx6.c
@@ -800,6 +800,14 @@ static void imx6_pcie_clk_disable(struct imx6_pcie *imx6_pcie)
clk_disable_unprepare(imx6_pcie->pcie_bus);
switch (imx6_pcie->drvdata->variant) {
+ case IMX6Q:
+ case IMX6QP:
+ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1,
+ IMX6Q_GPR1_PCIE_REF_CLK_EN, 0);
+ regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1,
+ IMX6Q_GPR1_PCIE_TEST_PD,
+ IMX6Q_GPR1_PCIE_TEST_PD);
+ break;
case IMX6SX:
clk_disable_unprepare(imx6_pcie->pcie_inbound_axi);
break;