Merge branches 'consolidate-clksrc', 'consolidate-flash', 'consolidate-generic',...
[pandora-kernel.git] / arch / arm / mach-realview / core.c
index 525ad17..5c23450 100644 (file)
@@ -31,6 +31,7 @@
 #include <linux/amba/mmci.h>
 #include <linux/gfp.h>
 #include <linux/clkdev.h>
+#include <linux/mtd/physmap.h>
 
 #include <asm/system.h>
 #include <mach/hardware.h>
@@ -41,7 +42,6 @@
 #include <asm/hardware/icst.h>
 
 #include <asm/mach/arch.h>
-#include <asm/mach/flash.h>
 #include <asm/mach/irq.h>
 #include <asm/mach/map.h>
 
 
 #define REALVIEW_FLASHCTRL    (__io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_FLASH_OFFSET)
 
-static int realview_flash_init(void)
-{
-       u32 val;
-
-       val = __raw_readl(REALVIEW_FLASHCTRL);
-       val &= ~REALVIEW_FLASHPROG_FLVPPEN;
-       __raw_writel(val, REALVIEW_FLASHCTRL);
-
-       return 0;
-}
-
-static void realview_flash_exit(void)
-{
-       u32 val;
-
-       val = __raw_readl(REALVIEW_FLASHCTRL);
-       val &= ~REALVIEW_FLASHPROG_FLVPPEN;
-       __raw_writel(val, REALVIEW_FLASHCTRL);
-}
-
-static void realview_flash_set_vpp(int on)
+static void realview_flash_set_vpp(struct platform_device *pdev, int on)
 {
        u32 val;
 
@@ -90,16 +70,13 @@ static void realview_flash_set_vpp(int on)
        __raw_writel(val, REALVIEW_FLASHCTRL);
 }
 
-static struct flash_platform_data realview_flash_data = {
-       .map_name               = "cfi_probe",
+static struct physmap_flash_data realview_flash_data = {
        .width                  = 4,
-       .init                   = realview_flash_init,
-       .exit                   = realview_flash_exit,
        .set_vpp                = realview_flash_set_vpp,
 };
 
 struct platform_device realview_flash_device = {
-       .name                   = "armflash",
+       .name                   = "physmap-flash",
        .id                     = 0,
        .dev                    = {
                .platform_data  = &realview_flash_data,
@@ -296,6 +273,10 @@ static struct clk ref24_clk = {
        .rate   = 24000000,
 };
 
+static struct clk sp804_clk = {
+       .rate   = 1000000,
+};
+
 static struct clk dummy_apb_pclk;
 
 static struct clk_lookup lookups[] = {
@@ -338,7 +319,10 @@ static struct clk_lookup lookups[] = {
        }, {    /* SSP */
                .dev_id         = "dev:ssp0",
                .clk            = &ref24_clk,
-       }
+       }, {    /* SP804 timers */
+               .dev_id         = "sp804",
+               .clk            = &sp804_clk,
+       },
 };
 
 void __init realview_init_early(void)
@@ -526,8 +510,8 @@ void __init realview_timer_init(unsigned int timer_irq)
        writel(0, timer2_va_base + TIMER_CTRL);
        writel(0, timer3_va_base + TIMER_CTRL);
 
-       sp804_clocksource_init(timer3_va_base);
-       sp804_clockevents_init(timer0_va_base, timer_irq);
+       sp804_clocksource_init(timer3_va_base, "timer3");
+       sp804_clockevents_init(timer0_va_base, timer_irq, "timer0");
 }
 
 /*