// SPDX-License-Identifier: BSD-2-Clause
/*
 * Copyright 2019 NXP
 */

#include <imx.h>
#include <io.h>
#include <mm/core_mmu.h>
#include <mm/core_memprot.h>

uint32_t imx_get_src_gpr(int cpu)
{
	vaddr_t va = core_mmu_get_va(SRC_BASE, MEM_AREA_IO_SEC);

	if (soc_is_imx7ds())
		return io_read32(va + SRC_GPR1_MX7 + cpu * 8 + 4);
	else
		return io_read32(va + SRC_GPR1 + cpu * 8 + 4);
}

void imx_set_src_gpr(int cpu, uint32_t val)
{
	vaddr_t va = core_mmu_get_va(SRC_BASE, MEM_AREA_IO_SEC);

	if (soc_is_imx7ds())
		io_write32(va + SRC_GPR1_MX7 + cpu * 8 + 4, val);
	else
		io_write32(va + SRC_GPR1 + cpu * 8 + 4, val);
}
