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
 |