rk610 lvds and scaler: support dual display on rk30xx
authoryxj <yxj@rock-chips.com>
Mon, 10 Sep 2012 06:40:01 +0000 (14:40 +0800)
committeryxj <yxj@rock-chips.com>
Mon, 10 Sep 2012 07:38:59 +0000 (15:38 +0800)
drivers/video/display/transmitter/rk610_lcd.c
drivers/video/display/transmitter/rk610_lcd.h

index 9ffac8db26540cadd41dd7b20cfc310aff2c6a2a..e1aaa012bb027b7876092ed8577abb1ebe44632d 100644 (file)
@@ -3,11 +3,11 @@
 #include <mach/gpio.h>\r
 #include <mach/iomux.h>\r
 #include <mach/board.h>\r
-\r
-#include <linux/hdmi.h>\r
 #include "rk610_lcd.h"\r
 #include <linux/mfd/rk610_core.h>\r
-#include "../../rk29_fb.h"\r
+#include <linux/rk_fb.h>\r
+#include "../../rockchip/hdmi/rk_hdmi.h"\r
+\r
 static struct rk610_lcd_info *g_lcd_inf = NULL;\r
 //static int rk610_scaler_read_p0_reg(struct i2c_client *client, char reg, char *val)\r
 //{\r
@@ -44,7 +44,7 @@ static void rk610_scaler_enable(struct i2c_client *client)
     bool den_inv = 0,hv_sync_inv = 0,clk_inv = 0;\r
     RK610_DBG(&client->dev,"%s \n",__FUNCTION__);\r
     g_lcd_inf->scl_inf.scl_pwr = ENABLE;\r
-    #ifdef CONFIG_HDMI_DUAL_DISP\r
+    #if defined(CONFIG_HDMI_DUAL_DISP) || defined(CONFIG_ONE_LCDC_DUAL_OUTPUT_INF)\r
     if(g_lcd_inf->screen !=NULL){\r
         den_inv = g_lcd_inf->screen->s_den_inv;\r
         hv_sync_inv = g_lcd_inf->screen->s_hv_sync_inv;\r
@@ -61,7 +61,7 @@ static void rk610_scaler_disable(struct i2c_client *client)
     RK610_DBG(&client->dev,"%s \n",__FUNCTION__);\r
     \r
     g_lcd_inf->scl_inf.scl_pwr = DISABLE;\r
-    #ifdef CONFIG_HDMI_DUAL_DISP\r
+    #if defined(CONFIG_HDMI_DUAL_DISP) || defined(CONFIG_ONE_LCDC_DUAL_OUTPUT_INF)\r
     if(g_lcd_inf->screen !=NULL){\r
         den_inv = g_lcd_inf->screen->s_den_inv;\r
         hv_sync_inv = g_lcd_inf->screen->s_hv_sync_inv;\r
@@ -106,7 +106,7 @@ static int rk610_output_config(struct i2c_client *client,struct rk29fb_screen *s
        }\r
        return 0;\r
 }\r
-#ifdef CONFIG_HDMI_DUAL_DISP\r
+#if defined(CONFIG_HDMI_DUAL_DISP) || defined(CONFIG_ONE_LCDC_DUAL_OUTPUT_INF)\r
 static int rk610_scaler_pll_set(struct i2c_client *client,struct rk29fb_screen *screen,u32 clkin )\r
 {\r
     char c=0;\r
@@ -189,14 +189,14 @@ static int rk610_scaler_fator_config(struct i2c_client *client ,struct rk29fb_sc
             /***************set scaler factor********************/\r
             scale_hv_factor(client,1280,screen->x_res,720,screen->y_res);\r
         break;\r
-        case HDMI_720x576p_50Hz_16x9:\r
-        case HDMI_720x576p_50Hz_4x3:\r
+        case HDMI_720x576p_50Hz_16_9:\r
+        case HDMI_720x576p_50Hz_4_3:\r
             rk610_scaler_pll_set(client,screen,27000000);\r
             /***************set scaler factor********************/\r
             scale_hv_factor(client,720,screen->x_res,576,screen->y_res);\r
             break;\r
-        case HDMI_720x480p_60Hz_16x9:\r
-        case HDMI_720x480p_60Hz_4x3:\r
+        case HDMI_720x480p_60Hz_16_9:\r
+        case HDMI_720x480p_60Hz_4_3:\r
             rk610_scaler_pll_set(client,screen,27000000);\r
             /***************set scaler factor********************/\r
             scale_hv_factor(client,720,screen->x_res,480,screen->y_res);\r
@@ -363,11 +363,11 @@ int rk610_lcd_scaler_set_param(struct rk29fb_screen *screen,bool enable )//enabl
         printk("%s screen == NULL FAIL\n",__FUNCTION__);\r
         return -1;\r
     }\r
-    RK610_DBG(&client->dev,"%s \n",__FUNCTION__);\r
+    RK610_DBG(&client->dev,"%s \n",__FUNCTION__,);\r
     \r
     g_lcd_inf->screen = screen;\r
     \r
-#ifdef CONFIG_HDMI_DUAL_DISP\r
+#if defined(CONFIG_HDMI_DUAL_DISP) || defined(CONFIG_ONE_LCDC_DUAL_OUTPUT_INF)\r
     if(enable == 1){\r
         g_lcd_inf->disp_mode = LCD_OUT_SCL;\r
         rk610_output_config(client,screen,LCD_OUT_SCL);\r
index 148ed8a1c77c5084986beba03f59eb8ce5c3a12a..8b46e07fedd7af84f40eb652002beb1ed33cd13d 100644 (file)
@@ -199,6 +199,7 @@ enum{
     SCALE_PLL(74250000,     33000000,   32, 9,  8),
     SCALE_PLL(74250000,     30375000,   36, 11, 8),
     SCALE_PLL(74250000,     25312500,   30, 11, 8),
+    SCALE_PLL(74250000,     74250000,   12, 3, 4),
 
     SCALE_PLL(27000000,     75000000,   100, 9,  4),
     SCALE_PLL(27000000,     72000000,   32, 3,  4),