Pull novell-bugzilla-156426 into release branch
[pandora-kernel.git] / arch / arm / mach-sa1100 / generic.c
index 3f1e358..9ea7155 100644 (file)
 #include <linux/pm.h>
 #include <linux/cpufreq.h>
 #include <linux/ioport.h>
+#include <linux/sched.h>       /* just for sched_clock() - funny that */
+#include <linux/platform_device.h>
 
 #include <asm/div64.h>
 #include <asm/hardware.h>
 #include <asm/system.h>
 #include <asm/pgtable.h>
 #include <asm/mach/map.h>
+#include <asm/mach/flash.h>
 #include <asm/irq.h>
 
 #include "generic.h"
@@ -283,6 +286,7 @@ static struct platform_device sa11x0mtd_device = {
 void sa11x0_set_flash_data(struct flash_platform_data *flash,
                           struct resource *res, int nr)
 {
+       flash->name = "sa1100";
        sa11x0mtd_device.dev.platform_data = flash;
        sa11x0mtd_device.resource = res;
        sa11x0mtd_device.num_resources = nr;
@@ -320,6 +324,11 @@ void sa11x0_set_irda_data(struct irda_platform_data *irda)
        sa11x0ir_device.dev.platform_data = irda;
 }
 
+static struct platform_device sa11x0rtc_device = {
+       .name           = "sa1100-rtc",
+       .id             = -1,
+};
+
 static struct platform_device *sa11x0_devices[] __initdata = {
        &sa11x0udc_device,
        &sa11x0uart1_device,
@@ -329,6 +338,7 @@ static struct platform_device *sa11x0_devices[] __initdata = {
        &sa11x0pcmcia_device,
        &sa11x0fb_device,
        &sa11x0mtd_device,
+       &sa11x0rtc_device,
 };
 
 static int __init sa1100_init(void)
@@ -369,11 +379,27 @@ EXPORT_SYMBOL(sa1100fb_lcd_power);
  */
 
 static struct map_desc standard_io_desc[] __initdata = {
- /* virtual     physical    length      type */
-  { 0xf8000000, 0x80000000, 0x00100000, MT_DEVICE }, /* PCM */
-  { 0xfa000000, 0x90000000, 0x00100000, MT_DEVICE }, /* SCM */
-  { 0xfc000000, 0xa0000000, 0x00100000, MT_DEVICE }, /* MER */
-  { 0xfe000000, 0xb0000000, 0x00200000, MT_DEVICE }  /* LCD + DMA */
+       {       /* PCM */
+               .virtual        =  0xf8000000,
+               .pfn            = __phys_to_pfn(0x80000000),
+               .length         = 0x00100000,
+               .type           = MT_DEVICE
+       }, {    /* SCM */
+               .virtual        =  0xfa000000,
+               .pfn            = __phys_to_pfn(0x90000000),
+               .length         = 0x00100000,
+               .type           = MT_DEVICE
+       }, {    /* MER */
+               .virtual        =  0xfc000000,
+               .pfn            = __phys_to_pfn(0xa0000000),
+               .length         = 0x00100000,
+               .type           = MT_DEVICE
+       }, {    /* LCD + DMA */
+               .virtual        =  0xfe000000,
+               .pfn            = __phys_to_pfn(0xb0000000),
+               .length         = 0x00200000,
+               .type           = MT_DEVICE
+       },
 };
 
 void __init sa1100_map_io(void)