^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #ifndef __ARCH_MACH_COMMON_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #define __ARCH_MACH_COMMON_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) extern void shmobile_init_delay(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) extern void shmobile_boot_vector(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) extern unsigned long shmobile_boot_fn;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) extern unsigned long shmobile_boot_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) extern void shmobile_boot_vector_gen2(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) extern unsigned long shmobile_boot_fn_gen2;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) extern unsigned long shmobile_boot_cpu_gen2;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) extern unsigned long shmobile_boot_size_gen2;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) extern void shmobile_smp_boot(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) extern void shmobile_smp_sleep(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) extern void shmobile_smp_hook(unsigned int cpu, unsigned long fn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) unsigned long arg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) extern bool shmobile_smp_cpu_can_disable(unsigned int cpu);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) extern void shmobile_boot_apmu(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) extern void shmobile_boot_scu(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) extern void shmobile_smp_scu_prepare_cpus(phys_addr_t scu_base_phys,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) unsigned int max_cpus);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) extern void shmobile_smp_scu_cpu_die(unsigned int cpu);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) extern int shmobile_smp_scu_cpu_kill(unsigned int cpu);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) extern struct platform_suspend_ops shmobile_suspend_ops;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) #ifdef CONFIG_SUSPEND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) int shmobile_suspend_init(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) void shmobile_smp_apmu_suspend_init(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) static inline int shmobile_suspend_init(void) { return 0; }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) static inline void shmobile_smp_apmu_suspend_init(void) { }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) static inline void __init shmobile_init_late(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) shmobile_suspend_init();
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) #endif /* __ARCH_MACH_COMMON_H */