[ARM] 3042/1: AAED-2000 - LCD panel informations
authorBellido Nicolas <ml@acolin.be>
Fri, 28 Oct 2005 15:51:44 +0000 (16:51 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 28 Oct 2005 15:51:44 +0000 (16:51 +0100)
Patch from Bellido Nicolas

The AAED-2000 is equiped with an 640x480 LCD.
This adds the parameters that will be passed to the AAEC-2000 platform code.

Signed-off-by: Nicolas Bellido <ml@acolin.be>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-aaec2000/aaed2000.c

index 7b0a1c7d64a9535ba7282659de1239adf19750dc..f5ef697022962fe7d95117cc44a43b662d40233c 100644 (file)
 
 #include "core.h"
 
 
 #include "core.h"
 
+static void aaed2000_clcd_disable(struct clcd_fb *fb)
+{
+       AAED_EXT_GPIO &= ~AAED_EGPIO_LCD_PWR_EN;
+}
+
+static void aaed2000_clcd_enable(struct clcd_fb *fb)
+{
+       AAED_EXT_GPIO |= AAED_EGPIO_LCD_PWR_EN;
+}
+
+struct aaec2000_clcd_info clcd_info = {
+       .enable = aaed2000_clcd_enable,
+       .disable = aaed2000_clcd_disable,
+       .panel = {
+               .mode   = {
+                       .name           = "Sharp",
+                       .refresh        = 60,
+                       .xres           = 640,
+                       .yres           = 480,
+                       .pixclock       = 39721,
+                       .left_margin    = 20,
+                       .right_margin   = 44,
+                       .upper_margin   = 21,
+                       .lower_margin   = 34,
+                       .hsync_len      = 96,
+                       .vsync_len      = 2,
+                       .sync           = 0,
+                       .vmode  = FB_VMODE_NONINTERLACED,
+               },
+               .width  = -1,
+               .height = -1,
+               .tim2   = TIM2_IVS | TIM2_IHS,
+               .cntl   = CNTL_LCDTFT,
+               .bpp    = 16,
+       },
+};
+
 static void __init aaed2000_init_irq(void)
 {
        aaec2000_init_irq();
 }
 
 static void __init aaed2000_init_irq(void)
 {
        aaec2000_init_irq();
 }
 
+static void __init aaed2000_init(void)
+{
+       aaec2000_set_clcd_plat_data(&clcd_info);
+}
+
 static struct map_desc aaed2000_io_desc[] __initdata = {
   { EXT_GPIO_VBASE, EXT_GPIO_PBASE, EXT_GPIO_LENGTH, MT_DEVICE }, /* Ext GPIO */
 };
 static struct map_desc aaed2000_io_desc[] __initdata = {
   { EXT_GPIO_VBASE, EXT_GPIO_PBASE, EXT_GPIO_LENGTH, MT_DEVICE }, /* Ext GPIO */
 };
@@ -54,4 +96,5 @@ MACHINE_START(AAED2000, "Agilent AAED-2000 Development Platform")
        .map_io         = aaed2000_map_io,
        .init_irq       = aaed2000_init_irq,
        .timer          = &aaec2000_timer,
        .map_io         = aaed2000_map_io,
        .init_irq       = aaed2000_init_irq,
        .timer          = &aaec2000_timer,
+       .init_machine   = aaed2000_init,
 MACHINE_END
 MACHINE_END