33 lines
561 B
ArmAsm
33 lines
561 B
ArmAsm
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
||
|
/*
|
||
|
* Copyright 2016 NXP Semiconductor.
|
||
|
* Author: Wang Dongsheng <dongsheng.wang@freescale.com>
|
||
|
*/
|
||
|
|
||
|
#include <config.h>
|
||
|
#include <linux/linkage.h>
|
||
|
|
||
|
#include <asm/armv7.h>
|
||
|
#include <asm/psci.h>
|
||
|
|
||
|
.pushsection ._secure.text, "ax"
|
||
|
|
||
|
.arch_extension sec
|
||
|
|
||
|
.align 5
|
||
|
|
||
|
.globl psci_system_off
|
||
|
psci_system_off:
|
||
|
@ Get QIXIS base address
|
||
|
movw r1, #(QIXIS_BASE & 0xffff)
|
||
|
movt r1, #(QIXIS_BASE >> 16)
|
||
|
|
||
|
ldrb r2, [r1, #QIXIS_PWR_CTL]
|
||
|
orr r2, r2, #QIXIS_PWR_CTL_POWEROFF
|
||
|
strb r2, [r1, #QIXIS_PWR_CTL]
|
||
|
|
||
|
1: wfi
|
||
|
b 1b
|
||
|
|
||
|
.popsection
|