/*
 * (C) Copyright 2015 Freescale Semiconductor
 *
 * SPDX-License-Identifier:	GPL-2.0+
 *
 * Extracted from gic_64.S
 */

#include <config.h>
#include <linux/linkage.h>
#include <asm/macro.h>

/*************************************************************************
 *
 * void ccn504_add_masters_to_dvm(CCI_MN_BASE, CCI_MN_RNF_NODEID_LIST,
 * 				  CCI_MN_DVM_DOMAIN_CTL_SET);
 *
 * Add fully-coherent masters to DVM domain
 *
 *************************************************************************/
ENTRY(ccn504_add_masters_to_dvm)
	/*
	 * x0: CCI_MN_BASE
	 * x1: CCI_MN_RNF_NODEID_LIST
	 * x2: CCI_MN_DVM_DOMAIN_CTL_SET
	 */

	/* Add fully-coherent masters to DVM domain */
	ldr	x9, [x0, x1]
	str	x9, [x0, x2]
1:	ldr	x10, [x0, x2]
	mvn	x11, x10
	tst	x11, x10 /* Wait for domain addition to complete */
	b.ne	1b

	ret
ENDPROC(ccn504_add_masters_to_dvm)

/*************************************************************************
 *
 * void ccn504_set_qos(CCI_Sx_QOS_CONTROL_BASE, QoS Value);
 *
 * Initialize QoS settings for AR/AW override.
 * Right now, this function sets the same QoS value for all RN-I ports
 *
 *************************************************************************/
ENTRY(ccn504_set_qos)
	/*
	 * x0: CCI_Sx_QOS_CONTROL_BASE
	 * x1: QoS Value
	 */

	/* Set all RN-I ports to QoS value denoted by x1 */
	ldr	x9, [x0]
	mov	x10, x1
	orr	x9, x9, x10
	str	x9, [x0]

	ret
ENDPROC(ccn504_set_qos)

