1#ifndef __ARCH_MACH_COMMON_H 2#define __ARCH_MACH_COMMON_H 3 4extern void shmobile_earlytimer_init(void); 5extern void shmobile_setup_delay(unsigned int max_cpu_core_mhz, 6 unsigned int mult, unsigned int div); 7struct twd_local_timer; 8extern void shmobile_setup_console(void); 9extern void shmobile_boot_vector(void); 10extern unsigned long shmobile_boot_fn; 11extern unsigned long shmobile_boot_arg; 12extern void shmobile_smp_boot(void); 13extern void shmobile_smp_sleep(void); 14extern void shmobile_smp_hook(unsigned int cpu, unsigned long fn, 15 unsigned long arg); 16extern void shmobile_boot_scu(void); 17extern void shmobile_smp_scu_prepare_cpus(unsigned int max_cpus); 18extern int shmobile_smp_scu_boot_secondary(unsigned int cpu, 19 struct task_struct *idle); 20extern void shmobile_smp_scu_cpu_die(unsigned int cpu); 21extern int shmobile_smp_scu_cpu_kill(unsigned int cpu); 22struct clk; 23extern int shmobile_clk_init(void); 24extern void shmobile_handle_irq_intc(struct pt_regs *); 25extern struct platform_suspend_ops shmobile_suspend_ops; 26struct cpuidle_driver; 27extern void shmobile_cpuidle_set_driver(struct cpuidle_driver *drv); 28 29#ifdef CONFIG_SUSPEND 30int shmobile_suspend_init(void); 31#else 32static inline int shmobile_suspend_init(void) { return 0; } 33#endif 34 35#ifdef CONFIG_CPU_IDLE 36int shmobile_cpuidle_init(void); 37#else 38static inline int shmobile_cpuidle_init(void) { return 0; } 39#endif 40 41extern void __iomem *shmobile_scu_base; 42extern void shmobile_smp_init_cpus(unsigned int ncores); 43 44static inline void __init shmobile_init_late(void) 45{ 46 shmobile_suspend_init(); 47 shmobile_cpuidle_init(); 48} 49 50#endif /* __ARCH_MACH_COMMON_H */ 51