File tree Expand file tree Collapse file tree 1 file changed +9
-1
lines changed Expand file tree Collapse file tree 1 file changed +9
-1
lines changed Original file line number Diff line number Diff line change @@ -40,7 +40,8 @@ int sprd_clk_regmap_init(struct platform_device *pdev,
40
40
const struct sprd_clk_desc * desc )
41
41
{
42
42
void __iomem * base ;
43
- struct device_node * node = pdev -> dev .of_node ;
43
+ struct device * dev = & pdev -> dev ;
44
+ struct device_node * node = dev -> of_node ;
44
45
struct regmap * regmap ;
45
46
46
47
if (of_find_property (node , "sprd,syscon" , NULL )) {
@@ -49,6 +50,13 @@ int sprd_clk_regmap_init(struct platform_device *pdev,
49
50
pr_err ("%s: failed to get syscon regmap\n" , __func__ );
50
51
return PTR_ERR (regmap );
51
52
}
53
+ } else if (of_device_is_compatible (of_get_parent (dev -> of_node ),
54
+ "syscon" )) {
55
+ regmap = device_node_to_regmap (of_get_parent (dev -> of_node ));
56
+ if (IS_ERR (regmap )) {
57
+ dev_err (dev , "failed to get regmap from its parent.\n" );
58
+ return PTR_ERR (regmap );
59
+ }
52
60
} else {
53
61
base = devm_platform_ioremap_resource (pdev , 0 );
54
62
if (IS_ERR (base ))
You can’t perform that action at this time.
0 commit comments