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