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