Commit f465d145 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'cleanup-initcall' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull sweeping late_initcall cleanup for arm-soc from Olof Johansson:
 "This is a patch series from Shawn Guo that moves from individual
  late_initcalls() to using a member in the machine structure to invoke
  a platform's late initcalls.

  This cleanup is a step in the move towards multiplatform kernels since
  it would reduce the need to check for compatible platforms in each and
  every initcall."

Fix up trivial conflicts in arch/arm/mach-{exynos/mach-universal_c210.c,
imx/mach-cpuimx51.c, omap2/board-generic.c} due to changes nearby (and,
in the case of cpuimx51.c the board support being deleted)

* tag 'cleanup-initcall' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
  ARM: ux500: use machine specific hook for late init
  ARM: tegra: use machine specific hook for late init
  ARM: shmobile: use machine specific hook for late init
  ARM: sa1100: use machine specific hook for late init
  ARM: s3c64xx: use machine specific hook for late init
  ARM: prima2: use machine specific hook for late init
  ARM: pnx4008: use machine specific hook for late init
  ARM: omap2: use machine specific hook for late init
  ARM: omap1: use machine specific hook for late init
  ARM: msm: use machine specific hook for late init
  ARM: imx: use machine specific hook for late init
  ARM: exynos: use machine specific hook for late init
  ARM: ep93xx: use machine specific hook for late init
  ARM: davinci: use machine specific hook for late init
  ARM: provide a late_initcall hook for platform initialization
