xref: /rk3399_ARM-atf/plat/rockchip/common/plat_topology.c (revision 82cb2c1ad9897473743f08437d0a3995bed561b9)
16fba6e04STony Xie /*
26fba6e04STony Xie  * Copyright (c) 2013-2016, ARM Limited and Contributors. All rights reserved.
36fba6e04STony Xie  *
4*82cb2c1aSdp-arm  * SPDX-License-Identifier: BSD-3-Clause
56fba6e04STony Xie  */
66fba6e04STony Xie 
76fba6e04STony Xie #include <arch.h>
86fba6e04STony Xie #include <platform_def.h>
96fba6e04STony Xie #include <plat_private.h>
106fba6e04STony Xie #include <psci.h>
116fba6e04STony Xie 
126fba6e04STony Xie /*******************************************************************************
136fba6e04STony Xie  * This function returns the RockChip default topology tree information.
146fba6e04STony Xie  ******************************************************************************/
156fba6e04STony Xie const unsigned char *plat_get_power_domain_tree_desc(void)
166fba6e04STony Xie {
176fba6e04STony Xie 	return rockchip_power_domain_tree_desc;
186fba6e04STony Xie }
196fba6e04STony Xie 
206fba6e04STony Xie int plat_core_pos_by_mpidr(u_register_t mpidr)
216fba6e04STony Xie {
226fba6e04STony Xie 	unsigned int cluster_id, cpu_id;
236fba6e04STony Xie 
249ec78bdfSTony Xie 	cpu_id = mpidr & MPIDR_AFFLVL_MASK;
259ec78bdfSTony Xie 	cluster_id = mpidr & MPIDR_CLUSTER_MASK;
266fba6e04STony Xie 
279ec78bdfSTony Xie 	cpu_id += (cluster_id >> PLAT_RK_CLST_TO_CPUID_SHIFT);
289ec78bdfSTony Xie 
299ec78bdfSTony Xie 	if (cpu_id >= PLATFORM_CORE_COUNT)
306fba6e04STony Xie 		return -1;
316fba6e04STony Xie 
329ec78bdfSTony Xie 	return cpu_id;
336fba6e04STony Xie }
34