2010-02-05 14:14:49 +03:00
# ifndef __ARCH_MACH_COMMON_H
# define __ARCH_MACH_COMMON_H
2012-03-06 12:36:14 +04:00
extern void shmobile_earlytimer_init ( void ) ;
2012-03-28 14:22:30 +04:00
extern void shmobile_setup_delay ( unsigned int max_cpu_core_mhz ,
2011-09-08 16:15:22 +04:00
unsigned int mult , unsigned int div ) ;
2014-03-06 07:28:24 +04:00
extern void shmobile_init_delay ( void ) ;
2012-01-10 23:44:19 +04:00
struct twd_local_timer ;
2010-02-08 14:02:54 +03:00
extern void shmobile_setup_console ( void ) ;
2013-06-10 13:19:36 +04:00
extern void shmobile_boot_vector ( void ) ;
extern unsigned long shmobile_boot_fn ;
extern unsigned long shmobile_boot_arg ;
2013-08-08 02:14:07 +04:00
extern unsigned long shmobile_boot_size ;
2013-07-31 22:38:18 +04:00
extern void shmobile_smp_boot ( void ) ;
extern void shmobile_smp_sleep ( void ) ;
extern void shmobile_smp_hook ( unsigned int cpu , unsigned long fn ,
unsigned long arg ) ;
2013-08-08 02:13:30 +04:00
extern int shmobile_smp_cpu_disable ( unsigned int cpu ) ;
2013-08-08 02:13:58 +04:00
extern void shmobile_invalidate_start ( void ) ;
2013-06-10 13:19:46 +04:00
extern void shmobile_boot_scu ( void ) ;
2013-07-31 11:07:12 +04:00
extern void shmobile_smp_scu_prepare_cpus ( unsigned int max_cpus ) ;
2013-07-31 11:07:49 +04:00
extern void shmobile_smp_scu_cpu_die ( unsigned int cpu ) ;
extern int shmobile_smp_scu_cpu_kill ( unsigned int cpu ) ;
2013-08-29 03:21:58 +04:00
extern void shmobile_smp_apmu_prepare_cpus ( unsigned int max_cpus ) ;
extern int shmobile_smp_apmu_boot_secondary ( unsigned int cpu ,
struct task_struct * idle ) ;
extern void shmobile_smp_apmu_cpu_die ( unsigned int cpu ) ;
extern int shmobile_smp_apmu_cpu_kill ( unsigned int cpu ) ;
2010-05-20 18:45:03 +04:00
struct clk ;
2012-02-29 16:41:30 +04:00
extern int shmobile_clk_init ( void ) ;
2010-12-28 11:27:01 +03:00
extern void shmobile_handle_irq_intc ( struct pt_regs * ) ;
2011-04-28 21:23:28 +04:00
extern struct platform_suspend_ops shmobile_suspend_ops ;
2011-11-11 09:01:30 +04:00
struct cpuidle_driver ;
2012-08-15 22:58:19 +04:00
extern void shmobile_cpuidle_set_driver ( struct cpuidle_driver * drv ) ;
2010-05-12 18:21:24 +04:00
2012-04-26 17:58:41 +04:00
# ifdef CONFIG_SUSPEND
int shmobile_suspend_init ( void ) ;
2014-05-29 11:24:27 +04:00
void shmobile_smp_apmu_suspend_init ( void ) ;
2012-04-26 17:58:41 +04:00
# else
static inline int shmobile_suspend_init ( void ) { return 0 ; }
2014-06-16 15:21:13 +04:00
static inline void shmobile_smp_apmu_suspend_init ( void ) { }
2012-04-26 17:58:41 +04:00
# endif
# ifdef CONFIG_CPU_IDLE
int shmobile_cpuidle_init ( void ) ;
# else
static inline int shmobile_cpuidle_init ( void ) { return 0 ; }
# endif
2014-06-03 16:02:45 +04:00
# ifdef CONFIG_CPU_FREQ
int shmobile_cpufreq_init ( void ) ;
# else
static inline int shmobile_cpufreq_init ( void ) { return 0 ; }
# endif
2013-02-13 17:47:17 +04:00
extern void __iomem * shmobile_scu_base ;
2011-09-08 16:15:22 +04:00
2012-09-24 02:36:35 +04:00
static inline void __init shmobile_init_late ( void )
2012-08-15 22:57:27 +04:00
{
shmobile_suspend_init ( ) ;
shmobile_cpuidle_init ( ) ;
2014-06-03 16:02:45 +04:00
shmobile_cpufreq_init ( ) ;
2012-08-15 22:57:27 +04:00
}
2010-02-05 14:14:49 +03:00
# endif /* __ARCH_MACH_COMMON_H */