Linux 5.6.13
[linux/fpc-iii.git] / arch / arm / mach-exynos / smc.h
blob5c30feb8f07d9e34093e3f01ada566137ccf16e2
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3 * Copyright (c) 2012 Samsung Electronics.
5 * Exynos - SMC Call
6 */
8 #ifndef __ASM_ARCH_EXYNOS_SMC_H
9 #define __ASM_ARCH_EXYNOS_SMC_H
11 #define SMC_CMD_INIT (-1)
12 #define SMC_CMD_INFO (-2)
13 /* For Power Management */
14 #define SMC_CMD_SLEEP (-3)
15 #define SMC_CMD_CPU1BOOT (-4)
16 #define SMC_CMD_CPU0AFTR (-5)
17 #define SMC_CMD_SAVE (-6)
18 #define SMC_CMD_SHUTDOWN (-7)
19 /* For CP15 Access */
20 #define SMC_CMD_C15RESUME (-11)
21 /* For L2 Cache Access */
22 #define SMC_CMD_L2X0CTRL (-21)
23 #define SMC_CMD_L2X0SETUP1 (-22)
24 #define SMC_CMD_L2X0SETUP2 (-23)
25 #define SMC_CMD_L2X0INVALL (-24)
26 #define SMC_CMD_L2X0DEBUG (-25)
28 /* For Accessing CP15/SFR (General) */
29 #define SMC_CMD_REG (-101)
31 /* defines for SMC_CMD_REG */
32 #define SMC_REG_CLASS_SFR_W (0x1 << 30)
33 #define SMC_REG_ID_SFR_W(addr) (SMC_REG_CLASS_SFR_W | ((addr) >> 2))
35 #ifndef __ASSEMBLY__
37 extern void exynos_smc(u32 cmd, u32 arg1, u32 arg2, u32 arg3);
39 #endif /* __ASSEMBLY__ */
41 /* op type for SMC_CMD_SAVE and SMC_CMD_SHUTDOWN */
42 #define OP_TYPE_CORE 0x0
43 #define OP_TYPE_CLUSTER 0x1
45 /* Power State required for SMC_CMD_SAVE and SMC_CMD_SHUTDOWN */
46 #define SMC_POWERSTATE_IDLE 0x1
48 #endif