summaryrefslogtreecommitdiff
path: root/drivers/pci
diff options
context:
space:
mode:
authorTiberiu Breana <andrei-tiberiu.breana@nxp.com>2017-07-06 18:28:11 +0300
committerLeonard Crestez <leonard.crestez@nxp.com>2018-08-24 12:41:33 +0300
commit6c9caf11c5b5c85d916f6840c85a5fb287d665ee (patch)
tree510df777bd8f11496a3e7ab60bbb14726ad77686 /drivers/pci
parent88cd87ccc3063b36ce5bd1ea95521ce77f253574 (diff)
MLK-15141-1: PCI: imx: Add epdev_on regulator for 8QM WiFi
Add the epdev_on regulator to power up the WiFi module on the iMX8QM board. This regulator needs to be powered up before the pcie link, in order for the WiFi module to work. Signed-off-by: Fugang Duan <fugang.duan@nxp.com> Signed-off-by: Tiberiu Breana <andrei-tiberiu.breana@nxp.com>
Diffstat (limited to 'drivers/pci')
-rw-r--r--drivers/pci/host/pci-imx6.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/pci/host/pci-imx6.c b/drivers/pci/host/pci-imx6.c
index aac090906e60..936ec78a7e59 100644
--- a/drivers/pci/host/pci-imx6.c
+++ b/drivers/pci/host/pci-imx6.c
@@ -88,6 +88,7 @@ struct imx6_pcie {
void __iomem *phy_base;
struct regulator *pcie_phy_regulator;
struct regulator *pcie_bus_regulator;
+ struct regulator *epdev_on;
};
/* PCIe Root Complex registers (memory-mapped) */
@@ -1886,6 +1887,16 @@ static int imx6_pcie_probe(struct platform_device *pdev)
"pcie clock source missing or invalid\n");
return PTR_ERR(imx6_pcie->pcie_inbound_axi);
}
+
+ imx6_pcie->epdev_on = devm_regulator_get(&pdev->dev,
+ "epdev_on");
+ if (IS_ERR(imx6_pcie->epdev_on))
+ return -EPROBE_DEFER;
+
+ ret = regulator_enable(imx6_pcie->epdev_on);
+ if (ret)
+ dev_err(imx6_pcie->pp.dev,
+ "failed to enable the epdev_on regulator\n");
} else {
imx6_pcie->iomuxc_gpr =
syscon_regmap_lookup_by_compatible("fsl,imx6q-iomuxc-gpr");