Skip to content

Commit 1e4d401

Browse files
rmurphy-armLorenzo Pieralisi
authored andcommitted
PCI: rockchip: Make some regulators non-optional
The 0V9 and 1V8 supplies power the PCIe block in the SoC itself, and are thus fundamental to PCIe being usable at all. As such, it makes sense to treat them as non-optional and rely on dummy regulators if not explicitly described. Signed-off-by: Robin Murphy <[email protected]> Signed-off-by: Lorenzo Pieralisi <[email protected]> Reviewed-by: Mark Brown <[email protected]> Reviewed-by: Andrew Murray <[email protected]>
1 parent 54ecb8f commit 1e4d401

File tree

1 file changed

+25
-44
lines changed

1 file changed

+25
-44
lines changed

drivers/pci/controller/pcie-rockchip-host.c

Lines changed: 25 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -620,19 +620,13 @@ static int rockchip_pcie_parse_host_dt(struct rockchip_pcie *rockchip)
620620
dev_info(dev, "no vpcie3v3 regulator found\n");
621621
}
622622

623-
rockchip->vpcie1v8 = devm_regulator_get_optional(dev, "vpcie1v8");
624-
if (IS_ERR(rockchip->vpcie1v8)) {
625-
if (PTR_ERR(rockchip->vpcie1v8) != -ENODEV)
626-
return PTR_ERR(rockchip->vpcie1v8);
627-
dev_info(dev, "no vpcie1v8 regulator found\n");
628-
}
623+
rockchip->vpcie1v8 = devm_regulator_get(dev, "vpcie1v8");
624+
if (IS_ERR(rockchip->vpcie1v8))
625+
return PTR_ERR(rockchip->vpcie1v8);
629626

630-
rockchip->vpcie0v9 = devm_regulator_get_optional(dev, "vpcie0v9");
631-
if (IS_ERR(rockchip->vpcie0v9)) {
632-
if (PTR_ERR(rockchip->vpcie0v9) != -ENODEV)
633-
return PTR_ERR(rockchip->vpcie0v9);
634-
dev_info(dev, "no vpcie0v9 regulator found\n");
635-
}
627+
rockchip->vpcie0v9 = devm_regulator_get(dev, "vpcie0v9");
628+
if (IS_ERR(rockchip->vpcie0v9))
629+
return PTR_ERR(rockchip->vpcie0v9);
636630

637631
return 0;
638632
}
@@ -658,27 +652,22 @@ static int rockchip_pcie_set_vpcie(struct rockchip_pcie *rockchip)
658652
}
659653
}
660654

661-
if (!IS_ERR(rockchip->vpcie1v8)) {
662-
err = regulator_enable(rockchip->vpcie1v8);
663-
if (err) {
664-
dev_err(dev, "fail to enable vpcie1v8 regulator\n");
665-
goto err_disable_3v3;
666-
}
655+
err = regulator_enable(rockchip->vpcie1v8);
656+
if (err) {
657+
dev_err(dev, "fail to enable vpcie1v8 regulator\n");
658+
goto err_disable_3v3;
667659
}
668660

669-
if (!IS_ERR(rockchip->vpcie0v9)) {
670-
err = regulator_enable(rockchip->vpcie0v9);
671-
if (err) {
672-
dev_err(dev, "fail to enable vpcie0v9 regulator\n");
673-
goto err_disable_1v8;
674-
}
661+
err = regulator_enable(rockchip->vpcie0v9);
662+
if (err) {
663+
dev_err(dev, "fail to enable vpcie0v9 regulator\n");
664+
goto err_disable_1v8;
675665
}
676666

677667
return 0;
678668

679669
err_disable_1v8:
680-
if (!IS_ERR(rockchip->vpcie1v8))
681-
regulator_disable(rockchip->vpcie1v8);
670+
regulator_disable(rockchip->vpcie1v8);
682671
err_disable_3v3:
683672
if (!IS_ERR(rockchip->vpcie3v3))
684673
regulator_disable(rockchip->vpcie3v3);
@@ -897,8 +886,7 @@ static int __maybe_unused rockchip_pcie_suspend_noirq(struct device *dev)
897886

898887
rockchip_pcie_disable_clocks(rockchip);
899888

900-
if (!IS_ERR(rockchip->vpcie0v9))
901-
regulator_disable(rockchip->vpcie0v9);
889+
regulator_disable(rockchip->vpcie0v9);
902890

903891
return ret;
904892
}
@@ -908,12 +896,10 @@ static int __maybe_unused rockchip_pcie_resume_noirq(struct device *dev)
908896
struct rockchip_pcie *rockchip = dev_get_drvdata(dev);
909897
int err;
910898

911-
if (!IS_ERR(rockchip->vpcie0v9)) {
912-
err = regulator_enable(rockchip->vpcie0v9);
913-
if (err) {
914-
dev_err(dev, "fail to enable vpcie0v9 regulator\n");
915-
return err;
916-
}
899+
err = regulator_enable(rockchip->vpcie0v9);
900+
if (err) {
901+
dev_err(dev, "fail to enable vpcie0v9 regulator\n");
902+
return err;
917903
}
918904

919905
err = rockchip_pcie_enable_clocks(rockchip);
@@ -939,8 +925,7 @@ static int __maybe_unused rockchip_pcie_resume_noirq(struct device *dev)
939925
err_pcie_resume:
940926
rockchip_pcie_disable_clocks(rockchip);
941927
err_disable_0v9:
942-
if (!IS_ERR(rockchip->vpcie0v9))
943-
regulator_disable(rockchip->vpcie0v9);
928+
regulator_disable(rockchip->vpcie0v9);
944929
return err;
945930
}
946931

@@ -1081,10 +1066,8 @@ static int rockchip_pcie_probe(struct platform_device *pdev)
10811066
regulator_disable(rockchip->vpcie12v);
10821067
if (!IS_ERR(rockchip->vpcie3v3))
10831068
regulator_disable(rockchip->vpcie3v3);
1084-
if (!IS_ERR(rockchip->vpcie1v8))
1085-
regulator_disable(rockchip->vpcie1v8);
1086-
if (!IS_ERR(rockchip->vpcie0v9))
1087-
regulator_disable(rockchip->vpcie0v9);
1069+
regulator_disable(rockchip->vpcie1v8);
1070+
regulator_disable(rockchip->vpcie0v9);
10881071
err_set_vpcie:
10891072
rockchip_pcie_disable_clocks(rockchip);
10901073
return err;
@@ -1108,10 +1091,8 @@ static int rockchip_pcie_remove(struct platform_device *pdev)
11081091
regulator_disable(rockchip->vpcie12v);
11091092
if (!IS_ERR(rockchip->vpcie3v3))
11101093
regulator_disable(rockchip->vpcie3v3);
1111-
if (!IS_ERR(rockchip->vpcie1v8))
1112-
regulator_disable(rockchip->vpcie1v8);
1113-
if (!IS_ERR(rockchip->vpcie0v9))
1114-
regulator_disable(rockchip->vpcie0v9);
1094+
regulator_disable(rockchip->vpcie1v8);
1095+
regulator_disable(rockchip->vpcie0v9);
11151096

11161097
return 0;
11171098
}

0 commit comments

Comments
 (0)