Merge tag 'timers-urgent-2020-12-27' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6-microblaze.git] / arch / arm / mach-exynos / exynos.c
index 36c3744..25b01da 100644 (file)
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 
-#include <mach/map.h>
-#include <plat/cpu.h>
-
 #include "common.h"
 
+#define S3C_ADDR_BASE  0xF6000000
+#define S3C_ADDR(x)    ((void __iomem __force *)S3C_ADDR_BASE + (x))
+#define S5P_VA_CHIPID  S3C_ADDR(0x02000000)
+
 static struct platform_device exynos_cpuidle = {
        .name              = "exynos_cpuidle",
 #ifdef CONFIG_ARM_EXYNOS_CPUIDLE
@@ -36,6 +37,14 @@ void __iomem *sysram_base_addr __ro_after_init;
 phys_addr_t sysram_base_phys __ro_after_init;
 void __iomem *sysram_ns_base_addr __ro_after_init;
 
+unsigned long exynos_cpu_id;
+static unsigned int exynos_cpu_rev;
+
+unsigned int exynos_rev(void)
+{
+       return exynos_cpu_rev;
+}
+
 void __init exynos_sysram_init(void)
 {
        struct device_node *node;
@@ -86,7 +95,11 @@ static void __init exynos_init_io(void)
        of_scan_flat_dt(exynos_fdt_map_chipid, NULL);
 
        /* detect cpu id and rev. */
-       s5p_init_cpu(S5P_VA_CHIPID);
+       exynos_cpu_id = readl_relaxed(S5P_VA_CHIPID);
+       exynos_cpu_rev = exynos_cpu_id & 0xFF;
+
+       pr_info("Samsung CPU ID: 0x%08lx\n", exynos_cpu_id);
+
 }
 
 /*
@@ -164,7 +177,8 @@ static void __init exynos_dt_machine_init(void)
        if (of_machine_is_compatible("samsung,exynos4210") ||
            (of_machine_is_compatible("samsung,exynos4412") &&
             (of_machine_is_compatible("samsung,trats2") ||
-                 of_machine_is_compatible("samsung,midas"))) ||
+                 of_machine_is_compatible("samsung,midas") ||
+                 of_machine_is_compatible("samsung,p4note"))) ||
            of_machine_is_compatible("samsung,exynos3250") ||
            of_machine_is_compatible("samsung,exynos5250"))
                platform_device_register(&exynos_cpuidle);
@@ -193,8 +207,8 @@ static void __init exynos_dt_fixup(void)
 }
 
 DT_MACHINE_START(EXYNOS_DT, "Samsung Exynos (Flattened Device Tree)")
-       .l2c_aux_val    = 0x3c400000,
-       .l2c_aux_mask   = 0xc20fffff,
+       .l2c_aux_val    = 0x08400000,
+       .l2c_aux_mask   = 0xf60fffff,
        .smp            = smp_ops(exynos_smp_ops),
        .map_io         = exynos_init_io,
        .init_early     = exynos_firmware_init,