|
@@ -167,3 +167,56 @@ static struct pxafb_mach_info zylonite_toshiba_lcd_info = {
|
|
.num_modes = 1,
|
|
.num_modes = 1,
|
|
.lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL,
|
|
.lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL,
|
|
};
|
|
};
|
|
|
|
+
|
|
|
|
+static struct pxafb_mode_info sharp_ls037_modes[] = {
|
|
|
|
+ [0] = {
|
|
|
|
+ .pixclock = 158000,
|
|
|
|
+ .xres = 240,
|
|
|
|
+ .yres = 320,
|
|
|
|
+ .bpp = 16,
|
|
|
|
+ .hsync_len = 4,
|
|
|
|
+ .left_margin = 39,
|
|
|
|
+ .right_margin = 39,
|
|
|
|
+ .vsync_len = 1,
|
|
|
|
+ .upper_margin = 2,
|
|
|
|
+ .lower_margin = 3,
|
|
|
|
+ .sync = 0,
|
|
|
|
+ },
|
|
|
|
+ [1] = {
|
|
|
|
+ .pixclock = 39700,
|
|
|
|
+ .xres = 480,
|
|
|
|
+ .yres = 640,
|
|
|
|
+ .bpp = 16,
|
|
|
|
+ .hsync_len = 8,
|
|
|
|
+ .left_margin = 81,
|
|
|
|
+ .right_margin = 81,
|
|
|
|
+ .vsync_len = 1,
|
|
|
|
+ .upper_margin = 2,
|
|
|
|
+ .lower_margin = 7,
|
|
|
|
+ .sync = 0,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct pxafb_mach_info zylonite_sharp_lcd_info = {
|
|
|
|
+ .modes = sharp_ls037_modes,
|
|
|
|
+ .num_modes = 2,
|
|
|
|
+ .lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static void __init zylonite_init_lcd(void)
|
|
|
|
+{
|
|
|
|
+ platform_device_register(&zylonite_backlight_device);
|
|
|
|
+
|
|
|
|
+ if (lcd_id & 0x20) {
|
|
|
|
+ pxa_set_fb_info(NULL, &zylonite_sharp_lcd_info);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /* legacy LCD panels, it would be handy here if LCD panel type can
|
|
|
|
+ * be decided at run-time
|
|
|
|
+ */
|
|
|
|
+ if (1)
|
|
|
|
+ zylonite_toshiba_lcd_info.modes = &toshiba_ltm035a776c_mode;
|
|
|
|
+ else
|
|
|
|
+ zylonite_toshiba_lcd_info.modes = &toshiba_ltm04c380k_mode;
|
|
|
|
+
|