aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChander Kashyap <chander.kashyap@linaro.org>2013-06-18 11:29:34 -0400
committerKukjin Kim <kgene.kim@samsung.com>2013-06-18 15:09:17 -0400
commit1897d2f32fef9cb5caa9951b2cdc79b05bfb512d (patch)
tree5714c7fdbe7a02b8d5f6cfd770a2da6d356e956f
parente6c21cbab5d6ac410676b9db36b9f1915a15a8d9 (diff)
ARM: dts: list the CPU nodes for EXYNOS5250
Instead of having to specify the number for CPUs in EXYNOS5250 in platsmp.c file, let the number of CPUs be determined by having this information listed in EXYNOS5250 device tree file. Signed-off-by: Chander Kashyap <chander.kashyap@linaro.org> Reviewed-by: Tomasz Figa <t.figa@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
-rw-r--r--arch/arm/boot/dts/exynos5250.dtsi16
-rw-r--r--arch/arm/mach-exynos/platsmp.c10
2 files changed, 23 insertions, 3 deletions
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi
index 1e215fed037b..d04ab0ad791a 100644
--- a/arch/arm/boot/dts/exynos5250.dtsi
+++ b/arch/arm/boot/dts/exynos5250.dtsi
@@ -52,6 +52,22 @@
52 pinctrl3 = &pinctrl_3; 52 pinctrl3 = &pinctrl_3;
53 }; 53 };
54 54
55 cpus {
56 #address-cells = <1>;
57 #size-cells = <0>;
58
59 cpu@0 {
60 device_type = "cpu";
61 compatible = "arm,cortex-a15";
62 reg = <0>;
63 };
64 cpu@1 {
65 device_type = "cpu";
66 compatible = "arm,cortex-a15";
67 reg = <1>;
68 };
69 };
70
55 pd_gsc: gsc-power-domain@0x10044000 { 71 pd_gsc: gsc-power-domain@0x10044000 {
56 compatible = "samsung,exynos4210-pd"; 72 compatible = "samsung,exynos4210-pd";
57 reg = <0x10044000 0x20>; 73 reg = <0x10044000 0x20>;
diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c
index a0e8ff7758a4..ab1d2d5f3709 100644
--- a/arch/arm/mach-exynos/platsmp.c
+++ b/arch/arm/mach-exynos/platsmp.c
@@ -180,10 +180,14 @@ static void __init exynos_smp_init_cpus(void)
180 void __iomem *scu_base = scu_base_addr(); 180 void __iomem *scu_base = scu_base_addr();
181 unsigned int i, ncores; 181 unsigned int i, ncores;
182 182
183 if (soc_is_exynos5250()) 183 if (read_cpuid_part_number() == ARM_CPU_PART_CORTEX_A9)
184 ncores = 2;
185 else
186 ncores = scu_base ? scu_get_core_count(scu_base) : 1; 184 ncores = scu_base ? scu_get_core_count(scu_base) : 1;
185 else
186 /*
187 * CPU Nodes are passed thru DT and set_cpu_possible
188 * is set by "arm_dt_init_cpu_maps".
189 */
190 return;
187 191
188 /* sanity check */ 192 /* sanity check */
189 if (ncores > nr_cpu_ids) { 193 if (ncores > nr_cpu_ids) {