arm64: dts: rockchip: amend usb-otg related nodes for rk3368-tb
[firefly-linux-kernel-4.4.55.git] / arch / arm64 / kernel / smccc-call.S
1 /*
2  * Copyright (c) 2015, Linaro Limited
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License Version 2 as
6  * published by the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  */
14 #include <linux/linkage.h>
15 #include <asm/asm-offsets.h>
16
17         .macro SMCCC instr
18         .cfi_startproc
19         \instr  #0
20         ldr     x4, [sp]
21         stp     x0, x1, [x4, #ARM_SMCCC_RES_X0_OFFS]
22         stp     x2, x3, [x4, #ARM_SMCCC_RES_X2_OFFS]
23         ret
24         .cfi_endproc
25         .endm
26
27 /*
28  * void arm_smccc_smc(unsigned long a0, unsigned long a1, unsigned long a2,
29  *                unsigned long a3, unsigned long a4, unsigned long a5,
30  *                unsigned long a6, unsigned long a7, struct arm_smccc_res *res)
31  */
32 ENTRY(arm_smccc_smc)
33         SMCCC   smc
34 ENDPROC(arm_smccc_smc)
35
36 /*
37  * void arm_smccc_hvc(unsigned long a0, unsigned long a1, unsigned long a2,
38  *                unsigned long a3, unsigned long a4, unsigned long a5,
39  *                unsigned long a6, unsigned long a7, struct arm_smccc_res *res)
40  */
41 ENTRY(arm_smccc_hvc)
42         SMCCC   hvc
43 ENDPROC(arm_smccc_hvc)