License cleanup: add SPDX GPL-2.0 license identifier to files with no license
[linux-block.git] / arch / arm / include / asm / smp_scu.h
CommitLineData
b2441318 1/* SPDX-License-Identifier: GPL-2.0 */
4b17244c
CM
2#ifndef __ASMARM_ARCH_SCU_H
3#define __ASMARM_ARCH_SCU_H
4
292ec42a
RK
5#define SCU_PM_NORMAL 0
6#define SCU_PM_DORMANT 2
7#define SCU_PM_POWEROFF 3
8
9#ifndef __ASSEMBLER__
e9d6b335 10
fed3c155 11#include <linux/errno.h>
e9d6b335
HD
12#include <asm/cputype.h>
13
14static inline bool scu_a9_has_base(void)
15{
af040ffc 16 return read_cpuid_part() == ARM_CPU_PART_CORTEX_A9;
e9d6b335
HD
17}
18
19static inline unsigned long scu_a9_get_base(void)
20{
21 unsigned long pa;
22
23 asm("mrc p15, 4, %0, c15, c0, 0" : "=r" (pa));
24
25 return pa;
26}
27
2abc75a8 28#ifdef CONFIG_HAVE_ARM_SCU
a8cbcd92 29unsigned int scu_get_core_count(void __iomem *);
292ec42a 30int scu_power_mode(void __iomem *, unsigned int);
2abc75a8
NM
31#else
32static inline unsigned int scu_get_core_count(void __iomem *scu_base)
33{
34 return 0;
35}
36static inline int scu_power_mode(void __iomem *scu_base, unsigned int mode)
37{
38 return -EINVAL;
39}
40#endif
eed88123 41
2abc75a8 42#if defined(CONFIG_SMP) && defined(CONFIG_HAVE_ARM_SCU)
eed88123
RH
43void scu_enable(void __iomem *scu_base);
44#else
45static inline void scu_enable(void __iomem *scu_base) {}
46#endif
47
292ec42a 48#endif
4b17244c
CM
49
50#endif