7a3eed6f98530bb491a8a5f171c82b2061d903cc
[firefly-linux-kernel-4.4.55.git] / include / linux / rockchip / psci.h
1 #ifndef __ROCKCHIP_PSCI_H
2 #define __ROCKCHIP_PSCI_H
3
4 #define SEC_REG_RD (0x0)
5 #define SEC_REG_WR (0x1)
6
7 /*
8  * trust firmware verison
9  */
10 #define RKTF_VER_MAJOR(ver)             (((ver) >> 16) & 0xffff)
11 #define RKTF_VER_MINOR(ver)             ((ver) & 0xffff)
12
13 /*
14  * pcsi smc funciton id
15  */
16 #define PSCI_SIP_RKTF_VER               (0x82000001)
17 #define PSCI_SIP_ACCESS_REG             (0x82000002)
18 #define PSCI_SIP_ACCESS_REG64           (0xc2000002)
19 #define PSCI_SIP_SUSPEND_WR_CTRBITS     (0x82000003)
20 #define PSCI_SIP_PENDING_CPUS           (0x82000004)
21 #define PSCI_SIP_UARTDBG_CFG            (0x82000005)
22 #define PSCI_SIP_UARTDBG_CFG64          (0xc2000005)
23 #define PSCI_SIP_EL3FIQ_CFG             (0x82000006)
24 #define PSCI_SIP_SMEM_CONFIG            (0x82000007)
25
26 /*
27  * pcsi smc funciton err code
28  */
29 #define PSCI_SMC_FUNC_UNK               0xffffffff
30
31 /*
32  * define PSCI_SIP_UARTDBG_CFG call type
33  */
34 #define UARTDBG_CFG_INIT                0xf0
35 #define UARTDBG_CFG_OSHDL_TO_OS         0xf1
36 #define UARTDBG_CFG_OSHDL_CPUSW         0xf3
37 #define UARTDBG_CFG_OSHDL_DEBUG_ENABLE  0xf4
38 #define UARTDBG_CFG_OSHDL_DEBUG_DISABLE 0xf5
39
40 /*
41  * rockchip psci function call interface
42  */
43
44 u32 rockchip_psci_smc_read(u32 function_id, u32 arg0, u32 arg1, u32 arg2,
45                            u32 *val);
46 u32 rockchip_psci_smc_write(u32 function_id, u32 arg0, u32 arg1, u32 arg2);
47
48 u32 rockchip_psci_smc_get_tf_ver(void);
49 u32 rockchip_secure_reg_read(u32 addr_phy);
50 u32 rockchip_secure_reg_write(u32 addr_phy, u32 val);
51
52 #ifdef CONFIG_ARM64
53 u32 rockchip_psci_smc_write64(u64 function_id, u64 arg0, u64 arg1, u64 arg2);
54 u32 rockchip_psci_smc_read64(u64 function_id, u64 arg0, u64 arg1, u64 arg2,
55                              u64 *val);
56 u64 rockchip_secure_reg_read64(u64 addr_phy);
57 u32 rockchip_secure_reg_write64(u64 addr_phy, u64 val);
58
59 void psci_fiq_debugger_uart_irq_tf_cb(u64 sp_el1, u64 offset);
60 #endif
61
62 u32 psci_fiq_debugger_switch_cpu(u32 cpu);
63 void psci_fiq_debugger_uart_irq_tf_init(u32 irq_id, void *callback);
64 void psci_fiq_debugger_enable_debug(bool val);
65
66 #if defined(CONFIG_ARM_PSCI) || defined(CONFIG_ARM64)
67 u32 psci_set_memory_secure(bool val);
68 #else
69 static inline u32 psci_set_memory_secure(bool val)
70 {
71         return 0;
72 }
73 #endif
74
75 #endif /* __ROCKCHIP_PSCI_H */