summaryrefslogtreecommitdiff
path: root/drivers/pci/pcie_rockchip.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2020-06-01 03:07:39 +0300
committerTom Rini <trini@konsulko.com>2020-06-01 03:07:39 +0300
commit9452b7496f8b85ca3bdda1014495df1a6235a8de (patch)
tree211e31287f621183b7cebd3929983ad0c5c367b1 /drivers/pci/pcie_rockchip.c
parentd09b832cd8ccb7e37e2b188394df5a73d7074c3b (diff)
parenta343b4fe739a56ef248f01d96d80d080228b4068 (diff)
downloadu-boot-9452b7496f8b85ca3bdda1014495df1a6235a8de.tar.xz
Merge tag 'u-boot-rockchip-20200531' of https://gitlab.denx.de/u-boot/custodians/u-boot-rockchip
- Fix mmc of path after syncfrom kernel dts; - Add dwc3 host support with DM for rk3399; - Add usb2phy and typec phy for rockchip platform; - Migrate board list doc to rockchip.rst; - Add rk3399 Pinebook Pro board support; - Update dram_init in board_init and add memory node in SPL;
Diffstat (limited to 'drivers/pci/pcie_rockchip.c')
-rw-r--r--drivers/pci/pcie_rockchip.c33
1 files changed, 20 insertions, 13 deletions
diff --git a/drivers/pci/pcie_rockchip.c b/drivers/pci/pcie_rockchip.c
index 82a8396e42..0edc2464a8 100644
--- a/drivers/pci/pcie_rockchip.c
+++ b/drivers/pci/pcie_rockchip.c
@@ -322,7 +322,7 @@ static int rockchip_pcie_set_vpcie(struct udevice *dev)
struct rockchip_pcie *priv = dev_get_priv(dev);
int ret;
- if (!IS_ERR(priv->vpcie3v3)) {
+ if (priv->vpcie3v3) {
ret = regulator_set_enable(priv->vpcie3v3, true);
if (ret) {
dev_err(dev, "failed to enable vpcie3v3 (ret=%d)\n",
@@ -331,24 +331,31 @@ static int rockchip_pcie_set_vpcie(struct udevice *dev)
}
}
- ret = regulator_set_enable(priv->vpcie1v8, true);
- if (ret) {
- dev_err(dev, "failed to enable vpcie1v8 (ret=%d)\n", ret);
- goto err_disable_3v3;
+ if (priv->vpcie1v8) {
+ ret = regulator_set_enable(priv->vpcie1v8, true);
+ if (ret) {
+ dev_err(dev, "failed to enable vpcie1v8 (ret=%d)\n",
+ ret);
+ goto err_disable_3v3;
+ }
}
- ret = regulator_set_enable(priv->vpcie0v9, true);
- if (ret) {
- dev_err(dev, "failed to enable vpcie0v9 (ret=%d)\n", ret);
- goto err_disable_1v8;
+ if (priv->vpcie0v9) {
+ ret = regulator_set_enable(priv->vpcie0v9, true);
+ if (ret) {
+ dev_err(dev, "failed to enable vpcie0v9 (ret=%d)\n",
+ ret);
+ goto err_disable_1v8;
+ }
}
return 0;
err_disable_1v8:
- regulator_set_enable(priv->vpcie1v8, false);
+ if (priv->vpcie1v8)
+ regulator_set_enable(priv->vpcie1v8, false);
err_disable_3v3:
- if (!IS_ERR(priv->vpcie3v3))
+ if (priv->vpcie3v3)
regulator_set_enable(priv->vpcie3v3, false);
return ret;
}
@@ -424,14 +431,14 @@ static int rockchip_pcie_parse_dt(struct udevice *dev)
ret = device_get_supply_regulator(dev, "vpcie1v8-supply",
&priv->vpcie1v8);
- if (ret) {
+ if (ret && ret != -ENOENT) {
dev_err(dev, "failed to get vpcie1v8 supply (ret=%d)\n", ret);
return ret;
}
ret = device_get_supply_regulator(dev, "vpcie0v9-supply",
&priv->vpcie0v9);
- if (ret) {
+ if (ret && ret != -ENOENT) {
dev_err(dev, "failed to get vpcie0v9 supply (ret=%d)\n", ret);
return ret;
}