Linux-libre 5.7.5-gnu
[librecmc/linux-libre.git] / arch / arm / mach-highbank / smc.S
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Copied from omap44xx-smc.S Copyright (C) 2010 Texas Instruments, Inc.
4  * Copyright 2012 Calxeda, Inc.
5  */
6
7 #include <linux/linkage.h>
8
9 /*
10  * This is common routine to manage secure monitor API
11  * used to modify the PL310 secure registers.
12  * 'r0' contains the value to be modified and 'r12' contains
13  * the monitor API number.
14  * Function signature : void highbank_smc1(u32 fn, u32 arg)
15  */
16         .arch armv7-a
17         .arch_extension sec
18 ENTRY(highbank_smc1)
19         stmfd   sp!, {r4-r11, lr}
20         mov     r12, r0
21         mov     r0, r1
22         dsb
23         smc     #0
24         ldmfd   sp!, {r4-r11, pc}
25 ENDPROC(highbank_smc1)