np_temp = of_parse_phandle(np, "subctrl-syscon", 0);
syscon = syscon_node_to_regmap(np_temp);
这两行code 可以用通过下面的这一行code简化
eth->ethsys = syscon_regmap_lookup_by_phandle(pdev->dev.of_node,
"subctrl-syscon");
从syscon_regmap_lookup_by_phandle的实现看也就是将of_parse_phandle和 syscon_node_to_regmap 组合在一起
struct regmap *syscon_regmap_lookup_by_phandle(struct device_node *np,
const char *property)
{
struct device_node *syscon_np;
struct regmap *regmap;
if (property)
syscon_np = of_parse_phandle(np, property, 0);
else
syscon_np = np;
if (!syscon_np)
return ERR_PTR(-ENODEV);
regmap = syscon_node_to_regmap(syscon_np);
of_node_put(syscon_np);
return regmap;
}