add lcd support for K97
authoryxj <yxj@yxj-desktop.(none)>
Thu, 17 Nov 2011 09:21:11 +0000 (17:21 +0800)
committeryxj <yxj@yxj-desktop.(none)>
Thu, 17 Nov 2011 09:21:11 +0000 (17:21 +0800)
arch/arm/configs/rk29_k97_defconfig
drivers/video/display/screen/Kconfig
drivers/video/display/screen/Makefile
drivers/video/display/screen/lcd_LG_LP097X02.c [new file with mode: 0755]

index 757ffeb4d60712a4d199df7f26dfed9d32becd71..db0d800030868529d2b8e7ad2834a9cb9f346a91 100644 (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
index 78a8b34365ed94b1d328cc6a6fcf2ef61d847547..d972c75ab89de6fd63f7b4f0451cf464f79b8077 100755 (executable)
@@ -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
index 79b670c71d4e1896fbb481a1401478c2edf28e1b..0ad22f5d5d7ec2ef79569a0b7a9477a053f3b624 100755 (executable)
@@ -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
diff --git a/drivers/video/display/screen/lcd_LG_LP097X02.c b/drivers/video/display/screen/lcd_LG_LP097X02.c
new file mode 100755 (executable)
index 0000000..3a4df9a
--- /dev/null
@@ -0,0 +1,72 @@
+#include <linux/fb.h>\r
+#include <linux/delay.h>\r
+#include "../../rk29_fb.h"\r
+#include <mach/gpio.h>\r
+#include <mach/iomux.h>\r
+#include <mach/board.h>\r
+#include "screen.h"\r
+\r
+/* Base */\r
+#define OUT_TYPE               SCREEN_RGB\r
+#define OUT_FACE               OUT_D888_P666\r
+#define OUT_CLK                 100000000\r
+#define LCDC_ACLK           500000000\r
+/* Timing */\r
+#define H_PW                   320\r
+#define H_BP                   480\r
+#define H_VD                   1024\r
+#define H_FP                   260\r
+\r
+#define V_PW                   10\r
+#define V_BP                   6\r
+#define V_VD                   768\r
+#define V_FP                   16\r
+\r
+#define LCD_WIDTH   196// 142  // 202\r
+#define LCD_HEIGHT  147 //106//  152\r
+/* Other */\r
+#define DCLK_POL               0 // \r
+#define SWAP_RB                        0\r
+\r
+void set_lcd_info(struct rk29fb_screen *screen, struct rk29lcd_info *lcd_info )\r
+{\r
+    /* screen type & face */\r
+    screen->type = OUT_TYPE;\r
+    screen->face = OUT_FACE;\r
+\r
+    /* Screen size */\r
+    screen->x_res = H_VD;\r
+    screen->y_res = V_VD;\r
+\r
+    screen->width = LCD_WIDTH;\r
+    screen->height = LCD_HEIGHT;\r
+\r
+    /* Timing */\r
+    screen->lcdc_aclk = LCDC_ACLK;\r
+    screen->pixclock = OUT_CLK;\r
+       screen->left_margin = H_BP;\r
+       screen->right_margin = H_FP;\r
+       screen->hsync_len = H_PW;\r
+       screen->upper_margin = V_BP;\r
+       screen->lower_margin = V_FP;\r
+       screen->vsync_len = V_PW;\r
+\r
+       /* Pin polarity */\r
+       screen->pin_hsync = 0;\r
+       screen->pin_vsync = 0;\r
+       screen->pin_den = 0;\r
+       screen->pin_dclk = DCLK_POL;\r
+\r
+       /* Swap rule */\r
+    screen->swap_rb = SWAP_RB;\r
+    screen->swap_rg = 0;\r
+    screen->swap_gb = 0;\r
+    screen->swap_delta = 0;\r
+    screen->swap_dumy = 0;\r
+\r
+    /* Operation function*/\r
+    screen->init = NULL;\r
+    screen->standby = NULL;\r
+}\r
+\r
+\r