summaryrefslogtreecommitdiff
path: root/arch/arm/mach-imx/mx7/psci.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-imx/mx7/psci.S')
-rw-r--r--arch/arm/mach-imx/mx7/psci.S39
1 files changed, 39 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/mx7/psci.S b/arch/arm/mach-imx/mx7/psci.S
new file mode 100644
index 0000000000..96e88d6184
--- /dev/null
+++ b/arch/arm/mach-imx/mx7/psci.S
@@ -0,0 +1,39 @@
+#include <config.h>
+#include <linux/linkage.h>
+
+#include <asm/armv7.h>
+#include <asm/arch-armv7/generictimer.h>
+#include <asm/psci.h>
+
+ .pushsection ._secure.text, "ax"
+
+ .arch_extension sec
+
+.globl psci_cpu_on
+psci_cpu_on:
+ push {r4, r5, lr}
+
+ mov r4, r0
+ mov r5, r1
+ mov r0, r1
+ mov r1, r2
+ bl psci_save_target_pc
+
+ mov r0, r4
+ mov r1, r5
+ ldr r2, =psci_cpu_entry
+ bl imx_cpu_on
+
+ pop {r4, r5, pc}
+
+.globl psci_cpu_off
+psci_cpu_off:
+
+ bl psci_cpu_off_common
+ bl psci_get_cpu_id
+ bl imx_cpu_off
+
+1: wfi
+ b 1b
+
+ .popsection