parents 30b84288 80b9abf9
...@@ -43,6 +43,7 @@ struct machine_desc { ...@@ -43,6 +43,7 @@ struct machine_desc {
void (*init_irq)(void); void (*init_irq)(void);
struct sys_timer *timer; /* system tick timer */ struct sys_timer *timer; /* system tick timer */
void (*init_machine)(void); void (*init_machine)(void);
void (*init_late)(void);
#ifdef CONFIG_MULTI_IRQ_HANDLER #ifdef CONFIG_MULTI_IRQ_HANDLER
void (*handle_irq)(struct pt_regs *); void (*handle_irq)(struct pt_regs *);
#endif #endif
......
...@@ -801,6 +801,14 @@ static int __init customize_machine(void) ...@@ -801,6 +801,14 @@ static int __init customize_machine(void)
} }
arch_initcall(customize_machine); arch_initcall(customize_machine);
static int __init init_machine_late(void)
{
if (machine_desc->init_late)
machine_desc->init_late();
return 0;
}
late_initcall(init_machine_late);
#ifdef CONFIG_KEXEC #ifdef CONFIG_KEXEC
static inline unsigned long long get_total_mem(void) static inline unsigned long long get_total_mem(void)
{ {
......
...@@ -681,6 +681,7 @@ MACHINE_START(DAVINCI_DA830_EVM, "DaVinci DA830/OMAP-L137/AM17x EVM") ...@@ -681,6 +681,7 @@ MACHINE_START(DAVINCI_DA830_EVM, "DaVinci DA830/OMAP-L137/AM17x EVM")
.init_irq = cp_intc_init, .init_irq = cp_intc_init,
.timer = &davinci_timer, .timer = &davinci_timer,
.init_machine = da830_evm_init, .init_machine = da830_evm_init,
.init_late = davinci_init_late,
.dma_zone_size = SZ_128M, .dma_zone_size = SZ_128M,
.restart = da8xx_restart, .restart = da8xx_restart,
MACHINE_END MACHINE_END
...@@ -1411,6 +1411,7 @@ MACHINE_START(DAVINCI_DA850_EVM, "DaVinci DA850/OMAP-L138/AM18x EVM") ...@@ -1411,6 +1411,7 @@ MACHINE_START(DAVINCI_DA850_EVM, "DaVinci DA850/OMAP-L138/AM18x EVM")
.init_irq = cp_intc_init, .init_irq = cp_intc_init,
.timer = &davinci_timer, .timer = &davinci_timer,
.init_machine = da850_evm_init, .init_machine = da850_evm_init,
.init_late = davinci_init_late,
.dma_zone_size = SZ_128M, .dma_zone_size = SZ_128M,
.restart = da8xx_restart, .restart = da8xx_restart,
MACHINE_END MACHINE_END
...@@ -357,6 +357,7 @@ MACHINE_START(DAVINCI_DM355_EVM, "DaVinci DM355 EVM") ...@@ -357,6 +357,7 @@ MACHINE_START(DAVINCI_DM355_EVM, "DaVinci DM355 EVM")
.init_irq = davinci_irq_init, .init_irq = davinci_irq_init,
.timer = &davinci_timer, .timer = &davinci_timer,
.init_machine = dm355_evm_init, .init_machine = dm355_evm_init,
.init_late = davinci_init_late,
.dma_zone_size = SZ_128M, .dma_zone_size = SZ_128M,
.restart = davinci_restart, .restart = davinci_restart,
MACHINE_END MACHINE_END
...@@ -276,6 +276,7 @@ MACHINE_START(DM355_LEOPARD, "DaVinci DM355 leopard") ...@@ -276,6 +276,7 @@ MACHINE_START(DM355_LEOPARD, "DaVinci DM355 leopard")
.init_irq = davinci_irq_init, .init_irq = davinci_irq_init,
.timer = &davinci_timer, .timer = &davinci_timer,
.init_machine = dm355_leopard_init, .init_machine = dm355_leopard_init,
.init_late = davinci_init_late,
.dma_zone_size = SZ_128M, .dma_zone_size = SZ_128M,
.restart = davinci_restart, .restart = davinci_restart,
MACHINE_END MACHINE_END
...@@ -618,6 +618,7 @@ MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM365 EVM") ...@@ -618,6 +618,7 @@ MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM365 EVM")
.init_irq = davinci_irq_init, .init_irq = davinci_irq_init,
.timer = &davinci_timer, .timer = &davinci_timer,
.init_machine = dm365_evm_init, .init_machine = dm365_evm_init,
.init_late = davinci_init_late,
.dma_zone_size = SZ_128M, .dma_zone_size = SZ_128M,
.restart = davinci_restart, .restart = davinci_restart,
MACHINE_END MACHINE_END
......
...@@ -825,6 +825,7 @@ MACHINE_START(DAVINCI_EVM, "DaVinci DM644x EVM") ...@@ -825,6 +825,7 @@ MACHINE_START(DAVINCI_EVM, "DaVinci DM644x EVM")
.init_irq = davinci_irq_init, .init_irq = davinci_irq_init,
.timer = &davinci_timer, .timer = &davinci_timer,
.init_machine = davinci_evm_init, .init_machine = davinci_evm_init,
.init_late = davinci_init_late,
.dma_zone_size = SZ_128M, .dma_zone_size = SZ_128M,
.restart = davinci_restart, .restart = davinci_restart,
MACHINE_END MACHINE_END
...@@ -788,6 +788,7 @@ MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM") ...@@ -788,6 +788,7 @@ MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM")
.init_irq = davinci_irq_init, .init_irq = davinci_irq_init,
.timer = &davinci_timer, .timer = &davinci_timer,
.init_machine = evm_init, .init_machine = evm_init,
.init_late = davinci_init_late,
.dma_zone_size = SZ_128M, .dma_zone_size = SZ_128M,
.restart = davinci_restart, .restart = davinci_restart,
MACHINE_END MACHINE_END
...@@ -798,6 +799,7 @@ MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM") ...@@ -798,6 +799,7 @@ MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM")
.init_irq = davinci_irq_init, .init_irq = davinci_irq_init,
.timer = &davinci_timer, .timer = &davinci_timer,
.init_machine = evm_init, .init_machine = evm_init,
.init_late = davinci_init_late,
.dma_zone_size = SZ_128M, .dma_zone_size = SZ_128M,
.restart = davinci_restart, .restart = davinci_restart,
MACHINE_END MACHINE_END
......
...@@ -572,6 +572,7 @@ MACHINE_START(MITYOMAPL138, "MityDSP-L138/MityARM-1808") ...@@ -572,6 +572,7 @@ MACHINE_START(MITYOMAPL138, "MityDSP-L138/MityARM-1808")
.init_irq = cp_intc_init, .init_irq = cp_intc_init,
.timer = &davinci_timer, .timer = &davinci_timer,
.init_machine = mityomapl138_init, .init_machine = mityomapl138_init,
.init_late = davinci_init_late,
.dma_zone_size = SZ_128M, .dma_zone_size = SZ_128M,
.restart = da8xx_restart, .restart = da8xx_restart,
MACHINE_END MACHINE_END
...@@ -278,6 +278,7 @@ MACHINE_START(NEUROS_OSD2, "Neuros OSD2") ...@@ -278,6 +278,7 @@ MACHINE_START(NEUROS_OSD2, "Neuros OSD2")
.init_irq = davinci_irq_init, .init_irq = davinci_irq_init,
.timer = &davinci_timer, .timer = &davinci_timer,
.init_machine = davinci_ntosd2_init, .init_machine = davinci_ntosd2_init,
.init_late = davinci_init_late,
.dma_zone_size = SZ_128M, .dma_zone_size = SZ_128M,
.restart = davinci_restart, .restart = davinci_restart,
MACHINE_END MACHINE_END
...@@ -343,6 +343,7 @@ MACHINE_START(OMAPL138_HAWKBOARD, "AM18x/OMAP-L138 Hawkboard") ...@@ -343,6 +343,7 @@ MACHINE_START(OMAPL138_HAWKBOARD, "AM18x/OMAP-L138 Hawkboard")
.init_irq = cp_intc_init, .init_irq = cp_intc_init,
.timer = &davinci_timer, .timer = &davinci_timer,
.init_machine = omapl138_hawk_init, .init_machine = omapl138_hawk_init,
.init_late = davinci_init_late,
.dma_zone_size = SZ_128M, .dma_zone_size = SZ_128M,
.restart = da8xx_restart, .restart = da8xx_restart,
MACHINE_END MACHINE_END
...@@ -157,6 +157,7 @@ MACHINE_START(SFFSDR, "Lyrtech SFFSDR") ...@@ -157,6 +157,7 @@ MACHINE_START(SFFSDR, "Lyrtech SFFSDR")
.init_irq = davinci_irq_init, .init_irq = davinci_irq_init,
.timer = &davinci_timer, .timer = &davinci_timer,
.init_machine = davinci_sffsdr_init, .init_machine = davinci_sffsdr_init,
.init_late = davinci_init_late,
.dma_zone_size = SZ_128M, .dma_zone_size = SZ_128M,
.restart = davinci_restart, .restart = davinci_restart,
MACHINE_END MACHINE_END
...@@ -282,6 +282,7 @@ MACHINE_START(TNETV107X, "TNETV107X EVM") ...@@ -282,6 +282,7 @@ MACHINE_START(TNETV107X, "TNETV107X EVM")
.init_irq = cp_intc_init, .init_irq = cp_intc_init,
.timer = &davinci_timer, .timer = &davinci_timer,
.init_machine = tnetv107x_evm_board_init, .init_machine = tnetv107x_evm_board_init,
.init_late = davinci_init_late,
.dma_zone_size = SZ_128M, .dma_zone_size = SZ_128M,
.restart = tnetv107x_restart, .restart = tnetv107x_restart,
MACHINE_END MACHINE_END
...@@ -213,7 +213,7 @@ EXPORT_SYMBOL(clk_unregister); ...@@ -213,7 +213,7 @@ EXPORT_SYMBOL(clk_unregister);
/* /*
* Disable any unused clocks left on by the bootloader * Disable any unused clocks left on by the bootloader
*/ */
static int __init clk_disable_unused(void) int __init davinci_clk_disable_unused(void)
{ {
struct clk *ck; struct clk *ck;
...@@ -237,7 +237,6 @@ static int __init clk_disable_unused(void) ...@@ -237,7 +237,6 @@ static int __init clk_disable_unused(void)
return 0; return 0;
} }
late_initcall(clk_disable_unused);
#endif #endif
static unsigned long clk_sysclk_recalc(struct clk *clk) static unsigned long clk_sysclk_recalc(struct clk *clk)
......
...@@ -117,3 +117,10 @@ void __init davinci_common_init(struct davinci_soc_info *soc_info) ...@@ -117,3 +117,10 @@ void __init davinci_common_init(struct davinci_soc_info *soc_info)
err: err:
panic("davinci_common_init: SoC Initialization failed\n"); panic("davinci_common_init: SoC Initialization failed\n");
} }
void __init davinci_init_late(void)
{
davinci_cpufreq_init();
davinci_pm_init();
davinci_clk_disable_unused();
}
...@@ -240,10 +240,9 @@ static struct platform_driver davinci_cpufreq_driver = { ...@@ -240,10 +240,9 @@ static struct platform_driver davinci_cpufreq_driver = {
.remove = __exit_p(davinci_cpufreq_remove), .remove = __exit_p(davinci_cpufreq_remove),
}; };
static int __init davinci_cpufreq_init(void) int __init davinci_cpufreq_init(void)
{ {
return platform_driver_probe(&davinci_cpufreq_driver, return platform_driver_probe(&davinci_cpufreq_driver,
davinci_cpufreq_probe); davinci_cpufreq_probe);
} }
late_initcall(davinci_cpufreq_init);
...@@ -84,6 +84,25 @@ extern struct davinci_soc_info davinci_soc_info; ...@@ -84,6 +84,25 @@ extern struct davinci_soc_info davinci_soc_info;
extern void davinci_common_init(struct davinci_soc_info *soc_info); extern void davinci_common_init(struct davinci_soc_info *soc_info);
extern void davinci_init_ide(void); extern void davinci_init_ide(void);
void davinci_restart(char mode, const char *cmd); void davinci_restart(char mode, const char *cmd);
void davinci_init_late(void);
#ifdef CONFIG_DAVINCI_RESET_CLOCKS
int davinci_clk_disable_unused(void);
#else
static inline int davinci_clk_disable_unused(void) { return 0; }
#endif
#ifdef CONFIG_CPU_FREQ
int davinci_cpufreq_init(void);
#else
static inline int davinci_cpufreq_init(void) { return 0; }
#endif
#ifdef CONFIG_SUSPEND
int davinci_pm_init(void);
#else
static inline int davinci_pm_init(void) { return 0; }
#endif
/* standard place to map on-chip SRAMs; they *may* support DMA */ /* standard place to map on-chip SRAMs; they *may* support DMA */
#define SRAM_VIRT 0xfffe0000 #define SRAM_VIRT 0xfffe0000
......
...@@ -152,8 +152,7 @@ static struct platform_driver davinci_pm_driver = { ...@@ -152,8 +152,7 @@ static struct platform_driver davinci_pm_driver = {
.remove = __exit_p(davinci_pm_remove), .remove = __exit_p(davinci_pm_remove),
}; };
static int __init davinci_pm_init(void) int __init davinci_pm_init(void)
{ {
return platform_driver_probe(&davinci_pm_driver, davinci_pm_probe); return platform_driver_probe(&davinci_pm_driver, davinci_pm_probe);
} }
late_initcall(davinci_pm_init);
...@@ -41,5 +41,6 @@ MACHINE_START(ADSSPHERE, "ADS Sphere board") ...@@ -41,5 +41,6 @@ MACHINE_START(ADSSPHERE, "ADS Sphere board")
.handle_irq = vic_handle_irq, .handle_irq = vic_handle_irq,
.timer = &ep93xx_timer, .timer = &ep93xx_timer,
.init_machine = adssphere_init_machine, .init_machine = adssphere_init_machine,
.init_late = ep93xx_init_late,
.restart = ep93xx_restart, .restart = ep93xx_restart,
MACHINE_END MACHINE_END
...@@ -834,3 +834,8 @@ void ep93xx_restart(char mode, const char *cmd) ...@@ -834,3 +834,8 @@ void ep93xx_restart(char mode, const char *cmd)
while (1) while (1)
; ;
} }
void __init ep93xx_init_late(void)
{
crunch_init();
}
...@@ -79,12 +79,10 @@ static struct notifier_block crunch_notifier_block = { ...@@ -79,12 +79,10 @@ static struct notifier_block crunch_notifier_block = {
.notifier_call = crunch_do, .notifier_call = crunch_do,
}; };
static int __init crunch_init(void) int __init crunch_init(void)
{ {
thread_register_notifier(&crunch_notifier_block); thread_register_notifier(&crunch_notifier_block);
elf_hwcap |= HWCAP_CRUNCH; elf_hwcap |= HWCAP_CRUNCH;
return 0; return 0;
} }
late_initcall(crunch_init);
...@@ -255,6 +255,7 @@ MACHINE_START(EDB9301, "Cirrus Logic EDB9301 Evaluation Board") ...@@ -255,6 +255,7 @@ MACHINE_START(EDB9301, "Cirrus Logic EDB9301 Evaluation Board")
.handle_irq = vic_handle_irq, .handle_irq = vic_handle_irq,
.timer = &ep93xx_timer, .timer = &ep93xx_timer,
.init_machine = edb93xx_init_machine, .init_machine = edb93xx_init_machine,
.init_late = ep93xx_init_late,
.restart = ep93xx_restart, .restart = ep93xx_restart,
MACHINE_END MACHINE_END
#endif #endif
...@@ -268,6 +269,7 @@ MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board") ...@@ -268,6 +269,7 @@ MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board")
.handle_irq = vic_handle_irq, .handle_irq = vic_handle_irq,
.timer = &ep93xx_timer, .timer = &ep93xx_timer,
.init_machine = edb93xx_init_machine, .init_machine = edb93xx_init_machine,
.init_late = ep93xx_init_late,
.restart = ep93xx_restart, .restart = ep93xx_restart,
MACHINE_END MACHINE_END
#endif #endif
...@@ -281,6 +283,7 @@ MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board") ...@@ -281,6 +283,7 @@ MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board")
.handle_irq = vic_handle_irq, .handle_irq = vic_handle_irq,
.timer = &ep93xx_timer, .timer = &ep93xx_timer,
.init_machine = edb93xx_init_machine, .init_machine = edb93xx_init_machine,
.init_late = ep93xx_init_late,
.restart = ep93xx_restart, .restart = ep93xx_restart,
MACHINE_END MACHINE_END
#endif #endif
...@@ -294,6 +297,7 @@ MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board") ...@@ -294,6 +297,7 @@ MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board")
.handle_irq = vic_handle_irq, .handle_irq = vic_handle_irq,
.timer = &ep93xx_timer, .timer = &ep93xx_timer,
.init_machine = edb93xx_init_machine, .init_machine = edb93xx_init_machine,
.init_late = ep93xx_init_late,
.restart = ep93xx_restart, .restart = ep93xx_restart,
MACHINE_END MACHINE_END
#endif #endif
...@@ -307,6 +311,7 @@ MACHINE_START(EDB9307A, "Cirrus Logic EDB9307A Evaluation Board") ...@@ -307,6 +311,7 @@ MACHINE_START(EDB9307A, "Cirrus Logic EDB9307A Evaluation Board")
.handle_irq = vic_handle_irq, .handle_irq = vic_handle_irq,
.timer = &ep93xx_timer, .timer = &ep93xx_timer,
.init_machine = edb93xx_init_machine, .init_machine = edb93xx_init_machine,
.init_late = ep93xx_init_late,
.restart = ep93xx_restart, .restart = ep93xx_restart,
MACHINE_END MACHINE_END
#endif #endif
...@@ -320,6 +325,7 @@ MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board") ...@@ -320,6 +325,7 @@ MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board")
.handle_irq = vic_handle_irq, .handle_irq = vic_handle_irq,
.timer = &ep93xx_timer, .timer = &ep93xx_timer,
.init_machine = edb93xx_init_machine, .init_machine = edb93xx_init_machine,
.init_late = ep93xx_init_late,
.restart = ep93xx_restart, .restart = ep93xx_restart,
MACHINE_END MACHINE_END
#endif #endif
...@@ -333,6 +339,7 @@ MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board") ...@@ -333,6 +339,7 @@ MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board")
.handle_irq = vic_handle_irq, .handle_irq = vic_handle_irq,
.timer = &ep93xx_timer, .timer = &ep93xx_timer,
.init_machine = edb93xx_init_machine, .init_machine = edb93xx_init_machine,
.init_late = ep93xx_init_late,
.restart = ep93xx_restart, .restart = ep93xx_restart,
MACHINE_END MACHINE_END
#endif #endif
...@@ -346,6 +353,7 @@ MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board") ...@@ -346,6 +353,7 @@ MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board")
.handle_irq = vic_handle_irq, .handle_irq = vic_handle_irq,
.timer = &ep93xx_timer, .timer = &ep93xx_timer,
.init_machine = edb93xx_init_machine, .init_machine = edb93xx_init_machine,
.init_late = ep93xx_init_late,
.restart = ep93xx_restart, .restart = ep93xx_restart,
MACHINE_END MACHINE_END
#endif #endif
...@@ -41,5 +41,6 @@ MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx") ...@@ -41,5 +41,6 @@ MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx")
.handle_irq = vic_handle_irq, .handle_irq = vic_handle_irq,
.timer = &ep93xx_timer, .timer = &ep93xx_timer,
.init_machine = gesbc9312_init_machine, .init_machine = gesbc9312_init_machine,
.init_late = ep93xx_init_late,
.restart = ep93xx_restart, .restart = ep93xx_restart,
MACHINE_END MACHINE_END
...@@ -53,5 +53,12 @@ void ep93xx_init_devices(void); ...@@ -53,5 +53,12 @@ void ep93xx_init_devices(void);
extern struct sys_timer ep93xx_timer; extern struct sys_timer ep93xx_timer;
void ep93xx_restart(char, const char *); void ep93xx_restart(char, const char *);
void ep93xx_init_late(void);
#ifdef CONFIG_CRUNCH
int crunch_init(void);
#else
static inline int crunch_init(void) { return 0; }
#endif
#endif #endif
...@@ -85,6 +85,7 @@ MACHINE_START(MICRO9, "Contec Micro9-High") ...@@ -85,6 +85,7 @@ MACHINE_START(MICRO9, "Contec Micro9-High")
.handle_irq = vic_handle_irq, .handle_irq = vic_handle_irq,
.timer = &ep93xx_timer, .timer = &ep93xx_timer,
.init_machine = micro9_init_machine, .init_machine = micro9_init_machine,
.init_late = ep93xx_init_late,
.restart = ep93xx_restart, .restart = ep93xx_restart,
MACHINE_END MACHINE_END
#endif #endif
...@@ -98,6 +99,7 @@ MACHINE_START(MICRO9M, "Contec Micro9-Mid") ...@@ -98,6 +99,7 @@ MACHINE_START(MICRO9M, "Contec Micro9-Mid")
.handle_irq = vic_handle_irq, .handle_irq = vic_handle_irq,
.timer = &ep93xx_timer, .timer = &ep93xx_timer,
.init_machine = micro9_init_machine, .init_machine = micro9_init_machine,
.init_late = ep93xx_init_late,
.restart = ep93xx_restart, .restart = ep93xx_restart,
MACHINE_END MACHINE_END
#endif #endif
...@@ -111,6 +113,7 @@ MACHINE_START(MICRO9L, "Contec Micro9-Lite") ...@@ -111,6 +113,7 @@ MACHINE_START(MICRO9L, "Contec Micro9-Lite")
.handle_irq = vic_handle_irq, .handle_irq = vic_handle_irq,
.timer = &ep93xx_timer, .timer = &ep93xx_timer,
.init_machine = micro9_init_machine, .init_machine = micro9_init_machine,
.init_late = ep93xx_init_late,
.restart = ep93xx_restart, .restart = ep93xx_restart,
MACHINE_END MACHINE_END
#endif #endif
...@@ -124,6 +127,7 @@ MACHINE_START(MICRO9S, "Contec Micro9-Slim") ...@@ -124,6 +127,7 @@ MACHINE_START(MICRO9S, "Contec Micro9-Slim")
.handle_irq = vic_handle_irq, .handle_irq = vic_handle_irq,
.timer = &ep93xx_timer, .timer = &ep93xx_timer,
.init_machine = micro9_init_machine, .init_machine = micro9_init_machine,
.init_late = ep93xx_init_late,
.restart = ep93xx_restart, .restart = ep93xx_restart,
MACHINE_END MACHINE_END
#endif #endif
...@@ -86,5 +86,6 @@ MACHINE_START(SIM_ONE, "Simplemachines Sim.One Board") ...@@ -86,5 +86,6 @@ MACHINE_START(SIM_ONE, "Simplemachines Sim.One Board")
.handle_irq = vic_handle_irq, .handle_irq = vic_handle_irq,
.timer = &ep93xx_timer, .timer = &ep93xx_timer,
.init_machine = simone_init_machine, .init_machine = simone_init_machine,
.init_late = ep93xx_init_late,
.restart = ep93xx_restart, .restart = ep93xx_restart,
MACHINE_END MACHINE_END
...@@ -183,5 +183,6 @@ MACHINE_START(SNAPPER_CL15, "Bluewater Systems Snapper CL15") ...@@ -183,5 +183,6 @@ MACHINE_START(SNAPPER_CL15, "Bluewater Systems Snapper CL15")
.handle_irq = vic_handle_irq, .handle_irq = vic_handle_irq,
.timer = &ep93xx_timer, .timer = &ep93xx_timer,
.init_machine = snappercl15_init_machine, .init_machine = snappercl15_init_machine,
.init_late = ep93xx_init_late,
.restart = ep93xx_restart, .restart = ep93xx_restart,
MACHINE_END MACHINE_END
...@@ -252,5 +252,6 @@ MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC") ...@@ -252,5 +252,6 @@ MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC")
.handle_irq = vic_handle_irq, .handle_irq = vic_handle_irq,
.timer = &ep93xx_timer, .timer = &ep93xx_timer,
.init_machine = ts72xx_init_machine, .init_machine = ts72xx_init_machine,
.init_late = ep93xx_init_late,
.restart = ep93xx_restart, .restart = ep93xx_restart,
MACHINE_END MACHINE_END
...@@ -367,5 +367,6 @@ MACHINE_START(VISION_EP9307, "Vision Engraving Systems EP9307") ...@@ -367,5 +367,6 @@ MACHINE_START(VISION_EP9307, "Vision Engraving Systems EP9307")
.handle_irq = vic_handle_irq, .handle_irq = vic_handle_irq,
.timer = &ep93xx_timer, .timer = &ep93xx_timer,
.init_machine = vision_init_machine, .init_machine = vision_init_machine,
.init_late = ep93xx_init_late,
.restart = ep93xx_restart, .restart = ep93xx_restart,
MACHINE_END MACHINE_END
...@@ -288,6 +288,11 @@ void exynos5_restart(char mode, const char *cmd) ...@@ -288,6 +288,11 @@ void exynos5_restart(char mode, const char *cmd)
__raw_writel(0x1, EXYNOS_SWRESET); __raw_writel(0x1, EXYNOS_SWRESET);
} }
void __init exynos_init_late(void)
{
exynos_pm_late_initcall();
}
/* /*
* exynos_map_io * exynos_map_io
* *
......
...@@ -19,6 +19,13 @@ void exynos4_init_irq(void); ...@@ -19,6 +19,13 @@ void exynos4_init_irq(void);
void exynos5_init_irq(void); void exynos5_init_irq(void);
void exynos4_restart(char mode, const char *cmd); void exynos4_restart(char mode, const char *cmd);
void exynos5_restart(char mode, const char *cmd); void exynos5_restart(char mode, const char *cmd);
void exynos_init_late(void);
#ifdef CONFIG_PM_GENERIC_DOMAINS
int exynos_pm_late_initcall(void);
#else
static int exynos_pm_late_initcall(void) { return 0; }
#endif
#ifdef CONFIG_ARCH_EXYNOS4 #ifdef CONFIG_ARCH_EXYNOS4
void exynos4_register_clocks(void); void exynos4_register_clocks(void);
......
...@@ -203,6 +203,7 @@ MACHINE_START(ARMLEX4210, "ARMLEX4210") ...@@ -203,6 +203,7 @@ MACHINE_START(ARMLEX4210, "ARMLEX4210")
.map_io = armlex4210_map_io, .map_io = armlex4210_map_io,
.handle_irq = gic_handle_irq, .handle_irq = gic_handle_irq,
.init_machine = armlex4210_machine_init, .init_machine = armlex4210_machine_init,
.init_late = exynos_init_late,
.timer = &exynos4_timer, .timer = &exynos4_timer,
.restart = exynos4_restart, .restart = exynos4_restart,
MACHINE_END MACHINE_END
...@@ -83,6 +83,7 @@ DT_MACHINE_START(EXYNOS4210_DT, "Samsung Exynos4 (Flattened Device Tree)") ...@@ -83,6 +83,7 @@ DT_MACHINE_START(EXYNOS4210_DT, "Samsung Exynos4 (Flattened Device Tree)")
.map_io = exynos4210_dt_map_io, .map_io = exynos4210_dt_map_io,
.handle_irq = gic_handle_irq, .handle_irq = gic_handle_irq,
.init_machine = exynos4210_dt_machine_init, .init_machine = exynos4210_dt_machine_init,
.init_late = exynos_init_late,
.timer = &exynos4_timer, .timer = &exynos4_timer,
.dt_compat = exynos4210_dt_compat, .dt_compat = exynos4210_dt_compat,
.restart = exynos4_restart, .restart = exynos4_restart,
......
...@@ -76,6 +76,7 @@ DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG EXYNOS5 (Flattened Device Tree)") ...@@ -76,6 +76,7 @@ DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG EXYNOS5 (Flattened Device Tree)")
.map_io = exynos5250_dt_map_io, .map_io = exynos5250_dt_map_io,
.handle_irq = gic_handle_irq, .handle_irq = gic_handle_irq,
.init_machine = exynos5250_dt_machine_init, .init_machine = exynos5250_dt_machine_init,
.init_late = exynos_init_late,
.timer = &exynos4_timer, .timer = &exynos4_timer,
.dt_compat = exynos5250_dt_compat, .dt_compat = exynos5250_dt_compat,
.restart = exynos5_restart, .restart = exynos5_restart,
......
...@@ -1389,6 +1389,7 @@ MACHINE_START(NURI, "NURI") ...@@ -1389,6 +1389,7 @@ MACHINE_START(NURI, "NURI")
.map_io = nuri_map_io, .map_io = nuri_map_io,
.handle_irq = gic_handle_irq, .handle_irq = gic_handle_irq,
.init_machine = nuri_machine_init, .init_machine = nuri_machine_init,
.init_late = exynos_init_late,
.timer = &exynos4_timer, .timer = &exynos4_timer,
.reserve = &nuri_reserve, .reserve = &nuri_reserve,
.restart = exynos4_restart, .restart = exynos4_restart,
......
...@@ -766,6 +766,7 @@ MACHINE_START(ORIGEN, "ORIGEN") ...@@ -766,6 +766,7 @@ MACHINE_START(ORIGEN, "ORIGEN")
.map_io = origen_map_io, .map_io = origen_map_io,
.handle_irq = gic_handle_irq, .handle_irq = gic_handle_irq,
.init_machine = origen_machine_init, .init_machine = origen_machine_init,
.init_late = exynos_init_late,
.timer = &exynos4_timer, .timer = &exynos4_timer,
.reserve = &origen_reserve, .reserve = &origen_reserve,
.restart = exynos4_restart, .restart = exynos4_restart,
......
...@@ -316,6 +316,7 @@ MACHINE_START(SMDK4412, "SMDK4412") ...@@ -316,6 +316,7 @@ MACHINE_START(SMDK4412, "SMDK4412")
.map_io = smdk4x12_map_io, .map_io = smdk4x12_map_io,
.handle_irq = gic_handle_irq, .handle_irq = gic_handle_irq,
.init_machine = smdk4x12_machine_init, .init_machine = smdk4x12_machine_init,
.init_late = exynos_init_late,
.timer = &exynos4_timer, .timer = &exynos4_timer,
.restart = exynos4_restart, .restart = exynos4_restart,
.reserve = &smdk4x12_reserve, .reserve = &smdk4x12_reserve,
......
...@@ -411,6 +411,7 @@ MACHINE_START(SMDKC210, "SMDKC210") ...@@ -411,6 +411,7 @@ MACHINE_START(SMDKC210, "SMDKC210")
.map_io = smdkv310_map_io, .map_io = smdkv310_map_io,
.handle_irq = gic_handle_irq, .handle_irq = gic_handle_irq,
.init_machine = smdkv310_machine_init, .init_machine = smdkv310_machine_init,
.init_late = exynos_init_late,
.timer = &exynos4_timer, .timer = &exynos4_timer,
.restart = exynos4_restart, .restart = exynos4_restart,
MACHINE_END MACHINE_END
...@@ -1157,6 +1157,7 @@ MACHINE_START(UNIVERSAL_C210, "UNIVERSAL_C210") ...@@ -1157,6 +1157,7 @@ MACHINE_START(UNIVERSAL_C210, "UNIVERSAL_C210")
.map_io = universal_map_io, .map_io = universal_map_io,
.handle_irq = gic_handle_irq, .handle_irq = gic_handle_irq,
.init_machine = universal_machine_init, .init_machine = universal_machine_init,
.init_late = exynos_init_late,
.timer = &s5p_timer, .timer = &s5p_timer,
.reserve = &universal_reserve, .reserve = &universal_reserve,
.restart = exynos4_restart, .restart = exynos4_restart,
......
...@@ -193,9 +193,8 @@ static __init int exynos4_pm_init_power_domain(void) ...@@ -193,9 +193,8 @@ static __init int exynos4_pm_init_power_domain(void)
} }
arch_initcall(exynos4_pm_init_power_domain); arch_initcall(exynos4_pm_init_power_domain);
static __init int exynos_pm_late_initcall(void) int __init exynos_pm_late_initcall(void)
{ {
pm_genpd_poweroff_unused(); pm_genpd_poweroff_unused();
return 0; return 0;
} }
late_initcall(exynos_pm_late_initcall);
...@@ -62,11 +62,8 @@ EXPORT_SYMBOL(mx51_revision); ...@@ -62,11 +62,8 @@ EXPORT_SYMBOL(mx51_revision);
* Dependent on link order - so the assumption is that vfp_init is called * Dependent on link order - so the assumption is that vfp_init is called
* before us. * before us.
*/ */
static int __init mx51_neon_fixup(void) int __init mx51_neon_fixup(void)
{ {
if (!cpu_is_mx51())
return 0;
if (mx51_revision() < IMX_CHIP_REVISION_3_0 && if (mx51_revision() < IMX_CHIP_REVISION_3_0 &&
(elf_hwcap & HWCAP_NEON)) { (elf_hwcap & HWCAP_NEON)) {
elf_hwcap &= ~HWCAP_NEON; elf_hwcap &= ~HWCAP_NEON;
...@@ -75,7 +72,6 @@ static int __init mx51_neon_fixup(void) ...@@ -75,7 +72,6 @@ static int __init mx51_neon_fixup(void)
return 0; return 0;
} }
late_initcall(mx51_neon_fixup);
#endif #endif
static int get_mx53_srev(void) static int get_mx53_srev(void)
......
...@@ -118,6 +118,7 @@ DT_MACHINE_START(IMX51_DT, "Freescale i.MX51 (Device Tree Support)") ...@@ -118,6 +118,7 @@ DT_MACHINE_START(IMX51_DT, "Freescale i.MX51 (Device Tree Support)")
.handle_irq = imx51_handle_irq, .handle_irq = imx51_handle_irq,
.timer = &imx51_timer, .timer = &imx51_timer,
.init_machine = imx51_dt_init, .init_machine = imx51_dt_init,
.init_late = imx51_init_late,
.dt_compat = imx51_dt_board_compat, .dt_compat = imx51_dt_board_compat,
.restart = mxc_restart, .restart = mxc_restart,
MACHINE_END MACHINE_END
...@@ -369,5 +369,6 @@ MACHINE_START(EUKREA_CPUIMX51SD, "Eukrea CPUIMX51SD") ...@@ -369,5 +369,6 @@ MACHINE_START(EUKREA_CPUIMX51SD, "Eukrea CPUIMX51SD")
.handle_irq = imx51_handle_irq, .handle_irq = imx51_handle_irq,
.timer = &mxc_timer, .timer = &mxc_timer,
.init_machine = eukrea_cpuimx51sd_init, .init_machine = eukrea_cpuimx51sd_init,
.init_late = imx51_init_late,
.restart = mxc_restart, .restart = mxc_restart,
MACHINE_END MACHINE_END
...@@ -175,5 +175,6 @@ MACHINE_START(MX51_3DS, "Freescale MX51 3-Stack Board") ...@@ -175,5 +175,6 @@ MACHINE_START(MX51_3DS, "Freescale MX51 3-Stack Board")
.handle_irq = imx51_handle_irq, .handle_irq = imx51_handle_irq,
.timer = &mx51_3ds_timer, .timer = &mx51_3ds_timer,
.init_machine = mx51_3ds_init, .init_machine = mx51_3ds_init,
.init_late = imx51_init_late,
.restart = mxc_restart, .restart = mxc_restart,
MACHINE_END MACHINE_END
...@@ -432,5 +432,6 @@ MACHINE_START(MX51_BABBAGE, "Freescale MX51 Babbage Board") ...@@ -432,5 +432,6 @@ MACHINE_START(MX51_BABBAGE, "Freescale MX51 Babbage Board")
.handle_irq = imx51_handle_irq, .handle_irq = imx51_handle_irq,
.timer = &mx51_babbage_timer, .timer = &mx51_babbage_timer,
.init_machine = mx51_babbage_init, .init_machine = mx51_babbage_init,
.init_late = imx51_init_late,
.restart = mxc_restart, .restart = mxc_restart,
MACHINE_END MACHINE_END
...@@ -207,29 +207,32 @@ static void mx51_efikamx_power_off(void) ...@@ -207,29 +207,32 @@ static void mx51_efikamx_power_off(void)
static int __init mx51_efikamx_power_init(void) static int __init mx51_efikamx_power_init(void)
{ {
if (machine_is_mx51_efikamx()) { pwgt1 = regulator_get(NULL, "pwgt1");
pwgt1 = regulator_get(NULL, "pwgt1"); pwgt2 = regulator_get(NULL, "pwgt2");
pwgt2 = regulator_get(NULL, "pwgt2"); if (!IS_ERR(pwgt1) && !IS_ERR(pwgt2)) {
if (!IS_ERR(pwgt1) && !IS_ERR(pwgt2)) { regulator_enable(pwgt1);
regulator_enable(pwgt1); regulator_enable(pwgt2);
regulator_enable(pwgt2); }
} gpio_request(EFIKAMX_POWEROFF, "poweroff");
gpio_request(EFIKAMX_POWEROFF, "poweroff"); pm_power_off = mx51_efikamx_power_off;
pm_power_off = mx51_efikamx_power_off;
/* enable coincell charger. maybe need a small power driver ? */
/* enable coincell charger. maybe need a small power driver ? */ coincell = regulator_get(NULL, "coincell");
coincell = regulator_get(NULL, "coincell"); if (!IS_ERR(coincell)) {
if (!IS_ERR(coincell)) { regulator_set_voltage(coincell, 3000000, 3000000);
regulator_set_voltage(coincell, 3000000, 3000000); regulator_enable(coincell);
regulator_enable(coincell);
}
regulator_has_full_constraints();
} }
regulator_has_full_constraints();
return 0; return 0;
} }
late_initcall(mx51_efikamx_power_init);
static void __init mx51_efikamx_init_late(void)
{
imx51_init_late();
mx51_efikamx_power_init();
}
static void __init mx51_efikamx_init(void) static void __init mx51_efikamx_init(void)
{ {
...@@ -292,5 +295,6 @@ MACHINE_START(MX51_EFIKAMX, "Genesi Efika MX (Smarttop)") ...@@ -292,5 +295,6 @@ MACHINE_START(MX51_EFIKAMX, "Genesi Efika MX (Smarttop)")
.handle_irq = imx51_handle_irq, .handle_irq = imx51_handle_irq,
.timer = &mx51_efikamx_timer, .timer = &mx51_efikamx_timer,
.init_machine = mx51_efikamx_init, .init_machine = mx51_efikamx_init,
.init_late = mx51_efikamx_init_late,
.restart = mx51_efikamx_restart, .restart = mx51_efikamx_restart,
MACHINE_END MACHINE_END
...@@ -211,22 +211,25 @@ static void mx51_efikasb_power_off(void) ...@@ -211,22 +211,25 @@ static void mx51_efikasb_power_off(void)
static int __init mx51_efikasb_power_init(void) static int __init mx51_efikasb_power_init(void)
{ {
if (machine_is_mx51_efikasb()) { pwgt1 = regulator_get(NULL, "pwgt1");
pwgt1 = regulator_get(NULL, "pwgt1"); pwgt2 = regulator_get(NULL, "pwgt2");
pwgt2 = regulator_get(NULL, "pwgt2"); if (!IS_ERR(pwgt1) && !IS_ERR(pwgt2)) {
if (!IS_ERR(pwgt1) && !IS_ERR(pwgt2)) { regulator_enable(pwgt1);
regulator_enable(pwgt1); regulator_enable(pwgt2);
regulator_enable(pwgt2);
}
gpio_request(EFIKASB_POWEROFF, "poweroff");
pm_power_off = mx51_efikasb_power_off;
regulator_has_full_constraints();
} }
gpio_request(EFIKASB_POWEROFF, "poweroff");
pm_power_off = mx51_efikasb_power_off;
regulator_has_full_constraints();
return 0; return 0;
} }
late_initcall(mx51_efikasb_power_init);
static void __init mx51_efikasb_init_late(void)
{
imx51_init_late();
mx51_efikasb_power_init();
}
/* 01 R1.3 board /* 01 R1.3 board
10 R2.0 board */ 10 R2.0 board */
...@@ -287,6 +290,7 @@ MACHINE_START(MX51_EFIKASB, "Genesi Efika MX (Smartbook)") ...@@ -287,6 +290,7 @@ MACHINE_START(MX51_EFIKASB, "Genesi Efika MX (Smartbook)")
.init_irq = mx51_init_irq, .init_irq = mx51_init_irq,
.handle_irq = imx51_handle_irq, .handle_irq = imx51_handle_irq,
.init_machine = efikasb_board_init, .init_machine = efikasb_board_init,
.init_late = mx51_efikasb_init_late,
.timer = &mx51_efikasb_timer, .timer = &mx51_efikasb_timer,
.restart = mxc_restart, .restart = mxc_restart,
MACHINE_END MACHINE_END
...@@ -694,6 +694,11 @@ static void __init pcm037_reserve(void) ...@@ -694,6 +694,11 @@ static void __init pcm037_reserve(void)
MX3_CAMERA_BUF_SIZE); MX3_CAMERA_BUF_SIZE);
} }
static void __init pcm037_init_late(void)
{
pcm037_eet_init_devices();
}
MACHINE_START(PCM037, "Phytec Phycore pcm037") MACHINE_START(PCM037, "Phytec Phycore pcm037")
/* Maintainer: Pengutronix */ /* Maintainer: Pengutronix */
.atag_offset = 0x100, .atag_offset = 0x100,
...@@ -704,5 +709,6 @@ MACHINE_START(PCM037, "Phytec Phycore pcm037") ...@@ -704,5 +709,6 @@ MACHINE_START(PCM037, "Phytec Phycore pcm037")
.handle_irq = imx31_handle_irq, .handle_irq = imx31_handle_irq,
.timer = &pcm037_timer, .timer = &pcm037_timer,
.init_machine = pcm037_init, .init_machine = pcm037_init,
.init_late = pcm037_init_late,
.restart = mxc_restart, .restart = mxc_restart,
MACHINE_END MACHINE_END
...@@ -160,9 +160,9 @@ static const struct gpio_keys_platform_data ...@@ -160,9 +160,9 @@ static const struct gpio_keys_platform_data
.rep = 0, /* No auto-repeat */ .rep = 0, /* No auto-repeat */
}; };
static int __init eet_init_devices(void) int __init pcm037_eet_init_devices(void)
{ {
if (!machine_is_pcm037() || pcm037_variant() != PCM037_EET) if (pcm037_variant() != PCM037_EET)
return 0; return 0;
mxc_iomux_setup_multiple_pins(pcm037_eet_pins, mxc_iomux_setup_multiple_pins(pcm037_eet_pins,
...@@ -176,4 +176,3 @@ static int __init eet_init_devices(void) ...@@ -176,4 +176,3 @@ static int __init eet_init_devices(void)
return 0; return 0;
} }
late_initcall(eet_init_devices);
...@@ -237,3 +237,8 @@ void __init imx53_soc_init(void) ...@@ -237,3 +237,8 @@ void __init imx53_soc_init(void)
platform_device_register_simple("imx31-audmux", 0, imx53_audmux_res, platform_device_register_simple("imx31-audmux", 0, imx53_audmux_res,
ARRAY_SIZE(imx53_audmux_res)); ARRAY_SIZE(imx53_audmux_res));
} }
void __init imx51_init_late(void)
{
mx51_neon_fixup();
}
...@@ -8,4 +8,10 @@ enum pcm037_board_variant { ...@@ -8,4 +8,10 @@ enum pcm037_board_variant {
extern enum pcm037_board_variant pcm037_variant(void); extern enum pcm037_board_variant pcm037_variant(void);
#ifdef CONFIG_MACH_PCM037_EET
int pcm037_eet_init_devices(void);
#else
static inline int pcm037_eet_init_devices(void) { return 0; }
#endif
#endif #endif
...@@ -94,6 +94,11 @@ static void __init halibut_map_io(void) ...@@ -94,6 +94,11 @@ static void __init halibut_map_io(void)
msm_clock_init(msm_clocks_7x01a, msm_num_clocks_7x01a); msm_clock_init(msm_clocks_7x01a, msm_num_clocks_7x01a);
} }
static void __init halibut_init_late(void)
{
smd_debugfs_init();
}
MACHINE_START(HALIBUT, "Halibut Board (QCT SURF7200A)") MACHINE_START(HALIBUT, "Halibut Board (QCT SURF7200A)")
.atag_offset = 0x100, .atag_offset = 0x100,
.fixup = halibut_fixup, .fixup = halibut_fixup,
...@@ -101,5 +106,6 @@ MACHINE_START(HALIBUT, "Halibut Board (QCT SURF7200A)") ...@@ -101,5 +106,6 @@ MACHINE_START(HALIBUT, "Halibut Board (QCT SURF7200A)")
.init_early = halibut_init_early, .init_early = halibut_init_early,
.init_irq = halibut_init_irq, .init_irq = halibut_init_irq,
.init_machine = halibut_init, .init_machine = halibut_init,
.init_late = halibut_init_late,
.timer = &msm_timer, .timer = &msm_timer,
MACHINE_END MACHINE_END
...@@ -71,6 +71,11 @@ static void __init mahimahi_map_io(void) ...@@ -71,6 +71,11 @@ static void __init mahimahi_map_io(void)
msm_clock_init(); msm_clock_init();
} }
static void __init mahimahi_init_late(void)
{
smd_debugfs_init();
}
extern struct sys_timer msm_timer; extern struct sys_timer msm_timer;
MACHINE_START(MAHIMAHI, "mahimahi") MACHINE_START(MAHIMAHI, "mahimahi")
...@@ -79,5 +84,6 @@ MACHINE_START(MAHIMAHI, "mahimahi") ...@@ -79,5 +84,6 @@ MACHINE_START(MAHIMAHI, "mahimahi")
.map_io = mahimahi_map_io, .map_io = mahimahi_map_io,
.init_irq = msm_init_irq, .init_irq = msm_init_irq,
.init_machine = mahimahi_init, .init_machine = mahimahi_init,
.init_late = mahimahi_init_late,
.timer = &msm_timer, .timer = &msm_timer,
MACHINE_END MACHINE_END
...@@ -128,11 +128,17 @@ static void __init msm7x2x_map_io(void) ...@@ -128,11 +128,17 @@ static void __init msm7x2x_map_io(void)
#endif #endif
} }
static void __init msm7x2x_init_late(void)
{
smd_debugfs_init();
}
MACHINE_START(MSM7X27_SURF, "QCT MSM7x27 SURF") MACHINE_START(MSM7X27_SURF, "QCT MSM7x27 SURF")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = msm7x2x_map_io, .map_io = msm7x2x_map_io,
.init_irq = msm7x2x_init_irq, .init_irq = msm7x2x_init_irq,
.init_machine = msm7x2x_init, .init_machine = msm7x2x_init,
.init_late = msm7x2x_init_late,
.timer = &msm_timer, .timer = &msm_timer,
MACHINE_END MACHINE_END
...@@ -141,6 +147,7 @@ MACHINE_START(MSM7X27_FFA, "QCT MSM7x27 FFA") ...@@ -141,6 +147,7 @@ MACHINE_START(MSM7X27_FFA, "QCT MSM7x27 FFA")
.map_io = msm7x2x_map_io, .map_io = msm7x2x_map_io,
.init_irq = msm7x2x_init_irq, .init_irq = msm7x2x_init_irq,
.init_machine = msm7x2x_init, .init_machine = msm7x2x_init,
.init_late = msm7x2x_init_late,
.timer = &msm_timer, .timer = &msm_timer,
MACHINE_END MACHINE_END
...@@ -149,6 +156,7 @@ MACHINE_START(MSM7X25_SURF, "QCT MSM7x25 SURF") ...@@ -149,6 +156,7 @@ MACHINE_START(MSM7X25_SURF, "QCT MSM7x25 SURF")
.map_io = msm7x2x_map_io, .map_io = msm7x2x_map_io,
.init_irq = msm7x2x_init_irq, .init_irq = msm7x2x_init_irq,
.init_machine = msm7x2x_init, .init_machine = msm7x2x_init,
.init_late = msm7x2x_init_late,
.timer = &msm_timer, .timer = &msm_timer,
MACHINE_END MACHINE_END
...@@ -157,5 +165,6 @@ MACHINE_START(MSM7X25_FFA, "QCT MSM7x25 FFA") ...@@ -157,5 +165,6 @@ MACHINE_START(MSM7X25_FFA, "QCT MSM7x25 FFA")
.map_io = msm7x2x_map_io, .map_io = msm7x2x_map_io,
.init_irq = msm7x2x_init_irq, .init_irq = msm7x2x_init_irq,
.init_machine = msm7x2x_init, .init_machine = msm7x2x_init,
.init_late = msm7x2x_init_late,
.timer = &msm_timer, .timer = &msm_timer,
MACHINE_END MACHINE_END
...@@ -119,6 +119,11 @@ static void __init msm7x30_map_io(void) ...@@ -119,6 +119,11 @@ static void __init msm7x30_map_io(void)
msm_clock_init(msm_clocks_7x30, msm_num_clocks_7x30); msm_clock_init(msm_clocks_7x30, msm_num_clocks_7x30);
} }
static void __init msm7x30_init_late(void)
{
smd_debugfs_init();
}
MACHINE_START(MSM7X30_SURF, "QCT MSM7X30 SURF") MACHINE_START(MSM7X30_SURF, "QCT MSM7X30 SURF")
.atag_offset = 0x100, .atag_offset = 0x100,
.fixup = msm7x30_fixup, .fixup = msm7x30_fixup,
...@@ -126,6 +131,7 @@ MACHINE_START(MSM7X30_SURF, "QCT MSM7X30 SURF") ...@@ -126,6 +131,7 @@ MACHINE_START(MSM7X30_SURF, "QCT MSM7X30 SURF")
.map_io = msm7x30_map_io, .map_io = msm7x30_map_io,
.init_irq = msm7x30_init_irq, .init_irq = msm7x30_init_irq,
.init_machine = msm7x30_init, .init_machine = msm7x30_init,
.init_late = msm7x30_init_late,
.timer = &msm_timer, .timer = &msm_timer,
MACHINE_END MACHINE_END
...@@ -136,6 +142,7 @@ MACHINE_START(MSM7X30_FFA, "QCT MSM7X30 FFA") ...@@ -136,6 +142,7 @@ MACHINE_START(MSM7X30_FFA, "QCT MSM7X30 FFA")
.map_io = msm7x30_map_io, .map_io = msm7x30_map_io,
.init_irq = msm7x30_init_irq, .init_irq = msm7x30_init_irq,
.init_machine = msm7x30_init, .init_machine = msm7x30_init,
.init_late = msm7x30_init_late,
.timer = &msm_timer, .timer = &msm_timer,
MACHINE_END MACHINE_END
...@@ -146,5 +153,6 @@ MACHINE_START(MSM7X30_FLUID, "QCT MSM7X30 FLUID") ...@@ -146,5 +153,6 @@ MACHINE_START(MSM7X30_FLUID, "QCT MSM7X30 FLUID")
.map_io = msm7x30_map_io, .map_io = msm7x30_map_io,
.init_irq = msm7x30_init_irq, .init_irq = msm7x30_init_irq,
.init_machine = msm7x30_init, .init_machine = msm7x30_init,
.init_late = msm7x30_init_late,
.timer = &msm_timer, .timer = &msm_timer,
MACHINE_END MACHINE_END
...@@ -93,6 +93,11 @@ static void __init msm8960_rumi3_init(void) ...@@ -93,6 +93,11 @@ static void __init msm8960_rumi3_init(void)
platform_add_devices(rumi3_devices, ARRAY_SIZE(rumi3_devices)); platform_add_devices(rumi3_devices, ARRAY_SIZE(rumi3_devices));
} }
static void __init msm8960_init_late(void)
{
smd_debugfs_init();
}
MACHINE_START(MSM8960_SIM, "QCT MSM8960 SIMULATOR") MACHINE_START(MSM8960_SIM, "QCT MSM8960 SIMULATOR")
.fixup = msm8960_fixup, .fixup = msm8960_fixup,
.reserve = msm8960_reserve, .reserve = msm8960_reserve,
...@@ -101,6 +106,7 @@ MACHINE_START(MSM8960_SIM, "QCT MSM8960 SIMULATOR") ...@@ -101,6 +106,7 @@ MACHINE_START(MSM8960_SIM, "QCT MSM8960 SIMULATOR")
.timer = &msm_timer, .timer = &msm_timer,
.handle_irq = gic_handle_irq, .handle_irq = gic_handle_irq,
.init_machine = msm8960_sim_init, .init_machine = msm8960_sim_init,
.init_late = msm8960_init_late,
MACHINE_END MACHINE_END
MACHINE_START(MSM8960_RUMI3, "QCT MSM8960 RUMI3") MACHINE_START(MSM8960_RUMI3, "QCT MSM8960 RUMI3")
...@@ -111,5 +117,6 @@ MACHINE_START(MSM8960_RUMI3, "QCT MSM8960 RUMI3") ...@@ -111,5 +117,6 @@ MACHINE_START(MSM8960_RUMI3, "QCT MSM8960 RUMI3")
.timer = &msm_timer, .timer = &msm_timer,
.handle_irq = gic_handle_irq, .handle_irq = gic_handle_irq,
.init_machine = msm8960_rumi3_init, .init_machine = msm8960_rumi3_init,
.init_late = msm8960_init_late,
MACHINE_END MACHINE_END
...@@ -81,6 +81,11 @@ static void __init msm8x60_init(void) ...@@ -81,6 +81,11 @@ static void __init msm8x60_init(void)
{ {
} }
static void __init msm8x60_init_late(void)
{
smd_debugfs_init();
}
#ifdef CONFIG_OF #ifdef CONFIG_OF
static struct of_dev_auxdata msm_auxdata_lookup[] __initdata = { static struct of_dev_auxdata msm_auxdata_lookup[] __initdata = {
{} {}
...@@ -111,6 +116,7 @@ MACHINE_START(MSM8X60_RUMI3, "QCT MSM8X60 RUMI3") ...@@ -111,6 +116,7 @@ MACHINE_START(MSM8X60_RUMI3, "QCT MSM8X60 RUMI3")
.init_irq = msm8x60_init_irq, .init_irq = msm8x60_init_irq,
.handle_irq = gic_handle_irq, .handle_irq = gic_handle_irq,
.init_machine = msm8x60_init, .init_machine = msm8x60_init,
.init_late = msm8x60_init_late,
.timer = &msm_timer, .timer = &msm_timer,
MACHINE_END MACHINE_END
...@@ -121,6 +127,7 @@ MACHINE_START(MSM8X60_SURF, "QCT MSM8X60 SURF") ...@@ -121,6 +127,7 @@ MACHINE_START(MSM8X60_SURF, "QCT MSM8X60 SURF")
.init_irq = msm8x60_init_irq, .init_irq = msm8x60_init_irq,
.handle_irq = gic_handle_irq, .handle_irq = gic_handle_irq,
.init_machine = msm8x60_init, .init_machine = msm8x60_init,
.init_late = msm8x60_init_late,
.timer = &msm_timer, .timer = &msm_timer,
MACHINE_END MACHINE_END
...@@ -131,6 +138,7 @@ MACHINE_START(MSM8X60_SIM, "QCT MSM8X60 SIMULATOR") ...@@ -131,6 +138,7 @@ MACHINE_START(MSM8X60_SIM, "QCT MSM8X60 SIMULATOR")
.init_irq = msm8x60_init_irq, .init_irq = msm8x60_init_irq,
.handle_irq = gic_handle_irq, .handle_irq = gic_handle_irq,
.init_machine = msm8x60_init, .init_machine = msm8x60_init,
.init_late = msm8x60_init_late,
.timer = &msm_timer, .timer = &msm_timer,
MACHINE_END MACHINE_END
...@@ -141,6 +149,7 @@ MACHINE_START(MSM8X60_FFA, "QCT MSM8X60 FFA") ...@@ -141,6 +149,7 @@ MACHINE_START(MSM8X60_FFA, "QCT MSM8X60 FFA")
.init_irq = msm8x60_init_irq, .init_irq = msm8x60_init_irq,
.handle_irq = gic_handle_irq, .handle_irq = gic_handle_irq,
.init_machine = msm8x60_init, .init_machine = msm8x60_init,
.init_late = msm8x60_init_late,
.timer = &msm_timer, .timer = &msm_timer,
MACHINE_END MACHINE_END
...@@ -150,6 +159,7 @@ DT_MACHINE_START(MSM_DT, "Qualcomm MSM (Flattened Device Tree)") ...@@ -150,6 +159,7 @@ DT_MACHINE_START(MSM_DT, "Qualcomm MSM (Flattened Device Tree)")
.map_io = msm8x60_map_io, .map_io = msm8x60_map_io,
.init_irq = msm8x60_init_irq, .init_irq = msm8x60_init_irq,
.init_machine = msm8x60_dt_init, .init_machine = msm8x60_dt_init,
.init_late = msm8x60_init_late,
.timer = &msm_timer, .timer = &msm_timer,
.dt_compat = msm8x60_fluid_match, .dt_compat = msm8x60_fluid_match,
MACHINE_END MACHINE_END
......
...@@ -190,11 +190,17 @@ static void __init qsd8x50_init(void) ...@@ -190,11 +190,17 @@ static void __init qsd8x50_init(void)
qsd8x50_init_mmc(); qsd8x50_init_mmc();
} }
static void __init qsd8x50_init_late(void)
{
smd_debugfs_init();
}
MACHINE_START(QSD8X50_SURF, "QCT QSD8X50 SURF") MACHINE_START(QSD8X50_SURF, "QCT QSD8X50 SURF")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = qsd8x50_map_io, .map_io = qsd8x50_map_io,
.init_irq = qsd8x50_init_irq, .init_irq = qsd8x50_init_irq,
.init_machine = qsd8x50_init, .init_machine = qsd8x50_init,
.init_late = qsd8x50_init_late,
.timer = &msm_timer, .timer = &msm_timer,
MACHINE_END MACHINE_END
...@@ -203,5 +209,6 @@ MACHINE_START(QSD8X50A_ST1_5, "QCT QSD8X50A ST1.5") ...@@ -203,5 +209,6 @@ MACHINE_START(QSD8X50A_ST1_5, "QCT QSD8X50A ST1.5")
.map_io = qsd8x50_map_io, .map_io = qsd8x50_map_io,
.init_irq = qsd8x50_init_irq, .init_irq = qsd8x50_init_irq,
.init_machine = qsd8x50_init, .init_machine = qsd8x50_init,
.init_late = qsd8x50_init_late,
.timer = &msm_timer, .timer = &msm_timer,
MACHINE_END MACHINE_END
...@@ -101,6 +101,11 @@ static void __init sapphire_map_io(void) ...@@ -101,6 +101,11 @@ static void __init sapphire_map_io(void)
msm_clock_init(); msm_clock_init();
} }
static void __init sapphire_init_late(void)
{
smd_debugfs_init();
}
MACHINE_START(SAPPHIRE, "sapphire") MACHINE_START(SAPPHIRE, "sapphire")
/* Maintainer: Brian Swetland <swetland@google.com> */ /* Maintainer: Brian Swetland <swetland@google.com> */
.atag_offset = 0x100, .atag_offset = 0x100,
...@@ -108,5 +113,6 @@ MACHINE_START(SAPPHIRE, "sapphire") ...@@ -108,5 +113,6 @@ MACHINE_START(SAPPHIRE, "sapphire")
.map_io = sapphire_map_io, .map_io = sapphire_map_io,
.init_irq = sapphire_init_irq, .init_irq = sapphire_init_irq,
.init_machine = sapphire_init, .init_machine = sapphire_init,
.init_late = sapphire_init_late,
.timer = &msm_timer, .timer = &msm_timer,
MACHINE_END MACHINE_END
...@@ -98,6 +98,11 @@ static void __init trout_map_io(void) ...@@ -98,6 +98,11 @@ static void __init trout_map_io(void)
msm_clock_init(msm_clocks_7x01a, msm_num_clocks_7x01a); msm_clock_init(msm_clocks_7x01a, msm_num_clocks_7x01a);
} }
static void __init trout_init_late(void)
{
smd_debugfs_init();
}
MACHINE_START(TROUT, "HTC Dream") MACHINE_START(TROUT, "HTC Dream")
.atag_offset = 0x100, .atag_offset = 0x100,
.fixup = trout_fixup, .fixup = trout_fixup,
...@@ -105,5 +110,6 @@ MACHINE_START(TROUT, "HTC Dream") ...@@ -105,5 +110,6 @@ MACHINE_START(TROUT, "HTC Dream")
.init_early = trout_init_early, .init_early = trout_init_early,
.init_irq = trout_init_irq, .init_irq = trout_init_irq,
.init_machine = trout_init, .init_machine = trout_init,
.init_late = trout_init_late,
.timer = &msm_timer, .timer = &msm_timer,
MACHINE_END MACHINE_END
...@@ -47,4 +47,10 @@ int __init msm_add_sdcc(unsigned int controller, ...@@ -47,4 +47,10 @@ int __init msm_add_sdcc(unsigned int controller,
struct msm_mmc_platform_data *plat, struct msm_mmc_platform_data *plat,
unsigned int stat_irq, unsigned long stat_irq_flags); unsigned int stat_irq, unsigned long stat_irq_flags);
#if defined(CONFIG_MSM_SMD) && defined(CONFIG_DEBUG_FS)
int smd_debugfs_init(void);
#else
static inline int smd_debugfs_init(void) { return 0; }
#endif
#endif #endif
...@@ -216,7 +216,7 @@ static void debug_create(const char *name, umode_t mode, ...@@ -216,7 +216,7 @@ static void debug_create(const char *name, umode_t mode,
debugfs_create_file(name, mode, dent, fill, &debug_ops); debugfs_create_file(name, mode, dent, fill, &debug_ops);
} }
static int smd_debugfs_init(void) int __init smd_debugfs_init(void)
{ {
struct dentry *dent; struct dentry *dent;
...@@ -234,7 +234,6 @@ static int smd_debugfs_init(void) ...@@ -234,7 +234,6 @@ static int smd_debugfs_init(void)
return 0; return 0;
} }
late_initcall(smd_debugfs_init);
#endif #endif
......
...@@ -595,7 +595,12 @@ static int __init late_init(void) ...@@ -595,7 +595,12 @@ static int __init late_init(void)
gpio_free(AMS_DELTA_GPIO_PIN_MODEM_IRQ); gpio_free(AMS_DELTA_GPIO_PIN_MODEM_IRQ);
return err; return err;
} }
late_initcall(late_init);
static void __init ams_delta_init_late(void)
{
omap1_init_late();
late_init();
}
static void __init ams_delta_map_io(void) static void __init ams_delta_map_io(void)
{ {
...@@ -611,6 +616,7 @@ MACHINE_START(AMS_DELTA, "Amstrad E3 (Delta)") ...@@ -611,6 +616,7 @@ MACHINE_START(AMS_DELTA, "Amstrad E3 (Delta)")
.reserve = omap_reserve, .reserve = omap_reserve,
.init_irq = omap1_init_irq, .init_irq = omap1_init_irq,
.init_machine = ams_delta_init, .init_machine = ams_delta_init,
.init_late = ams_delta_init_late,
.timer = &omap1_timer, .timer = &omap1_timer,
.restart = omap1_restart, .restart = omap1_restart,
MACHINE_END MACHINE_END
...@@ -369,6 +369,7 @@ MACHINE_START(OMAP_FSAMPLE, "OMAP730 F-Sample") ...@@ -369,6 +369,7 @@ MACHINE_START(OMAP_FSAMPLE, "OMAP730 F-Sample")
.reserve = omap_reserve, .reserve = omap_reserve,
.init_irq = omap1_init_irq, .init_irq = omap1_init_irq,
.init_machine = omap_fsample_init, .init_machine = omap_fsample_init,
.init_late = omap1_init_late,
.timer = &omap1_timer, .timer = &omap1_timer,
.restart = omap1_restart, .restart = omap1_restart,
MACHINE_END MACHINE_END
...@@ -88,6 +88,7 @@ MACHINE_START(OMAP_GENERIC, "Generic OMAP1510/1610/1710") ...@@ -88,6 +88,7 @@ MACHINE_START(OMAP_GENERIC, "Generic OMAP1510/1610/1710")
.reserve = omap_reserve, .reserve = omap_reserve,
.init_irq = omap1_init_irq, .init_irq = omap1_init_irq,
.init_machine = omap_generic_init, .init_machine = omap_generic_init,
.init_late = omap1_init_late,
.timer = &omap1_timer, .timer = &omap1_timer,
.restart = omap1_restart, .restart = omap1_restart,
MACHINE_END MACHINE_END
...@@ -431,6 +431,7 @@ MACHINE_START(OMAP_H2, "TI-H2") ...@@ -431,6 +431,7 @@ MACHINE_START(OMAP_H2, "TI-H2")
.reserve = omap_reserve, .reserve = omap_reserve,
.init_irq = omap1_init_irq, .init_irq = omap1_init_irq,
.init_machine = h2_init, .init_machine = h2_init,
.init_late = omap1_init_late,
.timer = &omap1_timer, .timer = &omap1_timer,
.restart = omap1_restart, .restart = omap1_restart,
MACHINE_END MACHINE_END
...@@ -425,6 +425,7 @@ MACHINE_START(OMAP_H3, "TI OMAP1710 H3 board") ...@@ -425,6 +425,7 @@ MACHINE_START(OMAP_H3, "TI OMAP1710 H3 board")
.reserve = omap_reserve, .reserve = omap_reserve,
.init_irq = omap1_init_irq, .init_irq = omap1_init_irq,
.init_machine = h3_init, .init_machine = h3_init,
.init_late = omap1_init_late,
.timer = &omap1_timer, .timer = &omap1_timer,
.restart = omap1_restart, .restart = omap1_restart,
MACHINE_END MACHINE_END
...@@ -605,6 +605,7 @@ MACHINE_START(HERALD, "HTC Herald") ...@@ -605,6 +605,7 @@ MACHINE_START(HERALD, "HTC Herald")
.reserve = omap_reserve, .reserve = omap_reserve,
.init_irq = omap1_init_irq, .init_irq = omap1_init_irq,
.init_machine = htcherald_init, .init_machine = htcherald_init,
.init_late = omap1_init_late,
.timer = &omap1_timer, .timer = &omap1_timer,
.restart = omap1_restart, .restart = omap1_restart,
MACHINE_END MACHINE_END
...@@ -457,6 +457,7 @@ MACHINE_START(OMAP_INNOVATOR, "TI-Innovator") ...@@ -457,6 +457,7 @@ MACHINE_START(OMAP_INNOVATOR, "TI-Innovator")
.reserve = omap_reserve, .reserve = omap_reserve,
.init_irq = omap1_init_irq, .init_irq = omap1_init_irq,
.init_machine = innovator_init, .init_machine = innovator_init,
.init_late = omap1_init_late,
.timer = &omap1_timer, .timer = &omap1_timer,
.restart = omap1_restart, .restart = omap1_restart,
MACHINE_END MACHINE_END
...@@ -255,6 +255,7 @@ MACHINE_START(NOKIA770, "Nokia 770") ...@@ -255,6 +255,7 @@ MACHINE_START(NOKIA770, "Nokia 770")
.reserve = omap_reserve, .reserve = omap_reserve,
.init_irq = omap1_init_irq, .init_irq = omap1_init_irq,
.init_machine = omap_nokia770_init, .init_machine = omap_nokia770_init,
.init_late = omap1_init_late,
.timer = &omap1_timer, .timer = &omap1_timer,
.restart = omap1_restart, .restart = omap1_restart,
MACHINE_END MACHINE_END
...@@ -574,6 +574,7 @@ MACHINE_START(OMAP_OSK, "TI-OSK") ...@@ -574,6 +574,7 @@ MACHINE_START(OMAP_OSK, "TI-OSK")
.reserve = omap_reserve, .reserve = omap_reserve,
.init_irq = omap1_init_irq, .init_irq = omap1_init_irq,
.init_machine = osk_init, .init_machine = osk_init,
.init_late = omap1_init_late,
.timer = &omap1_timer, .timer = &omap1_timer,
.restart = omap1_restart, .restart = omap1_restart,
MACHINE_END MACHINE_END
...@@ -267,6 +267,7 @@ MACHINE_START(OMAP_PALMTE, "OMAP310 based Palm Tungsten E") ...@@ -267,6 +267,7 @@ MACHINE_START(OMAP_PALMTE, "OMAP310 based Palm Tungsten E")
.reserve = omap_reserve, .reserve = omap_reserve,
.init_irq = omap1_init_irq, .init_irq = omap1_init_irq,
.init_machine = omap_palmte_init, .init_machine = omap_palmte_init,
.init_late = omap1_init_late,
.timer = &omap1_timer, .timer = &omap1_timer,
.restart = omap1_restart, .restart = omap1_restart,
MACHINE_END MACHINE_END
...@@ -313,6 +313,7 @@ MACHINE_START(OMAP_PALMTT, "OMAP1510 based Palm Tungsten|T") ...@@ -313,6 +313,7 @@ MACHINE_START(OMAP_PALMTT, "OMAP1510 based Palm Tungsten|T")
.reserve = omap_reserve, .reserve = omap_reserve,
.init_irq = omap1_init_irq, .init_irq = omap1_init_irq,
.init_machine = omap_palmtt_init, .init_machine = omap_palmtt_init,
.init_late = omap1_init_late,
.timer = &omap1_timer, .timer = &omap1_timer,
.restart = omap1_restart, .restart = omap1_restart,
MACHINE_END MACHINE_END
...@@ -330,6 +330,7 @@ MACHINE_START(OMAP_PALMZ71, "OMAP310 based Palm Zire71") ...@@ -330,6 +330,7 @@ MACHINE_START(OMAP_PALMZ71, "OMAP310 based Palm Zire71")
.reserve = omap_reserve, .reserve = omap_reserve,
.init_irq = omap1_init_irq, .init_irq = omap1_init_irq,
.init_machine = omap_palmz71_init, .init_machine = omap_palmz71_init,
.init_late = omap1_init_late,
.timer = &omap1_timer, .timer = &omap1_timer,
.restart = omap1_restart, .restart = omap1_restart,
MACHINE_END MACHINE_END
...@@ -331,6 +331,7 @@ MACHINE_START(OMAP_PERSEUS2, "OMAP730 Perseus2") ...@@ -331,6 +331,7 @@ MACHINE_START(OMAP_PERSEUS2, "OMAP730 Perseus2")
.reserve = omap_reserve, .reserve = omap_reserve,
.init_irq = omap1_init_irq, .init_irq = omap1_init_irq,
.init_machine = omap_perseus2_init, .init_machine = omap_perseus2_init,
.init_late = omap1_init_late,
.timer = &omap1_timer, .timer = &omap1_timer,
.restart = omap1_restart, .restart = omap1_restart,
MACHINE_END MACHINE_END
...@@ -407,6 +407,7 @@ MACHINE_START(SX1, "OMAP310 based Siemens SX1") ...@@ -407,6 +407,7 @@ MACHINE_START(SX1, "OMAP310 based Siemens SX1")
.reserve = omap_reserve, .reserve = omap_reserve,
.init_irq = omap1_init_irq, .init_irq = omap1_init_irq,
.init_machine = omap_sx1_init, .init_machine = omap_sx1_init,
.init_late = omap1_init_late,
.timer = &omap1_timer, .timer = &omap1_timer,
.restart = omap1_restart, .restart = omap1_restart,
MACHINE_END MACHINE_END
...@@ -294,6 +294,7 @@ MACHINE_START(VOICEBLUE, "VoiceBlue OMAP5910") ...@@ -294,6 +294,7 @@ MACHINE_START(VOICEBLUE, "VoiceBlue OMAP5910")
.reserve = omap_reserve, .reserve = omap_reserve,
.init_irq = omap1_init_irq, .init_irq = omap1_init_irq,
.init_machine = voiceblue_init, .init_machine = voiceblue_init,
.init_late = omap1_init_late,
.timer = &omap1_timer, .timer = &omap1_timer,
.restart = voiceblue_restart, .restart = voiceblue_restart,
MACHINE_END MACHINE_END
...@@ -53,8 +53,18 @@ static inline void omap16xx_map_io(void) ...@@ -53,8 +53,18 @@ static inline void omap16xx_map_io(void)
} }
#endif #endif
#ifdef CONFIG_OMAP_SERIAL_WAKE
int omap_serial_wakeup_init(void);
#else
static inline int omap_serial_wakeup_init(void)
{
return 0;
}
#endif
void omap1_init_early(void); void omap1_init_early(void);
void omap1_init_irq(void); void omap1_init_irq(void);
void omap1_init_late(void);
void omap1_restart(char, const char *); void omap1_restart(char, const char *);
extern void __init omap_check_revision(void); extern void __init omap_check_revision(void);
......
...@@ -137,6 +137,11 @@ void __init omap1_init_early(void) ...@@ -137,6 +137,11 @@ void __init omap1_init_early(void)
omap_init_consistent_dma_size(); omap_init_consistent_dma_size();
} }
void __init omap1_init_late(void)
{
omap_serial_wakeup_init();
}
/* /*
* NOTE: Please use ioremap + __raw_read/write where possible instead of these * NOTE: Please use ioremap + __raw_read/write where possible instead of these
*/ */
......
...@@ -237,7 +237,7 @@ static void __init omap_serial_set_port_wakeup(int gpio_nr) ...@@ -237,7 +237,7 @@ static void __init omap_serial_set_port_wakeup(int gpio_nr)
enable_irq_wake(gpio_to_irq(gpio_nr)); enable_irq_wake(gpio_to_irq(gpio_nr));
} }
static int __init omap_serial_wakeup_init(void) int __init omap_serial_wakeup_init(void)
{ {
if (!cpu_is_omap16xx()) if (!cpu_is_omap16xx())
return 0; return 0;
...@@ -251,7 +251,6 @@ static int __init omap_serial_wakeup_init(void) ...@@ -251,7 +251,6 @@ static int __init omap_serial_wakeup_init(void)
return 0; return 0;
} }
late_initcall(omap_serial_wakeup_init);
#endif /* CONFIG_OMAP_SERIAL_WAKE */ #endif /* CONFIG_OMAP_SERIAL_WAKE */
......
...@@ -303,6 +303,7 @@ MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board") ...@@ -303,6 +303,7 @@ MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board")
.init_irq = omap2_init_irq, .init_irq = omap2_init_irq,
.handle_irq = omap2_intc_handle_irq, .handle_irq = omap2_intc_handle_irq,
.init_machine = omap_2430sdp_init, .init_machine = omap_2430sdp_init,
.init_late = omap2430_init_late,
.timer = &omap2_timer, .timer = &omap2_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -605,6 +605,7 @@ MACHINE_START(OMAP_3430SDP, "OMAP3430 3430SDP board") ...@@ -605,6 +605,7 @@ MACHINE_START(OMAP_3430SDP, "OMAP3430 3430SDP board")
.init_irq = omap3_init_irq, .init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq, .handle_irq = omap3_intc_handle_irq,
.init_machine = omap_3430sdp_init, .init_machine = omap_3430sdp_init,
.init_late = omap3430_init_late,
.timer = &omap3_timer, .timer = &omap3_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -217,6 +217,7 @@ MACHINE_START(OMAP_3630SDP, "OMAP 3630SDP board") ...@@ -217,6 +217,7 @@ MACHINE_START(OMAP_3630SDP, "OMAP 3630SDP board")
.init_irq = omap3_init_irq, .init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq, .handle_irq = omap3_intc_handle_irq,
.init_machine = omap_sdp_init, .init_machine = omap_sdp_init,
.init_late = omap3630_init_late,
.timer = &omap3_timer, .timer = &omap3_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -912,6 +912,7 @@ MACHINE_START(OMAP_4430SDP, "OMAP4430 4430SDP board") ...@@ -912,6 +912,7 @@ MACHINE_START(OMAP_4430SDP, "OMAP4430 4430SDP board")
.init_irq = gic_init_irq, .init_irq = gic_init_irq,
.handle_irq = gic_handle_irq, .handle_irq = gic_handle_irq,
.init_machine = omap_4430sdp_init, .init_machine = omap_4430sdp_init,
.init_late = omap4430_init_late,
.timer = &omap4_timer, .timer = &omap4_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -102,6 +102,7 @@ MACHINE_START(CRANEBOARD, "AM3517/05 CRANEBOARD") ...@@ -102,6 +102,7 @@ MACHINE_START(CRANEBOARD, "AM3517/05 CRANEBOARD")
.init_irq = omap3_init_irq, .init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq, .handle_irq = omap3_intc_handle_irq,
.init_machine = am3517_crane_init, .init_machine = am3517_crane_init,
.init_late = am35xx_init_late,
.timer = &omap3_timer, .timer = &omap3_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -385,6 +385,7 @@ MACHINE_START(OMAP3517EVM, "OMAP3517/AM3517 EVM") ...@@ -385,6 +385,7 @@ MACHINE_START(OMAP3517EVM, "OMAP3517/AM3517 EVM")
.init_irq = omap3_init_irq, .init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq, .handle_irq = omap3_intc_handle_irq,
.init_machine = am3517_evm_init, .init_machine = am3517_evm_init,
.init_late = am35xx_init_late,
.timer = &omap3_timer, .timer = &omap3_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -356,6 +356,7 @@ MACHINE_START(OMAP_APOLLON, "OMAP24xx Apollon") ...@@ -356,6 +356,7 @@ MACHINE_START(OMAP_APOLLON, "OMAP24xx Apollon")
.init_irq = omap2_init_irq, .init_irq = omap2_init_irq,
.handle_irq = omap2_intc_handle_irq, .handle_irq = omap2_intc_handle_irq,
.init_machine = omap_apollon_init, .init_machine = omap_apollon_init,
.init_late = omap2420_init_late,
.timer = &omap2_timer, .timer = &omap2_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -669,6 +669,7 @@ MACHINE_START(CM_T35, "Compulab CM-T35") ...@@ -669,6 +669,7 @@ MACHINE_START(CM_T35, "Compulab CM-T35")
.init_irq = omap3_init_irq, .init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq, .handle_irq = omap3_intc_handle_irq,
.init_machine = cm_t35_init, .init_machine = cm_t35_init,
.init_late = omap35xx_init_late,
.timer = &omap3_timer, .timer = &omap3_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -681,6 +682,7 @@ MACHINE_START(CM_T3730, "Compulab CM-T3730") ...@@ -681,6 +682,7 @@ MACHINE_START(CM_T3730, "Compulab CM-T3730")
.init_irq = omap3_init_irq, .init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq, .handle_irq = omap3_intc_handle_irq,
.init_machine = cm_t3730_init, .init_machine = cm_t3730_init,
.init_late = omap3630_init_late,
.timer = &omap3_timer, .timer = &omap3_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -303,6 +303,7 @@ MACHINE_START(CM_T3517, "Compulab CM-T3517") ...@@ -303,6 +303,7 @@ MACHINE_START(CM_T3517, "Compulab CM-T3517")
.init_irq = omap3_init_irq, .init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq, .handle_irq = omap3_intc_handle_irq,
.init_machine = cm_t3517_init, .init_machine = cm_t3517_init,
.init_late = am35xx_init_late,
.timer = &omap3_timer, .timer = &omap3_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -644,6 +644,7 @@ MACHINE_START(DEVKIT8000, "OMAP3 Devkit8000") ...@@ -644,6 +644,7 @@ MACHINE_START(DEVKIT8000, "OMAP3 Devkit8000")
.init_irq = omap3_init_irq, .init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq, .handle_irq = omap3_intc_handle_irq,
.init_machine = devkit8000_init, .init_machine = devkit8000_init,
.init_late = omap35xx_init_late,
.timer = &omap3_secure_timer, .timer = &omap3_secure_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -125,6 +125,7 @@ DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)") ...@@ -125,6 +125,7 @@ DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)")
.init_irq = omap_init_irq, .init_irq = omap_init_irq,
.handle_irq = gic_handle_irq, .handle_irq = gic_handle_irq,
.init_machine = omap_generic_init, .init_machine = omap_generic_init,
.init_late = omap4430_init_late,
.timer = &omap4_timer, .timer = &omap4_timer,
.dt_compat = omap4_boards_compat, .dt_compat = omap4_boards_compat,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
......
...@@ -398,6 +398,7 @@ MACHINE_START(OMAP_H4, "OMAP2420 H4 board") ...@@ -398,6 +398,7 @@ MACHINE_START(OMAP_H4, "OMAP2420 H4 board")
.init_irq = omap2_init_irq, .init_irq = omap2_init_irq,
.handle_irq = omap2_intc_handle_irq, .handle_irq = omap2_intc_handle_irq,
.init_machine = omap_h4_init, .init_machine = omap_h4_init,
.init_late = omap2420_init_late,
.timer = &omap2_timer, .timer = &omap2_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -650,6 +650,7 @@ MACHINE_START(IGEP0020, "IGEP v2 board") ...@@ -650,6 +650,7 @@ MACHINE_START(IGEP0020, "IGEP v2 board")
.init_irq = omap3_init_irq, .init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq, .handle_irq = omap3_intc_handle_irq,
.init_machine = igep_init, .init_machine = igep_init,
.init_late = omap35xx_init_late,
.timer = &omap3_timer, .timer = &omap3_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -662,6 +663,7 @@ MACHINE_START(IGEP0030, "IGEP OMAP3 module") ...@@ -662,6 +663,7 @@ MACHINE_START(IGEP0030, "IGEP OMAP3 module")
.init_irq = omap3_init_irq, .init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq, .handle_irq = omap3_intc_handle_irq,
.init_machine = igep_init, .init_machine = igep_init,
.init_late = omap35xx_init_late,
.timer = &omap3_timer, .timer = &omap3_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -442,6 +442,7 @@ MACHINE_START(OMAP_LDP, "OMAP LDP board") ...@@ -442,6 +442,7 @@ MACHINE_START(OMAP_LDP, "OMAP LDP board")
.init_irq = omap3_init_irq, .init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq, .handle_irq = omap3_intc_handle_irq,
.init_machine = omap_ldp_init, .init_machine = omap_ldp_init,
.init_late = omap3430_init_late,
.timer = &omap3_timer, .timer = &omap3_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -694,6 +694,7 @@ MACHINE_START(NOKIA_N800, "Nokia N800") ...@@ -694,6 +694,7 @@ MACHINE_START(NOKIA_N800, "Nokia N800")
.init_irq = omap2_init_irq, .init_irq = omap2_init_irq,
.handle_irq = omap2_intc_handle_irq, .handle_irq = omap2_intc_handle_irq,
.init_machine = n8x0_init_machine, .init_machine = n8x0_init_machine,
.init_late = omap2420_init_late,
.timer = &omap2_timer, .timer = &omap2_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -706,6 +707,7 @@ MACHINE_START(NOKIA_N810, "Nokia N810") ...@@ -706,6 +707,7 @@ MACHINE_START(NOKIA_N810, "Nokia N810")
.init_irq = omap2_init_irq, .init_irq = omap2_init_irq,
.handle_irq = omap2_intc_handle_irq, .handle_irq = omap2_intc_handle_irq,
.init_machine = n8x0_init_machine, .init_machine = n8x0_init_machine,
.init_late = omap2420_init_late,
.timer = &omap2_timer, .timer = &omap2_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -718,6 +720,7 @@ MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX") ...@@ -718,6 +720,7 @@ MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX")
.init_irq = omap2_init_irq, .init_irq = omap2_init_irq,
.handle_irq = omap2_intc_handle_irq, .handle_irq = omap2_intc_handle_irq,
.init_machine = n8x0_init_machine, .init_machine = n8x0_init_machine,
.init_late = omap2420_init_late,
.timer = &omap2_timer, .timer = &omap2_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -543,6 +543,7 @@ MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board") ...@@ -543,6 +543,7 @@ MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")
.init_irq = omap3_init_irq, .init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq, .handle_irq = omap3_intc_handle_irq,
.init_machine = omap3_beagle_init, .init_machine = omap3_beagle_init,
.init_late = omap3_init_late,
.timer = &omap3_secure_timer, .timer = &omap3_secure_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -671,6 +671,7 @@ MACHINE_START(OMAP3EVM, "OMAP3 EVM") ...@@ -671,6 +671,7 @@ MACHINE_START(OMAP3EVM, "OMAP3 EVM")
.init_irq = omap3_init_irq, .init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq, .handle_irq = omap3_intc_handle_irq,
.init_machine = omap3_evm_init, .init_machine = omap3_evm_init,
.init_late = omap35xx_init_late,
.timer = &omap3_timer, .timer = &omap3_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -242,6 +242,7 @@ MACHINE_START(OMAP3_TORPEDO, "Logic OMAP3 Torpedo board") ...@@ -242,6 +242,7 @@ MACHINE_START(OMAP3_TORPEDO, "Logic OMAP3 Torpedo board")
.init_irq = omap3_init_irq, .init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq, .handle_irq = omap3_intc_handle_irq,
.init_machine = omap3logic_init, .init_machine = omap3logic_init,
.init_late = omap35xx_init_late,
.timer = &omap3_timer, .timer = &omap3_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -254,6 +255,7 @@ MACHINE_START(OMAP3530_LV_SOM, "OMAP Logic 3530 LV SOM board") ...@@ -254,6 +255,7 @@ MACHINE_START(OMAP3530_LV_SOM, "OMAP Logic 3530 LV SOM board")
.init_irq = omap3_init_irq, .init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq, .handle_irq = omap3_intc_handle_irq,
.init_machine = omap3logic_init, .init_machine = omap3logic_init,
.init_late = omap35xx_init_late,
.timer = &omap3_timer, .timer = &omap3_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
...@@ -622,6 +622,7 @@ MACHINE_START(OMAP3_PANDORA, "Pandora Handheld Console") ...@@ -622,6 +622,7 @@ MACHINE_START(OMAP3_PANDORA, "Pandora Handheld Console")
.init_irq = omap3_init_irq, .init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq, .handle_irq = omap3_intc_handle_irq,
.init_machine = omap3pandora_init, .init_machine = omap3pandora_init,
.init_late = omap35xx_init_late,
.timer = &omap3_timer, .timer = &omap3_timer,
.restart = omap_prcm_restart, .restart = omap_prcm_restart,
MACHINE_END MACHINE_END
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment