|
@@ -397,8 +397,13 @@ static int rockchip_usb_phy_probe(struct platform_device *pdev)
|
|
|
phy_base->pdata = match->data;
|
|
|
|
|
|
phy_base->dev = dev;
|
|
|
- phy_base->reg_base = syscon_regmap_lookup_by_phandle(dev->of_node,
|
|
|
- "rockchip,grf");
|
|
|
+ phy_base->reg_base = ERR_PTR(-ENODEV);
|
|
|
+ if (dev->parent && dev->parent->of_node)
|
|
|
+ phy_base->reg_base = syscon_node_to_regmap(
|
|
|
+ dev->parent->of_node);
|
|
|
+ if (IS_ERR(phy_base->reg_base))
|
|
|
+ phy_base->reg_base = syscon_regmap_lookup_by_phandle(
|
|
|
+ dev->of_node, "rockchip,grf");
|
|
|
if (IS_ERR(phy_base->reg_base)) {
|
|
|
dev_err(&pdev->dev, "Missing rockchip,grf property\n");
|
|
|
return PTR_ERR(phy_base->reg_base);
|
|
@@ -463,7 +468,11 @@ static int __init rockchip_init_usb_uart(void)
|
|
|
return -ENOTSUPP;
|
|
|
}
|
|
|
|
|
|
- grf = syscon_regmap_lookup_by_phandle(np, "rockchip,grf");
|
|
|
+ grf = ERR_PTR(-ENODEV);
|
|
|
+ if (np->parent)
|
|
|
+ grf = syscon_node_to_regmap(np->parent);
|
|
|
+ if (IS_ERR(grf))
|
|
|
+ grf = syscon_regmap_lookup_by_phandle(np, "rockchip,grf");
|
|
|
if (IS_ERR(grf)) {
|
|
|
pr_err("%s: Missing rockchip,grf property, %lu\n",
|
|
|
__func__, PTR_ERR(grf));
|