瀏覽代碼

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>
Maxime Ripard 11 年之前
父節點
當前提交
65f2ce96a9
共有 3 個文件被更改,包括 8 次插入0 次删除
  1. 2 0
      arch/arm/mach-at91/generic.h
  2. 5 0
      arch/arm/mach-at91/setup.c
  3. 1 0
      arch/arm/mach-at91/soc.h

+ 2 - 0
arch/arm/mach-at91/generic.h

@@ -37,6 +37,8 @@ extern int  __init at91_aic5_of_init(struct device_node *node,
 extern void __init at91_sysirq_mask_rtc(u32 rtc_base);
 extern void __init at91_sysirq_mask_rtt(u32 rtt_base);
 
+ /* Devices */
+extern void __init at91_register_devices(void);
 
  /* Timer */
 extern void at91rm9200_ioremap_st(u32 addr);

+ 5 - 0
arch/arm/mach-at91/setup.c

@@ -510,3 +510,8 @@ void __init at91_initialize(unsigned long main_clock)
 
 	pinctrl_provide_dummies();
 }
+
+void __init at91_register_devices(void)
+{
+	at91_boot_soc.register_devices();
+}

+ 1 - 0
arch/arm/mach-at91/soc.h

@@ -11,6 +11,7 @@ struct at91_init_soc {
 	void (*map_io)(void);
 	void (*ioremap_registers)(void);
 	void (*register_clocks)(void);
+	void (*register_devices)(void);
 	void (*init)(void);
 };