| /* 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 |