]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/arm/mach-s3c2410/mach-amlm5900.c
Merge branch 'omap2-upstream' into devel
[linux-2.6-omap-h63xx.git] / arch / arm / mach-s3c2410 / mach-amlm5900.c
index ba5109af40b4d407fbccd0d5f6c99b8e9ccea752..a67a0685664d0ca258b6bbc2b35ed6ea8f6156a2 100644 (file)
@@ -1,4 +1,4 @@
-/***********************************************************************
+/* linux/arch/arm/mach-s3c2410/mach-amlm5900.c
  *
  * linux/arch/arm/mach-s3c2410/mach-amlm5900.c
  *
@@ -35,7 +35,7 @@
 #include <linux/device.h>
 #include <linux/platform_device.h>
 #include <linux/proc_fs.h>
-
+#include <linux/serial_core.h>
 
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
 #include <asm/mach-types.h>
 #include <asm/arch/fb.h>
 
-#include <asm/arch/regs-serial.h>
+#include <asm/plat-s3c/regs-serial.h>
 #include <asm/arch/regs-lcd.h>
 #include <asm/arch/regs-gpio.h>
 
-#include "devs.h"
-#include "cpu.h"
+#include <asm/plat-s3c24xx/devs.h>
+#include <asm/plat-s3c24xx/cpu.h>
 
 #ifdef CONFIG_MTD_PARTITIONS
 
@@ -113,12 +113,6 @@ static struct platform_device amlm5900_device_nor = {
 #endif
 
 static struct map_desc amlm5900_iodesc[] __initdata = {
-       {
-               .virtual        = (u32)S3C24XX_VA_SPI,
-               .pfn            = __phys_to_pfn(S3C2410_PA_SPI),
-               .length         = SZ_1M,
-               .type           = MT_DEVICE
-       }
 };
 
 #define UCON S3C2410_UCON_DEFAULT
@@ -166,27 +160,39 @@ static struct platform_device *amlm5900_devices[] __initdata = {
 #endif
 };
 
-static struct s3c24xx_board amlm5900_board __initdata = {
-       .devices       = amlm5900_devices,
-       .devices_count = ARRAY_SIZE(amlm5900_devices)
-};
-
-void __init amlm5900_map_io(void)
+static void __init amlm5900_map_io(void)
 {
        s3c24xx_init_io(amlm5900_iodesc, ARRAY_SIZE(amlm5900_iodesc));
        s3c24xx_init_clocks(0);
        s3c24xx_init_uarts(amlm5900_uartcfgs, ARRAY_SIZE(amlm5900_uartcfgs));
-       s3c24xx_set_board(&amlm5900_board);
 }
 
 #ifdef CONFIG_FB_S3C2410
-static struct s3c2410fb_mach_info __initdata amlm5900_lcd_info = {
+static struct s3c2410fb_display __initdata amlm5900_lcd_info = {
        .width          = 160,
        .height         = 160,
 
-/* commented out until stn patch is submitted
-*      .type           = S3C2410_LCDCON1_STN4,
-*/
+       .type           = S3C2410_LCDCON1_STN4,
+
+       .pixclock       = 680000, /* HCLK = 100MHz */
+       .xres           = 160,
+       .yres           = 160,
+       .bpp            = 4,
+       .left_margin    = 1 << (4 + 3),
+       .right_margin   = 8 << 3,
+       .hsync_len      = 48,
+       .upper_margin   = 0,
+       .lower_margin   = 0,
+
+       .lcdcon5        = 0x00000001,
+};
+
+static struct s3c2410fb_mach_info __initdata amlm5900_fb_info = {
+
+       .displays = &amlm5900_lcd_info,
+       .num_displays = 1,
+       .default_display = 0,
+
        .gpccon =       0xaaaaaaaa,
        .gpccon_mask =  0xffffffff,
        .gpcup =        0x0000ffff,
@@ -196,37 +202,11 @@ static struct s3c2410fb_mach_info __initdata amlm5900_lcd_info = {
        .gpdcon_mask =  0xffffffff,
        .gpdup =        0x0000ffff,
        .gpdup_mask =   0xffffffff,
-
-       .xres           = {
-               .min            = 160,
-               .max            = 160,
-               .defval         = 160,
-       },
-
-       .yres           = {
-               .min            = 160,
-               .max            = 160,
-               .defval         = 160,
-       },
-
-       .bpp            = {
-               .min            = 4,
-               .max            = 4,
-               .defval         = 4,
-       },
-
-       .regs           = {
-               .lcdcon1        = 0x00008225,
-               .lcdcon2        = 0x0027c000,
-               .lcdcon3        = 0x00182708,
-               .lcdcon4        = 0x00000002,
-               .lcdcon5        = 0x00000001,
-       }
 };
 #endif
 
 static irqreturn_t
-amlm5900_wake_interrupt(int irq, void *ignored, struct pt_regs *regs)
+amlm5900_wake_interrupt(int irq, void *ignored)
 {
        return IRQ_HANDLED;
 }
@@ -251,8 +231,9 @@ static void __init amlm5900_init(void)
 {
        amlm5900_init_pm();
 #ifdef CONFIG_FB_S3C2410
-       s3c24xx_fb_set_platdata(&amlm5900_lcd_info);
+       s3c24xx_fb_set_platdata(&amlm5900_fb_info);
 #endif
+       platform_add_devices(amlm5900_devices, ARRAY_SIZE(amlm5900_devices));
 }
 
 MACHINE_START(AML_M5900, "AML_M5900")