aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMaxime Ripard <maxime.ripard@free-electrons.com>2014-07-02 11:49:28 -0400
committerNicolas Ferre <nicolas.ferre@atmel.com>2014-08-25 10:04:26 -0400
commit65f2ce96a94d2a61fca486a48d9da30845b16d20 (patch)
tree34c871ffa582c8c4182c814a9ced555f34112e12 /arch
parent4b0a683cf16eac06385c96c2fcf21766818f757c (diff)
ARM: at91/soc: Introduce register_devices callback
Some core devices should be registered by the SoC itself rather than by every board using this SoC. Introduce a register_devices callback that should be called during the init_machine in order to do that. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-at91/generic.h2
-rw-r--r--arch/arm/mach-at91/setup.c5
-rw-r--r--arch/arm/mach-at91/soc.h1
3 files changed, 8 insertions, 0 deletions
diff --git a/arch/arm/mach-at91/generic.h b/arch/arm/mach-at91/generic.h
index 631fa3b8c16d..4c2c96195a50 100644
--- a/arch/arm/mach-at91/generic.h
+++ b/arch/arm/mach-at91/generic.h
@@ -37,6 +37,8 @@ extern int __init at91_aic5_of_init(struct device_node *node,
37extern void __init at91_sysirq_mask_rtc(u32 rtc_base); 37extern void __init at91_sysirq_mask_rtc(u32 rtc_base);
38extern void __init at91_sysirq_mask_rtt(u32 rtt_base); 38extern void __init at91_sysirq_mask_rtt(u32 rtt_base);
39 39
40 /* Devices */
41extern void __init at91_register_devices(void);
40 42
41 /* Timer */ 43 /* Timer */
42extern void at91rm9200_ioremap_st(u32 addr); 44extern void at91rm9200_ioremap_st(u32 addr);
diff --git a/arch/arm/mach-at91/setup.c b/arch/arm/mach-at91/setup.c
index 640c21e43a42..25196d5096be 100644
--- a/arch/arm/mach-at91/setup.c
+++ b/arch/arm/mach-at91/setup.c
@@ -510,3 +510,8 @@ void __init at91_initialize(unsigned long main_clock)
510 510
511 pinctrl_provide_dummies(); 511 pinctrl_provide_dummies();
512} 512}
513
514void __init at91_register_devices(void)
515{
516 at91_boot_soc.register_devices();
517}
diff --git a/arch/arm/mach-at91/soc.h b/arch/arm/mach-at91/soc.h
index a1e1482c6da8..ab983f2cc7dd 100644
--- a/arch/arm/mach-at91/soc.h
+++ b/arch/arm/mach-at91/soc.h
@@ -11,6 +11,7 @@ struct at91_init_soc {
11 void (*map_io)(void); 11 void (*map_io)(void);
12 void (*ioremap_registers)(void); 12 void (*ioremap_registers)(void);
13 void (*register_clocks)(void); 13 void (*register_clocks)(void);
14 void (*register_devices)(void);
14 void (*init)(void); 15 void (*init)(void);
15}; 16};
16 17