34 lines
		
	
	
		
			561 B
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			561 B
		
	
	
	
		
			ArmAsm
		
	
	
	
| /*
 | |
|  * Copyright 2016 NXP Semiconductor.
 | |
|  * Author: Wang Dongsheng <dongsheng.wang@freescale.com>
 | |
|  *
 | |
|  * SPDX-License-Identifier:	GPL-2.0+
 | |
|  */
 | |
| 
 | |
| #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
 |