.xres = 640, .yres = 480, .pixclock = 39721, .left_margin = 40, .right_margin = 24, .upper_margin = 32, .lower_margin = 11, .hsync_len = 96, .vsync_len = 2, .sync = 0, .vmode = FB_VMODE_NONINTERLACED, }, .width = -1, .height = -1, .tim2 = TIM2_BCD | TIM2_IPC, .cntl = CNTL_LCDTFT | CNTL_LCDVCOMP(1), .bpp = 16, .grayscale = 0, }; /* * Ensure VGA is selected. */ static void cp_clcd_enable(struct clcd_fb *fb) { cm_control(CM_CTRL_LCDMUXSEL_MASK, CM_CTRL_LCDMUXSEL_VGA); } static unsigned long framesize = SZ_1M; static int cp_clcd_setup(struct clcd_fb *fb)
.xres = 240, .yres = 320, .pixclock = 191828, .left_margin = 22, .right_margin = 11, .upper_margin = 2, .lower_margin = 1, .hsync_len = 5, .vsync_len = 2, .sync = 0, .vmode = FB_VMODE_NONINTERLACED, }, .width = -1, .height = -1, .tim2 = (TIM2_IVS | TIM2_IHS), .cntl = (CNTL_BGR | CNTL_LCDTFT | CNTL_LCDVCOMP(1) | CNTL_LCDBPP16_565), .bpp = 16, }; #define PANEL_SIZE (3 * SZ_64K) static int lpc32xx_clcd_setup(struct clcd_fb *fb) { dma_addr_t dma; fb->fb.screen_base = dma_alloc_writecombine(&fb->dev->dev, PANEL_SIZE, &dma, GFP_KERNEL); if (!fb->fb.screen_base) { printk(KERN_ERR "CLCD: unable to map framebuffer\n"); return -ENOMEM; }
.xres = 640, .yres = 480, .pixclock = 39721, .left_margin = 40, .right_margin = 24, .upper_margin = 32, .lower_margin = 11, .hsync_len = 96, .vsync_len = 2, .sync = 0, .vmode = FB_VMODE_NONINTERLACED, }, .width = -1, .height = -1, .tim2 = TIM2_BCD | TIM2_IPC, .cntl = CNTL_LCDTFT | CNTL_BGR | CNTL_LCDVCOMP(1), .bpp = 16, }; static struct clcd_panel xvga = { .mode = { .name = "XVGA", .refresh = 60, .xres = 1024, .yres = 768, .pixclock = 15748, .left_margin = 152, .right_margin = 48, .upper_margin = 23, .lower_margin = 3, .hsync_len = 104,
.left_margin = 46, /* horizontal back porch */ .right_margin = 8, /* horizontal front porch */ .upper_margin = 1, /* vertical back porch */ .lower_margin = 3, /* vertical front porch */ .hsync_len = 42, /* horizontal pulse width */ .vsync_len = 11, /* vertical pulse width */ .sync = 0, /* horizontal and vertical both active low */ .vmode = FB_VMODE_NONINTERLACED, }, .width = -1, .height = -1, .tim2 = 0x01df18c3, .tim3 = 0, .cntl = CNTL_LCDPWR | CNTL_LCDVCOMP(1) | CNTL_LCDTFT | CNTL_LCDBPP16_565 | CNTL_BGR, .bpp = 16, }; static struct clcd_device lms500hf10 = { .timings = &timings, .cntrl = &cntrl, }; struct clcd_paneldev LMS500HF10_WithPLL = { .panel = &lms500hf10, .lcd_mdiv = 0x00000018, }; //arch_initcall(irvine_lcd_init);