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