add lcd support for K97

This commit is contained in:
yxj
2011-11-17 17:21:11 +08:00
parent c7b5a200a8
commit d8927b45c8
4 changed files with 77 additions and 1 deletions

View File

@@ -1761,13 +1761,14 @@ CONFIG_DISPLAY_SUPPORT=y
# Display hardware drivers
#
# CONFIG_LCD_NULL is not set
CONFIG_LCD_LG_LP097X02=y
# CONFIG_LCD_TD043MGEA1 is not set
# CONFIG_LCD_HX8357 is not set
# CONFIG_LCD_TJ048NC01CA is not set
# CONFIG_LCD_HL070VM4AU is not set
# CONFIG_LCD_HSD070IDW1 is not set
# CONFIG_LCD_RGB_TFT480800_25_E is not set
CONFIG_LCD_HSD100PXN=y
# CONFIG_LCD_HSD100PXN is not set
# CONFIG_LCD_HSD07PFW1 is not set
# CONFIG_LCD_BYD8688FTGF is not set
# CONFIG_LCD_B101AW06 is not set

View File

@@ -3,6 +3,8 @@ choice
prompt "LCD Panel Select"
config LCD_NULL
bool "NULL"
config LCD_LG_LP097X02
bool "RGB LCD_LG_LP097X02 1024X768"
config LCD_TD043MGEA1
bool "RGB TD043MGEA1"
config LCD_HX8357

View File

@@ -5,6 +5,7 @@ obj-$(CONFIG_LCD_TD043MGEA1) += lcd_td043mgea1.o
obj-$(CONFIG_LCD_HSD070IDW1) += lcd_hsd800x480.o
obj-$(CONFIG_LCD_HL070VM4AU) += lcd_hl070vm4.o
obj-$(CONFIG_LCD_BYD8688FTGF) += lcd_byd1024x600.o
obj-$(CONFIG_LCD_LG_LP097X02)+= lcd_LG_LP097X02.o
obj-$(CONFIG_LCD_TJ048NC01CA) += lcd_tj048nc01ca.o
obj-$(CONFIG_LCD_A060SE02) += lcd_a060se02.o

View File

@@ -0,0 +1,72 @@
#include <linux/fb.h>
#include <linux/delay.h>
#include "../../rk29_fb.h"
#include <mach/gpio.h>
#include <mach/iomux.h>
#include <mach/board.h>
#include "screen.h"
/* Base */
#define OUT_TYPE SCREEN_RGB
#define OUT_FACE OUT_D888_P666
#define OUT_CLK 100000000
#define LCDC_ACLK 500000000
/* Timing */
#define H_PW 320
#define H_BP 480
#define H_VD 1024
#define H_FP 260
#define V_PW 10
#define V_BP 6
#define V_VD 768
#define V_FP 16
#define LCD_WIDTH 196// 142 // 202
#define LCD_HEIGHT 147 //106// 152
/* Other */
#define DCLK_POL 0 //
#define SWAP_RB 0
void set_lcd_info(struct rk29fb_screen *screen, struct rk29lcd_info *lcd_info )
{
/* screen type & face */
screen->type = OUT_TYPE;
screen->face = OUT_FACE;
/* Screen size */
screen->x_res = H_VD;
screen->y_res = V_VD;
screen->width = LCD_WIDTH;
screen->height = LCD_HEIGHT;
/* Timing */
screen->lcdc_aclk = LCDC_ACLK;
screen->pixclock = OUT_CLK;
screen->left_margin = H_BP;
screen->right_margin = H_FP;
screen->hsync_len = H_PW;
screen->upper_margin = V_BP;
screen->lower_margin = V_FP;
screen->vsync_len = V_PW;
/* Pin polarity */
screen->pin_hsync = 0;
screen->pin_vsync = 0;
screen->pin_den = 0;
screen->pin_dclk = DCLK_POL;
/* Swap rule */
screen->swap_rb = SWAP_RB;
screen->swap_rg = 0;
screen->swap_gb = 0;
screen->swap_delta = 0;
screen->swap_dumy = 0;
/* Operation function*/
screen->init = NULL;
screen->standby = NULL;
}