fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / arch / arm / mach-pxa / idp.c
index c5a66bf..64df440 100644 (file)
@@ -18,7 +18,8 @@
 
 #include <linux/init.h>
 #include <linux/interrupt.h>
-#include <linux/device.h>
+#include <linux/irq.h>
+#include <linux/platform_device.h>
 #include <linux/fb.h>
 
 #include <asm/setup.h>
@@ -81,7 +82,7 @@ static void idp_vlcd(int on)
        }
 }
 
-static void idp_lcd_power(int on)
+static void idp_lcd_power(int on, struct fb_var_screeninfo *var)
 {
        if (on) {
                IDP_CPLD_LCD |= (1<<0);
@@ -98,7 +99,7 @@ static void idp_lcd_power(int on)
        idp_vlcd(on);
 }
 
-static struct pxafb_mach_info sharp_lm8v31 __initdata = {
+static struct pxafb_mode_info sharp_lm8v31_mode = {
        .pixclock       = 270000,
        .xres           = 640,
        .yres           = 480,
@@ -111,6 +112,11 @@ static struct pxafb_mach_info sharp_lm8v31 __initdata = {
        .lower_margin   = 0,
        .sync           = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
        .cmap_greyscale = 0,
+};
+
+static struct pxafb_mach_info sharp_lm8v31 = {
+       .modes          = &sharp_lm8v31_mode,
+       .num_modes      = 1,
        .cmap_inverse   = 0,
        .cmap_static    = 0,
        .lccr0          = LCCR0_SDS,
@@ -119,7 +125,7 @@ static struct pxafb_mach_info sharp_lm8v31 __initdata = {
        .pxafb_lcd_power = &idp_lcd_power
 };
 
-static int idp_mci_init(struct device *dev, irqreturn_t (*idp_detect_int)(int, void *, struct pt_regs *), void *data)
+static int idp_mci_init(struct device *dev, irq_handler_t idp_detect_int, void *data)
 {
        /* setup GPIO for PXA25x MMC controller */
        pxa_gpio_mode(GPIO6_MMCCLK_MD);
@@ -152,16 +158,17 @@ static void __init idp_init_irq(void)
 }
 
 static struct map_desc idp_io_desc[] __initdata = {
- /* virtual     physical    length      type */
-
-  { IDP_COREVOLT_VIRT,
-    IDP_COREVOLT_PHYS,
-    IDP_COREVOLT_SIZE,
-    MT_DEVICE },
-  { IDP_CPLD_VIRT,
-    IDP_CPLD_PHYS,
-    IDP_CPLD_SIZE,
-    MT_DEVICE }
+       {
+               .virtual        =  IDP_COREVOLT_VIRT,
+               .pfn            = __phys_to_pfn(IDP_COREVOLT_PHYS),
+               .length         = IDP_COREVOLT_SIZE,
+               .type           = MT_DEVICE
+       }, {
+               .virtual        =  IDP_CPLD_VIRT,
+               .pfn            = __phys_to_pfn(IDP_CPLD_PHYS),
+               .length         = IDP_CPLD_SIZE,
+               .type           = MT_DEVICE
+       }
 };
 
 static void __init idp_map_io(void)
@@ -181,10 +188,11 @@ static void __init idp_map_io(void)
 
 
 MACHINE_START(PXA_IDP, "Vibren PXA255 IDP")
-       MAINTAINER("Vibren Technologies")
-       BOOT_MEM(0xa0000000, 0x40000000, io_p2v(0x40000000))
-       MAPIO(idp_map_io)
-       INITIRQ(idp_init_irq)
+       /* Maintainer: Vibren Technologies */
+       .phys_io        = 0x40000000,
+       .io_pg_offst    = (io_p2v(0x40000000) >> 18) & 0xfffc,
+       .map_io         = idp_map_io,
+       .init_irq       = idp_init_irq,
        .timer          = &pxa_timer,
-       INIT_MACHINE(idp_init)
+       .init_machine   = idp_init,
 MACHINE_END