xref: /rk3399_ARM-atf/plat/rockchip/common/plat_topology.c (revision 09d40e0e08283a249e7dce0e106c07c5141f9b7e)
16fba6e04STony Xie /*
26fba6e04STony Xie  * Copyright (c) 2013-2016, ARM Limited and Contributors. All rights reserved.
36fba6e04STony Xie  *
482cb2c1aSdp-arm  * SPDX-License-Identifier: BSD-3-Clause
56fba6e04STony Xie  */
66fba6e04STony Xie 
7ee1ebbd1SIsla Mitchell #include <platform_def.h>
8*09d40e0eSAntonio Nino Diaz 
9*09d40e0eSAntonio Nino Diaz #include <arch.h>
10*09d40e0eSAntonio Nino Diaz #include <lib/psci/psci.h>
11*09d40e0eSAntonio Nino Diaz 
12*09d40e0eSAntonio Nino Diaz #include <plat_private.h>
136fba6e04STony Xie 
146fba6e04STony Xie /*******************************************************************************
156fba6e04STony Xie  * This function returns the RockChip default topology tree information.
166fba6e04STony Xie  ******************************************************************************/
176fba6e04STony Xie const unsigned char *plat_get_power_domain_tree_desc(void)
186fba6e04STony Xie {
196fba6e04STony Xie 	return rockchip_power_domain_tree_desc;
206fba6e04STony Xie }
216fba6e04STony Xie 
226fba6e04STony Xie int plat_core_pos_by_mpidr(u_register_t mpidr)
236fba6e04STony Xie {
246fba6e04STony Xie 	unsigned int cluster_id, cpu_id;
256fba6e04STony Xie 
269ec78bdfSTony Xie 	cpu_id = mpidr & MPIDR_AFFLVL_MASK;
279ec78bdfSTony Xie 	cluster_id = mpidr & MPIDR_CLUSTER_MASK;
286fba6e04STony Xie 
299ec78bdfSTony Xie 	cpu_id += (cluster_id >> PLAT_RK_CLST_TO_CPUID_SHIFT);
309ec78bdfSTony Xie 
319ec78bdfSTony Xie 	if (cpu_id >= PLATFORM_CORE_COUNT)
326fba6e04STony Xie 		return -1;
336fba6e04STony Xie 
349ec78bdfSTony Xie 	return cpu_id;
356fba6e04STony Xie }
36