aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPramod Gurav <pramod.gurav@smartplayin.com>2014-12-01 15:13:59 +0530
committerSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2015-11-17 09:21:18 +0000
commit245f655a743e877db7378c67593531820ab82e3b (patch)
tree073852dbff9860af89bc5de0588a69a2754357ec
parent7e19e55f027ca3e7ee79a49496832723a1a39f0b (diff)
pci: qcom: Add ext_3p3v regulator support
This regulator is needed by ethernet hence enable in the pcie driver so that ethernet is functional. Signed-off-by: Pramod Gurav <pramod.gurav@smartplayin.com>
-rw-r--r--drivers/pci/host/pci-qcom.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/pci/host/pci-qcom.c b/drivers/pci/host/pci-qcom.c
index 22ca8b776868..fc851b73a372 100644
--- a/drivers/pci/host/pci-qcom.c
+++ b/drivers/pci/host/pci-qcom.c
@@ -151,6 +151,7 @@ struct qcom_pcie {
struct regulator *vdd_supply;
struct regulator *avdd_supply;
struct regulator *pcie_clk_supply;
+ struct regulator *pcie_ext3p3v_supply;
struct qcom_msi msi;
};
@@ -651,6 +652,12 @@ static int qcom_pcie_vreg_on(struct qcom_pcie *qcom_pcie)
return err;
}
+ err = regulator_enable(qcom_pcie->pcie_ext3p3v_supply);
+ if (err < 0) {
+ dev_err(qcom_pcie->dev, "failed to enable pcie_ext3p3v regulator\n");
+ return err;
+ }
+
return err;
}
@@ -726,6 +733,12 @@ static int qcom_pcie_parse_dt(struct qcom_pcie *qcom_pcie,
return PTR_ERR(qcom_pcie->avdd_supply);
}
+ qcom_pcie->pcie_ext3p3v_supply = devm_regulator_get(&pdev->dev,
+ "ext-3p3v");
+ if (IS_ERR(qcom_pcie->pcie_ext3p3v_supply)) {
+ dev_err(&pdev->dev, "Failed to get pcie_ext3p3v supply\n");
+ return PTR_ERR(qcom_pcie->pcie_ext3p3v_supply);
+ }
qcom_pcie->reset_gpio = of_get_named_gpio(np, "reset-gpio", 0);
if (!gpio_is_valid(qcom_pcie->reset_gpio)) {