1 /* This Lcd Driver is HSD070IDW1 write by cst 2009.10.27 */
3 #include <linux/delay.h>
4 #include<linux/rk_fb.h>
6 #include <mach/iomux.h>
7 #include <mach/board.h>
12 #define OUT_TYPE SCREEN_RGB
13 #define OUT_FACE OUT_P888//OUT_P666
14 #define OUT_CLK 40000000
15 #define LCDC_ACLK 500000000 //29 lcdc axi DMA ƵÂÊ
18 #define H_PW 1//30//48 //10
19 #define H_BP 46//10//40 //100
20 #define H_VD 800 //1024
21 #define H_FP 210// //210
23 #define V_PW 3// 2// 3//13//10
24 #define V_BP 23// 18 // 23//10// //10
25 #define V_VD 600//480 //768
26 #define V_FP 2// 8// 12//22 //18
32 #define LCD_WIDTH 162//154 //need modify
33 #define LCD_HEIGHT 121//85
35 static struct rk29lcd_info *gLcd_info = NULL;
37 void set_lcd_info(struct rk29fb_screen *screen, struct rk29lcd_info *lcd_info )
39 /* screen type & face */
40 screen->type = OUT_TYPE;
41 screen->face = OUT_FACE;
47 screen->width = LCD_WIDTH;
48 screen->height = LCD_HEIGHT;
51 screen->lcdc_aclk = LCDC_ACLK;
52 screen->pixclock = OUT_CLK;
53 screen->left_margin = H_BP;
54 screen->right_margin = H_FP;
55 screen->hsync_len = H_PW;
56 screen->upper_margin = V_BP;
57 screen->lower_margin = V_FP;
58 screen->vsync_len = V_PW;
61 screen->pin_hsync = 0;
62 screen->pin_vsync = 0;
64 screen->pin_dclk = DCLK_POL;
67 screen->swap_rb = SWAP_RB;
70 screen->swap_delta = 0;
71 screen->swap_dumy = 0;
73 /* Operation function*/
74 /*screen->init = init;*/
76 screen->standby = NULL;
80 size_t get_fb_size(void)
83 #if defined(CONFIG_THREE_FB_BUFFER)
84 size = ((H_VD)*(V_VD)<<2)* 3; //three buffer
86 size = ((H_VD)*(V_VD)<<2)<<1; //two buffer
88 return ALIGN(size,SZ_1M);