diff options
author | Chander Kashyap <chander.kashyap@linaro.org> | 2013-06-18 11:29:34 -0400 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2013-06-18 15:09:17 -0400 |
commit | 1897d2f32fef9cb5caa9951b2cdc79b05bfb512d (patch) | |
tree | 5714c7fdbe7a02b8d5f6cfd770a2da6d356e956f | |
parent | e6c21cbab5d6ac410676b9db36b9f1915a15a8d9 (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.dtsi | 16 | ||||
-rw-r--r-- | arch/arm/mach-exynos/platsmp.c | 10 |
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) { |