aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/mfd/vexpress-sysreg.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/mfd/vexpress-sysreg.c b/drivers/mfd/vexpress-sysreg.c
index 51c3ca263bf5..a4a43230abcd 100644
--- a/drivers/mfd/vexpress-sysreg.c
+++ b/drivers/mfd/vexpress-sysreg.c
@@ -338,14 +338,15 @@ void __init vexpress_sysreg_early_init(void __iomem *base)
338 338
339void __init vexpress_sysreg_of_early_init(void) 339void __init vexpress_sysreg_of_early_init(void)
340{ 340{
341 struct device_node *node = of_find_compatible_node(NULL, NULL, 341 struct device_node *node;
342 "arm,vexpress-sysreg");
343 342
343 if (vexpress_sysreg_base)
344 return;
345
346 node = of_find_compatible_node(NULL, NULL, "arm,vexpress-sysreg");
344 if (node) { 347 if (node) {
345 vexpress_sysreg_base = of_iomap(node, 0); 348 vexpress_sysreg_base = of_iomap(node, 0);
346 vexpress_sysreg_setup(node); 349 vexpress_sysreg_setup(node);
347 } else {
348 pr_info("vexpress-sysreg: No Device Tree node found.");
349 } 350 }
350} 351}
351 352
@@ -515,6 +516,7 @@ static struct platform_driver vexpress_sysreg_driver = {
515 516
516static int __init vexpress_sysreg_init(void) 517static int __init vexpress_sysreg_init(void)
517{ 518{
519 vexpress_sysreg_of_early_init();
518 return platform_driver_register(&vexpress_sysreg_driver); 520 return platform_driver_register(&vexpress_sysreg_driver);
519} 521}
520core_initcall(vexpress_sysreg_init); 522core_initcall(vexpress_sysreg_init);