s5p: cpu_info: print "cpu-model" if exists in dts
authorPrzemyslaw Marczak <p.marczak@samsung.com>
Tue, 27 Oct 2015 12:07:55 +0000 (13:07 +0100)
committerMinkyu Kang <mk7.kang@samsung.com>
Mon, 2 Nov 2015 01:37:59 +0000 (10:37 +0900)
The CPU name for Exynos was concatenated with cpu id,
but for new Exynos platforms, like Chromebook Peach Pi
based on Exynos5800, the name of SoC variant does not
include the real SoC cpu id (0x5422).

For such case, the CPU name should be defined in device tree.

This commit introduces new device-tree property for Exynos:
- "cpu-model" - with cpu name string
If defined, then the cpu id is not printed.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Minkyu Kang <mk7.kang@samsung.com>
Cc: Simon Glass <sjg@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Anand Moon <linux.amoon@gmail.com>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
arch/arm/cpu/armv7/s5p-common/cpu_info.c
doc/device-tree-bindings/exynos/soc.txt [new file with mode: 0644]

index 154d67490d4020eb41ecfd35219ab416946bc618..764c6614ea7f2bad8eb6dd15fb3c9c2a3f20081a 100644 (file)
@@ -5,9 +5,12 @@
  * SPDX-License-Identifier:    GPL-2.0+
  */
 #include <common.h>
+#include <fdtdec.h>
 #include <asm/io.h>
 #include <asm/arch/clk.h>
 
+DECLARE_GLOBAL_DATA_PTR;
+
 /* Default is s5pc100 */
 unsigned int s5p_cpu_id = 0xC100;
 /* Default is EVT1 */
@@ -30,7 +33,16 @@ u32 get_device_type(void)
 #ifdef CONFIG_DISPLAY_CPUINFO
 int print_cpuinfo(void)
 {
-       printf("CPU:   %s%X @ ", s5p_get_cpu_name(), s5p_cpu_id);
+       const char *cpu_model;
+       int len;
+
+       /* For SoC with no real CPU ID in naming convention. */
+       cpu_model = fdt_getprop(gd->fdt_blob, 0, "cpu-model", &len);
+       if (cpu_model)
+               printf("CPU:   %.*s @ ", len, cpu_model);
+       else
+               printf("CPU:   %s%X @ ", s5p_get_cpu_name(), s5p_cpu_id);
+
        print_freq(get_arm_clk(), "\n");
 
        return 0;
diff --git a/doc/device-tree-bindings/exynos/soc.txt b/doc/device-tree-bindings/exynos/soc.txt
new file mode 100644 (file)
index 0000000..9ba6f3b
--- /dev/null
@@ -0,0 +1,21 @@
+Exynos SoC model
+
+The "cpu-model" property is a non-standard extension for the device tree root
+node. Since the cpu id of some Exynos variants does not correspond to product
+name, this property fills the gap.
+
+For almost all Exynos based boards in the kernel, the product name corresponds
+to the device tree file name. The same name is generated in U-Boot, so the new
+property allows doing it automatically.
+
+Required properties:
+ - cpu-model : Exynos product name
+
+Example:
+
+/ {
+       model = "Samsung/Google Peach Pi board based on Exynos5800";
+       cpu-model = "Exynos5800";
+
+       compatible = ...
+};