diff options
author | Tiberiu Breana <andrei-tiberiu.breana@nxp.com> | 2017-07-06 18:28:11 +0300 |
---|---|---|
committer | Leonard Crestez <leonard.crestez@nxp.com> | 2018-08-24 12:41:33 +0300 |
commit | 6c9caf11c5b5c85d916f6840c85a5fb287d665ee (patch) | |
tree | 510df777bd8f11496a3e7ab60bbb14726ad77686 | |
parent | 88cd87ccc3063b36ce5bd1ea95521ce77f253574 (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>
-rw-r--r-- | drivers/pci/host/pci-imx6.c | 11 |
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"); |