162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef __ARCH_MACH_COMMON_H
362306a36Sopenharmony_ci#define __ARCH_MACH_COMMON_H
462306a36Sopenharmony_ci
562306a36Sopenharmony_ciextern void shmobile_init_delay(void);
662306a36Sopenharmony_ciextern void shmobile_boot_vector(void);
762306a36Sopenharmony_ciextern unsigned long shmobile_boot_fn;
862306a36Sopenharmony_ciextern unsigned long shmobile_boot_size;
962306a36Sopenharmony_ciextern void shmobile_boot_vector_gen2(void);
1062306a36Sopenharmony_ciextern unsigned long shmobile_boot_fn_gen2;
1162306a36Sopenharmony_ciextern unsigned long shmobile_boot_cpu_gen2;
1262306a36Sopenharmony_ciextern unsigned long shmobile_boot_size_gen2;
1362306a36Sopenharmony_ciextern void shmobile_smp_boot(void);
1462306a36Sopenharmony_ciextern void shmobile_smp_sleep(void);
1562306a36Sopenharmony_ciextern void shmobile_smp_hook(unsigned int cpu, unsigned long fn,
1662306a36Sopenharmony_ci			      unsigned long arg);
1762306a36Sopenharmony_ciextern bool shmobile_smp_cpu_can_disable(unsigned int cpu);
1862306a36Sopenharmony_ciextern void shmobile_boot_apmu(void);
1962306a36Sopenharmony_ciextern void shmobile_boot_scu(void);
2062306a36Sopenharmony_ciextern void shmobile_smp_scu_prepare_cpus(phys_addr_t scu_base_phys,
2162306a36Sopenharmony_ci					  unsigned int max_cpus);
2262306a36Sopenharmony_ciextern void shmobile_smp_scu_cpu_die(unsigned int cpu);
2362306a36Sopenharmony_ciextern int shmobile_smp_scu_cpu_kill(unsigned int cpu);
2462306a36Sopenharmony_ciextern struct platform_suspend_ops shmobile_suspend_ops;
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci#ifdef CONFIG_SUSPEND
2762306a36Sopenharmony_ciint shmobile_suspend_init(void);
2862306a36Sopenharmony_civoid shmobile_smp_apmu_suspend_init(void);
2962306a36Sopenharmony_ci#else
3062306a36Sopenharmony_cistatic inline int shmobile_suspend_init(void) { return 0; }
3162306a36Sopenharmony_cistatic inline void shmobile_smp_apmu_suspend_init(void) { }
3262306a36Sopenharmony_ci#endif
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_cistatic inline void __init shmobile_init_late(void)
3562306a36Sopenharmony_ci{
3662306a36Sopenharmony_ci	shmobile_suspend_init();
3762306a36Sopenharmony_ci}
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci#endif /* __ARCH_MACH_COMMON_H */
40