|
@@ -854,6 +854,19 @@ static void rockchip_pcie_legacy_int_handler(struct irq_desc *desc)
|
|
|
chained_irq_exit(chip, desc);
|
|
|
}
|
|
|
|
|
|
+static int rockchip_pcie_get_phys(struct rockchip_pcie *rockchip)
|
|
|
+{
|
|
|
+ struct device *dev = rockchip->dev;
|
|
|
+
|
|
|
+ rockchip->phy = devm_phy_get(dev, "pcie-phy");
|
|
|
+ if (IS_ERR(rockchip->phy)) {
|
|
|
+ if (PTR_ERR(rockchip->phy) != -EPROBE_DEFER)
|
|
|
+ dev_err(dev, "missing phy\n");
|
|
|
+ return PTR_ERR(rockchip->phy);
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
|
|
|
/**
|
|
|
* rockchip_pcie_parse_dt - Parse Device Tree
|
|
@@ -884,12 +897,9 @@ static int rockchip_pcie_parse_dt(struct rockchip_pcie *rockchip)
|
|
|
if (IS_ERR(rockchip->apb_base))
|
|
|
return PTR_ERR(rockchip->apb_base);
|
|
|
|
|
|
- rockchip->phy = devm_phy_get(dev, "pcie-phy");
|
|
|
- if (IS_ERR(rockchip->phy)) {
|
|
|
- if (PTR_ERR(rockchip->phy) != -EPROBE_DEFER)
|
|
|
- dev_err(dev, "missing phy\n");
|
|
|
- return PTR_ERR(rockchip->phy);
|
|
|
- }
|
|
|
+ err = rockchip_pcie_get_phys(rockchip);
|
|
|
+ if (err)
|
|
|
+ return err;
|
|
|
|
|
|
rockchip->lanes = 1;
|
|
|
err = of_property_read_u32(node, "num-lanes", &rockchip->lanes);
|