Merge branch 'for-2.6.36' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/asoc...
[pandora-kernel.git] / arch / arm / plat-s5p / cpu.c
index 0895a77..75cb8c3 100644 (file)
 #include <mach/regs-clock.h>
 #include <plat/cpu.h>
 #include <plat/s5p6440.h>
+#include <plat/s5p6442.h>
+#include <plat/s5pc100.h>
+#include <plat/s5pv210.h>
 
 /* table of supported CPUs */
 
 static const char name_s5p6440[] = "S5P6440";
+static const char name_s5p6442[] = "S5P6442";
+static const char name_s5pc100[] = "S5PC100";
+static const char name_s5pv210[] = "S5PV210/S5PC110";
 
 static struct cpu_table cpu_ids[] __initdata = {
        {
@@ -32,36 +38,63 @@ static struct cpu_table cpu_ids[] __initdata = {
                .init_uarts     = s5p6440_init_uarts,
                .init           = s5p6440_init,
                .name           = name_s5p6440,
+       }, {
+               .idcode         = 0x36442000,
+               .idmask         = 0xffffff00,
+               .map_io         = s5p6442_map_io,
+               .init_clocks    = s5p6442_init_clocks,
+               .init_uarts     = s5p6442_init_uarts,
+               .init           = s5p6442_init,
+               .name           = name_s5p6442,
+       }, {
+               .idcode         = 0x43100000,
+               .idmask         = 0xfffff000,
+               .map_io         = s5pc100_map_io,
+               .init_clocks    = s5pc100_init_clocks,
+               .init_uarts     = s5pc100_init_uarts,
+               .init           = s5pc100_init,
+               .name           = name_s5pc100,
+       }, {
+               .idcode         = 0x43110000,
+               .idmask         = 0xfffff000,
+               .map_io         = s5pv210_map_io,
+               .init_clocks    = s5pv210_init_clocks,
+               .init_uarts     = s5pv210_init_uarts,
+               .init           = s5pv210_init,
+               .name           = name_s5pv210,
        },
 };
 
 /* minimal IO mapping */
 
-#define UART_OFFS (S5P_PA_UART & 0xfffff)
-
 static struct map_desc s5p_iodesc[] __initdata = {
        {
-               .virtual        = (unsigned long)S5P_VA_SYSCON,
+               .virtual        = (unsigned long)S5P_VA_CHIPID,
+               .pfn            = __phys_to_pfn(S5P_PA_CHIPID),
+               .length         = SZ_4K,
+               .type           = MT_DEVICE,
+       }, {
+               .virtual        = (unsigned long)S3C_VA_SYS,
                .pfn            = __phys_to_pfn(S5P_PA_SYSCON),
                .length         = SZ_64K,
                .type           = MT_DEVICE,
        }, {
-               .virtual        = (unsigned long)(S5P_VA_UART + UART_OFFS),
-               .pfn            = __phys_to_pfn(S5P_PA_UART),
+               .virtual        = (unsigned long)S3C_VA_UART,
+               .pfn            = __phys_to_pfn(S3C_PA_UART),
                .length         = SZ_4K,
                .type           = MT_DEVICE,
        }, {
-               .virtual        = (unsigned long)S5P_VA_VIC0,
+               .virtual        = (unsigned long)VA_VIC0,
                .pfn            = __phys_to_pfn(S5P_PA_VIC0),
                .length         = SZ_16K,
                .type           = MT_DEVICE,
        }, {
-               .virtual        = (unsigned long)S5P_VA_VIC1,
+               .virtual        = (unsigned long)VA_VIC1,
                .pfn            = __phys_to_pfn(S5P_PA_VIC1),
                .length         = SZ_16K,
                .type           = MT_DEVICE,
        }, {
-               .virtual        = (unsigned long)S5P_VA_TIMER,
+               .virtual        = (unsigned long)S3C_VA_TIMER,
                .pfn            = __phys_to_pfn(S5P_PA_TIMER),
                .length         = SZ_16K,
                .type           = MT_DEVICE,