checkout 蔡枫对LCD部分的修改
authorroot <root@yxj-desktop.(none)>
Mon, 2 May 2011 06:06:17 +0000 (14:06 +0800)
committerroot <root@yxj-desktop.(none)>
Mon, 2 May 2011 06:06:17 +0000 (14:06 +0800)
arch/arm/mach-rk29/board-rk29-ddr3sdk.c
arch/arm/mach-rk29/board-rk29sdk.c
arch/arm/mach-rk29/include/mach/board.h
drivers/input/touchscreen/eeti_egalax_i2c.c [changed mode: 0644->0755]

index 1bea74ce3f7170f9ecb96b371e771f034dbf1121..31f1a6008463c2f905f4a4eb166c0de80405166c 100755 (executable)
@@ -131,7 +131,7 @@ struct rk29_nand_platform_data rk29_nand_data = {
 *****************************************************************************************/
 #define FB_ID                       0
 #define FB_DISPLAY_ON_PIN           RK29_PIN6_PD0
-#define FB_LCD_STANDBY_PIN          RK29_PIN6_PD1
+#define FB_LCD_STANDBY_PIN          INVALID_GPIO
 #define FB_LCD_CABC_EN_PIN          RK29_PIN6_PD2
 #define FB_MCU_FMK_PIN              INVALID_GPIO
 
@@ -139,6 +139,15 @@ struct rk29_nand_platform_data rk29_nand_data = {
 #define FB_LCD_STANDBY_VALUE        GPIO_HIGH
 
 //#endif
+/*****************************************************************************************
+* touch screen devices
+* author: cf@rock-chips.com
+*****************************************************************************************/
+#define TOUCH_SCREEN_STANDBY_PIN          RK29_PIN6_PD1
+#define TOUCH_SCREEN_STANDBY_VALUE        GPIO_HIGH
+#define TOUCH_SCREEN_DISPLAY_PIN          INVALID_GPIO
+#define TOUCH_SCREEN_DISPLAY_VALUE        GPIO_HIGH
+
 static int rk29_lcd_io_init(void)
 {
     int ret = 0;
@@ -173,24 +182,52 @@ static int rk29_fb_io_init(struct rk29_fb_setting_info *fb_setting)
         }
         gpio_direction_input(FB_MCU_FMK_PIN);
     }
-    if(fb_setting->disp_on_en && (FB_DISPLAY_ON_PIN != INVALID_GPIO))
+    if(fb_setting->disp_on_en)
     {
-        ret = gpio_request(FB_DISPLAY_ON_PIN, NULL);
-        if(ret != 0)
+        if(FB_DISPLAY_ON_PIN != INVALID_GPIO)
         {
-            gpio_free(FB_DISPLAY_ON_PIN);
-            printk(">>>>>> FB_DISPLAY_ON_PIN gpio_request err \n ");
+            ret = gpio_request(FB_DISPLAY_ON_PIN, NULL);
+            if(ret != 0)
+            {
+                gpio_free(FB_DISPLAY_ON_PIN);
+                printk(">>>>>> FB_DISPLAY_ON_PIN gpio_request err \n ");
+            }
+        }
+        else
+        {
+             ret = gpio_request(TOUCH_SCREEN_DISPLAY_PIN, NULL);
+             if(ret != 0)
+             {
+                 gpio_free(TOUCH_SCREEN_DISPLAY_PIN);
+                 printk(">>>>>> TOUCH_SCREEN_DISPLAY_PIN gpio_request err \n ");
+             }
+             gpio_direction_output(TOUCH_SCREEN_DISPLAY_PIN, 0);
+             gpio_set_value(TOUCH_SCREEN_DISPLAY_PIN, TOUCH_SCREEN_DISPLAY_VALUE);
         }
     }
 
-    if(fb_setting->disp_on_en && (FB_LCD_STANDBY_PIN != INVALID_GPIO))
+    if(fb_setting->disp_on_en)
     {
-        ret = gpio_request(FB_LCD_STANDBY_PIN, NULL);
-        if(ret != 0)
+        if(FB_LCD_STANDBY_PIN != INVALID_GPIO)
         {
-            gpio_free(FB_LCD_STANDBY_PIN);
-            printk(">>>>>> FB_LCD_STANDBY_PIN gpio_request err \n ");
+             ret = gpio_request(FB_LCD_STANDBY_PIN, NULL);
+             if(ret != 0)
+             {
+                 gpio_free(FB_LCD_STANDBY_PIN);
+                 printk(">>>>>> FB_LCD_STANDBY_PIN gpio_request err \n ");
+             }
         }
+        else
+        {
+             ret = gpio_request(TOUCH_SCREEN_STANDBY_PIN, NULL);
+             if(ret != 0)
+             {
+                 gpio_free(TOUCH_SCREEN_STANDBY_PIN);
+                 printk(">>>>>> TOUCH_SCREEN_STANDBY_PIN gpio_request err \n ");
+             }
+             gpio_direction_output(TOUCH_SCREEN_STANDBY_PIN, 0);
+             gpio_set_value(TOUCH_SCREEN_STANDBY_PIN, TOUCH_SCREEN_STANDBY_VALUE);
+         }
     }
 
     if(FB_LCD_CABC_EN_PIN != INVALID_GPIO)
@@ -387,7 +424,10 @@ static int EETI_EGALAX_init_platform_hw(void)
 static struct eeti_egalax_platform_data eeti_egalax_info = {
   .model= 1003,
   .init_platform_hw= EETI_EGALAX_init_platform_hw,
-
+  .standby_pin = TOUCH_SCREEN_STANDBY_PIN,
+  .standby_value = TOUCH_SCREEN_STANDBY_VALUE,
+  .disp_on_pin = TOUCH_SCREEN_DISPLAY_PIN,
+  .disp_on_value = TOUCH_SCREEN_DISPLAY_VALUE,
 };
 #endif
 /*MMA8452 gsensor*/
@@ -512,6 +552,20 @@ static struct i2c_board_info __initdata board_i2c0_devices[] = {
                .flags                  = 0,
        },
 #endif
+#if defined (CONFIG_SND_SOC_alc5621)
+        {
+                .type                   = "ALC5621",
+                .addr                   = 0x1a,
+                .flags                  = 0,
+        },
+#endif
+#if defined (CONFIG_SND_SOC_alc5631)
+        {
+                .type                   = "rt5631",
+                .addr                   = 0x1a,
+                .flags                  = 0,
+        },
+#endif
 #if defined (CONFIG_SND_SOC_RK1000)
        {
                .type                   = "rk1000_i2c_codec",
@@ -604,9 +658,10 @@ static struct i2c_board_info __initdata board_i2c2_devices[] = {
     {
       .type           = "p1003_touch",
       .addr           = 0x04,
-      .flags          = 0,
+      .flags          = 0, //I2C_M_NEED_DELAY
       .irq            = RK29_PIN0_PA2,
       .platform_data  = &p1003_info,
+      //.udelay                  = 100
     },
 #endif
 #if defined (CONFIG_EETI_EGALAX)
@@ -894,13 +949,35 @@ static int rk29_sensor_ioctrl(struct device *dev,enum rk29camera_ioctrl_cmd cmd,
                {
                        if (camera_flash != INVALID_GPIO) {
                                if (camera_io_init & RK29_CAM_FLASHACTIVE_MASK) {
-                                       if (on) {
-                                       gpio_set_value(camera_flash, ((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS));
-                                       //printk("\n%s..%s..FlashPin=%d ..PinLevel = %x \n",__FUNCTION__,dev_name(dev),camera_flash, ((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS));
-                                       } else {
-                                               gpio_set_value(camera_flash,(((~camera_ioflag)&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS));
-                                       //printk("\n%s..%s..FlashPin= %d..PinLevel = %x   \n",__FUNCTION__,dev_name(dev), camera_flash, (((~camera_ioflag)&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS));
-                               }
+                    switch (on)
+                    {
+                        case Flash_Off:
+                        {
+                            gpio_set_value(camera_flash,(((~camera_ioflag)&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS));
+                                           //printk("\n%s..%s..FlashPin= %d..PinLevel = %x   \n",__FUNCTION__,dev_name(dev), camera_flash, (((~camera_ioflag)&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS)); 
+                                           break;
+                        }
+
+                        case Flash_On:
+                        {
+                            gpio_set_value(camera_flash, ((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS));
+                                           //printk("\n%s..%s..FlashPin=%d ..PinLevel = %x \n",__FUNCTION__,dev_name(dev),camera_flash, ((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS));
+                                           break;
+                        }
+
+                        case Flash_Torch:
+                        {
+                            gpio_set_value(camera_flash, ((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS));
+                                           //printk("\n%s..%s..FlashPin=%d ..PinLevel = %x \n",__FUNCTION__,dev_name(dev),camera_flash, ((camera_ioflag&RK29_CAM_FLASHACTIVE_MASK)>>RK29_CAM_FLASHACTIVE_BITPOS));
+                                           break;
+                        }
+
+                        default:
+                        {
+                            printk("\n%s..%s..Flash command(%d) is invalidate \n",__FUNCTION__,dev_name(dev),on);
+                            break;
+                        }
+                    }
                                } else {
                                        ret = RK29_CAM_EIO_REQUESTFAIL;
                                        printk("\n%s..%s..FlashPin=%d request failed!\n",__FUNCTION__,dev_name(dev),camera_flash);
@@ -1874,7 +1951,7 @@ static void __init machine_rk29_mapio(void)
        rk29_map_common_io();
        rk29_setup_early_printk();
        rk29_sram_init();
-       rk29_clock_init(periph_pll_300mhz);
+       rk29_clock_init(periph_pll_288mhz);
        rk29_iomux_init();
 }
 
index 22442001d422769cb0950f202fbba529818a0ecf..c3d26a03f82b3d42b77e6d688c816738530369f7 100755 (executable)
@@ -139,6 +139,15 @@ struct rk29_nand_platform_data rk29_nand_data = {
 #define FB_LCD_STANDBY_VALUE        GPIO_HIGH
 
 //#endif
+/*****************************************************************************************
+* touch screen devices
+* author: cf@rock-chips.com
+*****************************************************************************************/
+#define TOUCH_SCREEN_STANDBY_PIN          INVALID_GPIO
+#define TOUCH_SCREEN_STANDBY_VALUE        GPIO_HIGH
+#define TOUCH_SCREEN_DISPLAY_PIN          INVALID_GPIO
+#define TOUCH_SCREEN_DISPLAY_VALUE        GPIO_HIGH
+
 static int rk29_lcd_io_init(void)
 {
     int ret = 0;
@@ -173,24 +182,52 @@ static int rk29_fb_io_init(struct rk29_fb_setting_info *fb_setting)
         }
         gpio_direction_input(FB_MCU_FMK_PIN);
     }
-    if(fb_setting->disp_on_en && (FB_DISPLAY_ON_PIN != INVALID_GPIO))
+    if(fb_setting->disp_on_en)
     {
-        ret = gpio_request(FB_DISPLAY_ON_PIN, NULL);
-        if(ret != 0)
+        if(FB_DISPLAY_ON_PIN != INVALID_GPIO)
+        {
+            ret = gpio_request(FB_DISPLAY_ON_PIN, NULL);
+            if(ret != 0)
+            {
+                gpio_free(FB_DISPLAY_ON_PIN);
+                printk(">>>>>> FB_DISPLAY_ON_PIN gpio_request err \n ");
+            }
+        }
+        else
         {
-            gpio_free(FB_DISPLAY_ON_PIN);
-            printk(">>>>>> FB_DISPLAY_ON_PIN gpio_request err \n ");
+             ret = gpio_request(TOUCH_SCREEN_DISPLAY_PIN, NULL);
+             if(ret != 0)
+             {
+                 gpio_free(TOUCH_SCREEN_DISPLAY_PIN);
+                 printk(">>>>>> TOUCH_SCREEN_DISPLAY_PIN gpio_request err \n ");
+             }
+             gpio_direction_output(TOUCH_SCREEN_DISPLAY_PIN, 0);
+             gpio_set_value(TOUCH_SCREEN_DISPLAY_PIN, TOUCH_SCREEN_DISPLAY_VALUE);
         }
     }
 
-    if(fb_setting->disp_on_en && (FB_LCD_STANDBY_PIN != INVALID_GPIO))
+    if(fb_setting->disp_on_en)
     {
-        ret = gpio_request(FB_LCD_STANDBY_PIN, NULL);
-        if(ret != 0)
+        if(FB_LCD_STANDBY_PIN != INVALID_GPIO)
         {
-            gpio_free(FB_LCD_STANDBY_PIN);
-            printk(">>>>>> FB_LCD_STANDBY_PIN gpio_request err \n ");
+             ret = gpio_request(FB_LCD_STANDBY_PIN, NULL);
+             if(ret != 0)
+             {
+                 gpio_free(FB_LCD_STANDBY_PIN);
+                 printk(">>>>>> FB_LCD_STANDBY_PIN gpio_request err \n ");
+             }
         }
+        else
+        {
+             ret = gpio_request(TOUCH_SCREEN_STANDBY_PIN, NULL);
+             if(ret != 0)
+             {
+                 gpio_free(TOUCH_SCREEN_STANDBY_PIN);
+                 printk(">>>>>> TOUCH_SCREEN_STANDBY_PIN gpio_request err \n ");
+             }
+             gpio_direction_output(TOUCH_SCREEN_STANDBY_PIN, 0);
+             gpio_set_value(TOUCH_SCREEN_STANDBY_PIN, TOUCH_SCREEN_STANDBY_VALUE);
+         }
     }
 
     if(FB_LCD_CABC_EN_PIN != INVALID_GPIO)
@@ -387,7 +424,10 @@ static int EETI_EGALAX_init_platform_hw(void)
 static struct eeti_egalax_platform_data eeti_egalax_info = {
   .model= 1003,
   .init_platform_hw= EETI_EGALAX_init_platform_hw,
-
+  .standby_pin = TOUCH_SCREEN_STANDBY_PIN,
+  .standby_value = TOUCH_SCREEN_STANDBY_VALUE,
+  .disp_on_pin = TOUCH_SCREEN_DISPLAY_PIN,
+  .disp_on_value = TOUCH_SCREEN_DISPLAY_VALUE,
 };
 #endif
 /*MMA8452 gsensor*/
@@ -481,7 +521,7 @@ struct rk29_i2c_platform_data default_i2c1_data = {
        .flags      = 0,
        .slave_addr = 0xff,
        .scl_rate  = 400*1000,
-       .mode           = I2C_MODE_POLL,
+       .mode           = I2C_MODE_IRQ,
        .io_init = rk29_i2c1_io_init,
 };
 
@@ -499,7 +539,7 @@ struct rk29_i2c_platform_data default_i2c3_data = {
        .flags      = 0,
        .slave_addr = 0xff,
        .scl_rate  = 400*1000,
-       .mode           = I2C_MODE_POLL,
+       .mode           = I2C_MODE_IRQ,
        .io_init = rk29_i2c3_io_init,
 };
 
@@ -646,29 +686,43 @@ static struct i2c_board_info __initdata board_i2c3_devices[] = {
  * author: ddl@rock-chips.com
  *****************************************************************************************/
 #ifdef CONFIG_VIDEO_RK29
-#define SENSOR_NAME_0 RK29_CAM_SENSOR_NAME_OV5642                      /* back camera sensor */
-#define SENSOR_IIC_ADDR_0          0x78
-#define SENSOR_IIC_ADAPTER_ID_0    1
-#define SENSOR_POWER_PIN_0         INVALID_GPIO
-#define SENSOR_RESET_PIN_0         INVALID_GPIO
-#define SENSOR_POWERDN_PIN_0       RK29_PIN6_PB7
-#define SENSOR_FALSH_PIN_0         INVALID_GPIO
-#define SENSOR_POWERACTIVE_LEVEL_0 RK29_CAM_POWERACTIVE_L
-#define SENSOR_RESETACTIVE_LEVEL_0 RK29_CAM_RESETACTIVE_L
-#define SENSOR_POWERDNACTIVE_LEVEL_0 RK29_CAM_POWERDNACTIVE_H
-#define SENSOR_FLASHACTIVE_LEVEL_0 RK29_CAM_FLASHACTIVE_L
-
-#define SENSOR_NAME_1 RK29_CAM_SENSOR_NAME_OV2659                      /* front camera sensor */
-#define SENSOR_IIC_ADDR_1          0x60
-#define SENSOR_IIC_ADAPTER_ID_1    1
-#define SENSOR_POWER_PIN_1         INVALID_GPIO
-#define SENSOR_RESET_PIN_1         INVALID_GPIO
-#define SENSOR_POWERDN_PIN_1       RK29_PIN5_PD7
-#define SENSOR_FALSH_PIN_1         INVALID_GPIO
-#define SENSOR_POWERACTIVE_LEVEL_1 RK29_CAM_POWERACTIVE_L
-#define SENSOR_RESETACTIVE_LEVEL_1 RK29_CAM_RESETACTIVE_L
-#define SENSOR_POWERDNACTIVE_LEVEL_1 RK29_CAM_POWERDNACTIVE_H
-#define SENSOR_FLASHACTIVE_LEVEL_1 RK29_CAM_FLASHACTIVE_L
+/*---------------- Camera Sensor Configuration Begin ------------------------*/
+#define CONFIG_SENSOR_0 RK29_CAM_SENSOR_OV5642                      /* back camera sensor */
+#define CONFIG_SENSOR_IIC_ADDR_0           0x78
+#define CONFIG_SENSOR_IIC_ADAPTER_ID_0    1
+#define CONFIG_SENSOR_POWER_PIN_0         INVALID_GPIO
+#define CONFIG_SENSOR_RESET_PIN_0         INVALID_GPIO
+#define CONFIG_SENSOR_POWERDN_PIN_0       RK29_PIN6_PB7
+#define CONFIG_SENSOR_FALSH_PIN_0         INVALID_GPIO
+#define CONFIG_SENSOR_POWERACTIVE_LEVEL_0 RK29_CAM_POWERACTIVE_L
+#define CONFIG_SENSOR_RESETACTIVE_LEVEL_0 RK29_CAM_RESETACTIVE_L
+#define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_0 RK29_CAM_POWERDNACTIVE_H
+#define CONFIG_SENSOR_FLASHACTIVE_LEVEL_0 RK29_CAM_FLASHACTIVE_L
+
+#define CONFIG_SENSOR_1 RK29_CAM_SENSOR_OV2659                      /* front camera sensor */
+#define CONFIG_SENSOR_IIC_ADDR_1           0x60
+#define CONFIG_SENSOR_IIC_ADAPTER_ID_1    1
+#define CONFIG_SENSOR_POWER_PIN_1         INVALID_GPIO
+#define CONFIG_SENSOR_RESET_PIN_1         INVALID_GPIO
+#define CONFIG_SENSOR_POWERDN_PIN_1       RK29_PIN5_PD7
+#define CONFIG_SENSOR_FALSH_PIN_1         INVALID_GPIO
+#define CONFIG_SENSOR_POWERACTIVE_LEVEL_1 RK29_CAM_POWERACTIVE_L
+#define CONFIG_SENSOR_RESETACTIVE_LEVEL_1 RK29_CAM_RESETACTIVE_L
+#define CONFIG_SENSOR_POWERDNACTIVE_LEVEL_1 RK29_CAM_POWERDNACTIVE_H
+#define CONFIG_SENSOR_FLASHACTIVE_LEVEL_1 RK29_CAM_FLASHACTIVE_L
+/*---------------- Camera Sensor Configuration End------------------------*/
+
+#define _CONS(a,b) a##b
+#define CONS(a,b) _CONS(a,b)
+
+#define __STR(x) #x
+#define _STR(x) __STR(x)
+#define STR(x) _STR(x)
+
+#define SENSOR_NAME_0 STR(CONFIG_SENSOR_0)                     /* back camera sensor */
+#define SENSOR_NAME_1 STR(CONFIG_SENSOR_1)                     /* front camera sensor */
+#define SENSOR_DEVICE_NAME_0  STR(CONS(CONFIG_SENSOR_0, _back))
+#define SENSOR_DEVICE_NAME_1  STR(CONS(CONFIG_SENSOR_1, _front))
 
 static int rk29_sensor_io_init(void);
 static int rk29_sensor_io_deinit(int sensor);
@@ -680,21 +734,21 @@ static struct rk29camera_platform_data rk29_camera_platform_data = {
     .sensor_ioctrl = rk29_sensor_ioctrl,
     .gpio_res = {
         {
-            .gpio_reset = SENSOR_RESET_PIN_0,
-            .gpio_power = SENSOR_POWER_PIN_0,
-            .gpio_powerdown = SENSOR_POWERDN_PIN_0,
-            .gpio_flash = SENSOR_FALSH_PIN_0,
-            .gpio_flag = (SENSOR_POWERACTIVE_LEVEL_0|SENSOR_RESETACTIVE_LEVEL_0|SENSOR_POWERDNACTIVE_LEVEL_0|SENSOR_FLASHACTIVE_LEVEL_0),
+            .gpio_reset = CONFIG_SENSOR_RESET_PIN_0,
+            .gpio_power = CONFIG_SENSOR_POWER_PIN_0,
+            .gpio_powerdown = CONFIG_SENSOR_POWERDN_PIN_0,
+            .gpio_flash = CONFIG_SENSOR_FALSH_PIN_0,
+            .gpio_flag = (CONFIG_SENSOR_POWERACTIVE_LEVEL_0|CONFIG_SENSOR_RESETACTIVE_LEVEL_0|CONFIG_SENSOR_POWERDNACTIVE_LEVEL_0|CONFIG_SENSOR_FLASHACTIVE_LEVEL_0),
             .gpio_init = 0,
-            .dev_name = SENSOR_NAME_0,
+            .dev_name = SENSOR_DEVICE_NAME_0,
         }, {
-            .gpio_reset = SENSOR_RESET_PIN_1,
-            .gpio_power = SENSOR_POWER_PIN_1,
-            .gpio_powerdown = SENSOR_POWERDN_PIN_1,
-            .gpio_flash = SENSOR_FALSH_PIN_1,
-            .gpio_flag = (SENSOR_POWERACTIVE_LEVEL_1|SENSOR_RESETACTIVE_LEVEL_1|SENSOR_POWERDNACTIVE_LEVEL_1|SENSOR_FLASHACTIVE_LEVEL_1),
+            .gpio_reset = CONFIG_SENSOR_RESET_PIN_1,
+            .gpio_power = CONFIG_SENSOR_POWER_PIN_1,
+            .gpio_powerdown = CONFIG_SENSOR_POWERDN_PIN_1,
+            .gpio_flash = CONFIG_SENSOR_FALSH_PIN_1,
+            .gpio_flag = (CONFIG_SENSOR_POWERACTIVE_LEVEL_1|CONFIG_SENSOR_RESETACTIVE_LEVEL_1|CONFIG_SENSOR_POWERDNACTIVE_LEVEL_1|CONFIG_SENSOR_FLASHACTIVE_LEVEL_1),
             .gpio_init = 0,
-            .dev_name = SENSOR_NAME_1,
+            .dev_name = SENSOR_DEVICE_NAME_1,
         }
     },
        #ifdef CONFIG_VIDEO_RK29_WORK_IPP
@@ -890,10 +944,10 @@ static int rk29_sensor_ioctrl(struct device *dev,enum rk29camera_ioctrl_cmd cmd,
                                if (camera_io_init & RK29_CAM_POWERDNACTIVE_MASK) {
                                        if (on) {
                                        gpio_set_value(camera_powerdown, ((camera_ioflag&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS));
-                                       //printk("\n%s..%s..PowerDownPin=%d ..PinLevel = %x \n",__FUNCTION__,dev_name(dev),camera_powerdown, ((camera_ioflag&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS));
+                                       printk("\n%s..%s..PowerDownPin=%d ..PinLevel = %x \n",__FUNCTION__,dev_name(dev),camera_powerdown, ((camera_ioflag&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS));
                                        } else {
                                                gpio_set_value(camera_powerdown,(((~camera_ioflag)&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS));
-                                       //printk("\n%s..%s..PowerDownPin= %d..PinLevel = %x   \n",__FUNCTION__,dev_name(dev), camera_powerdown, (((~camera_ioflag)&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS));
+                                       printk("\n%s..%s..PowerDownPin= %d..PinLevel = %x   \n",__FUNCTION__,dev_name(dev), camera_powerdown, (((~camera_ioflag)&RK29_CAM_POWERDNACTIVE_MASK)>>RK29_CAM_POWERDNACTIVE_BITPOS));
                                }
                                } else {
                                        ret = RK29_CAM_EIO_REQUESTFAIL;
@@ -972,10 +1026,10 @@ static int rk29_sensor_powerdown(struct device *dev, int on)
 {
        return rk29_sensor_ioctrl(dev,Cam_PowerDown,on);
 }
-#if (SENSOR_IIC_ADDR_0 != 0x00)
+#if (CONFIG_SENSOR_IIC_ADDR_0 != 0x00)
 static struct i2c_board_info rk29_i2c_cam_info_0[] = {
        {
-               I2C_BOARD_INFO(SENSOR_NAME_0, SENSOR_IIC_ADDR_0>>1)
+               I2C_BOARD_INFO(SENSOR_NAME_0, CONFIG_SENSOR_IIC_ADDR_0>>1)
        },
 };
 
@@ -984,7 +1038,7 @@ static struct soc_camera_link rk29_iclink_0 = {
        .power          = rk29_sensor_power,
        .powerdown  = rk29_sensor_powerdown,
        .board_info     = &rk29_i2c_cam_info_0[0],
-       .i2c_adapter_id = SENSOR_IIC_ADAPTER_ID_0,
+       .i2c_adapter_id = CONFIG_SENSOR_IIC_ADAPTER_ID_0,
        .module_name    = SENSOR_NAME_0,
 };
 
@@ -993,14 +1047,14 @@ static struct platform_device rk29_soc_camera_pdrv_0 = {
        .name   = "soc-camera-pdrv",
        .id     = 0,
        .dev    = {
-               .init_name = SENSOR_NAME_0,
+               .init_name = SENSOR_DEVICE_NAME_0,
                .platform_data = &rk29_iclink_0,
        },
 };
 #endif
 static struct i2c_board_info rk29_i2c_cam_info_1[] = {
        {
-               I2C_BOARD_INFO(SENSOR_NAME_1, SENSOR_IIC_ADDR_1>>1)
+               I2C_BOARD_INFO(SENSOR_NAME_1, CONFIG_SENSOR_IIC_ADDR_1>>1)
        },
 };
 
@@ -1009,7 +1063,7 @@ static struct soc_camera_link rk29_iclink_1 = {
        .power          = rk29_sensor_power,
        .powerdown  = rk29_sensor_powerdown,
        .board_info     = &rk29_i2c_cam_info_1[0],
-       .i2c_adapter_id = SENSOR_IIC_ADAPTER_ID_1,
+       .i2c_adapter_id = CONFIG_SENSOR_IIC_ADAPTER_ID_1,
        .module_name    = SENSOR_NAME_1,
 };
 
@@ -1018,7 +1072,7 @@ static struct platform_device rk29_soc_camera_pdrv_1 = {
        .name   = "soc-camera-pdrv",
        .id     = 1,
        .dev    = {
-               .init_name = SENSOR_NAME_1,
+               .init_name = SENSOR_DEVICE_NAME_1,
                .platform_data = &rk29_iclink_1,
        },
 };
@@ -1587,7 +1641,7 @@ static struct platform_device *devices[] __initdata = {
 #endif
 #ifdef CONFIG_VIDEO_RK29
        &rk29_device_camera,      /* ddl@rock-chips.com : camera support  */
-       #if (SENSOR_IIC_ADDR_0 != 0x00)
+       #if (CONFIG_SENSOR_IIC_ADDR_0 != 0x00)
        &rk29_soc_camera_pdrv_0,
        #endif
        &rk29_soc_camera_pdrv_1,
@@ -1911,7 +1965,7 @@ static void __init machine_rk29_mapio(void)
        rk29_map_common_io();
        rk29_setup_early_printk();
        rk29_sram_init();
-       rk29_clock_init(periph_pll_300mhz);
+       rk29_clock_init(periph_pll_288mhz);
        rk29_iomux_init();
 }
 
index 3585a148a2c2c17b5b2e027d99a77fa24f06b97d..01c62dc0eb53964a7c42aa6ade669c259f49d683 100755 (executable)
@@ -86,8 +86,8 @@ struct rk29_bl_info{
     int (*io_deinit)(void);
        int (*pwm_suspend)(void);
        int (*pwm_resume)(void);
-    struct timer_list timer;  
-    struct notifier_block freq_transition;
+       int min_brightness;     /* 0 ~ 255 */
+       unsigned int delay_ms;  /* in milliseconds */
 };
 
 struct wifi_platform_data {
@@ -152,6 +152,11 @@ struct eeti_egalax_platform_data{
     int     (*eeti_egalax_platform_sleep)(void);
     int     (*eeti_egalax_platform_wakeup)(void);
     void    (*exit_platform_hw)(void);
+    int     standby_pin;
+    int     standby_value;
+    int     disp_on_pin;
+    int     disp_on_value;
 };
 
 /*sintex touch*/
@@ -234,7 +239,6 @@ struct tca6424_platform_data {
 
 void __init rk29_setup_early_printk(void);
 void __init rk29_map_common_io(void);
-void __init rk29_clock_init(unsigned long ppll_rate);
 void __init board_power_init(void);
 
 #define BOOT_MODE_NORMAL               0
@@ -244,12 +248,14 @@ void __init board_power_init(void);
 #define BOOT_MODE_POWER_TEST           4
 #define BOOT_MODE_OFFMODE_CHARGING     5
 int board_boot_mode(void);
-enum periph_pll{
-       periph_pll_96mhz=96000000,
-       periph_pll_144mhz=144000000,
-       periph_pll_288mhz=288000000,
-       periph_pll_300mhz=300000000,
+
+enum periph_pll {
+       periph_pll_96mhz = 96000000,
+       periph_pll_144mhz = 144000000,
+       periph_pll_288mhz = 288000000,
+       periph_pll_300mhz = 300000000,
 };
+void __init rk29_clock_init(enum periph_pll ppll_rate);
 
 /* for USB detection */
 #ifdef CONFIG_USB_GADGET
old mode 100644 (file)
new mode 100755 (executable)
index 6a02cb5..3325f1c
@@ -496,6 +496,29 @@ static irqreturn_t egalax_i2c_interrupt(int irq, void *dev_id)
        return IRQ_HANDLED;
 }
 
+
+void egalax_i2c_set_standby(struct i2c_client *client, int enable)
+{
+        struct eeti_egalax_platform_data *mach_info = client->dev.platform_data;
+       unsigned display_on = mach_info->disp_on_pin;
+       unsigned lcd_standby = mach_info->standby_pin;
+
+       int display_on_pol = mach_info->disp_on_value;
+       int lcd_standby_pol = mach_info->standby_value;
+
+        printk("%s : %s, enable = %d", __FILE__, __FUNCTION__,enable);
+    if(display_on != INVALID_GPIO)
+    {
+        gpio_direction_output(display_on, 0);
+        gpio_set_value(display_on, enable ? display_on_pol : !display_on_pol);                         
+    }
+    if(lcd_standby != INVALID_GPIO)
+    {
+        gpio_direction_output(lcd_standby, 0);
+       gpio_set_value(lcd_standby, enable ? lcd_standby_pol : !lcd_standby_pol);                         
+    }
+}
+
 #ifdef CONFIG_PM
 static int egalax_i2c_suspend(struct i2c_client *client, pm_message_t mesg)
 {
@@ -518,14 +541,14 @@ static int egalax_i2c_suspend(struct i2c_client *client, pm_message_t mesg)
        {
                printk(KERN_DEBUG "[egalax_i2c]: device_may_wakeup false\n");
        }
-
+       egalax_i2c_set_standby(client, 0);
        return 0;
 }
 
 static int egalax_i2c_resume(struct i2c_client *client)
 {
        struct _egalax_i2c *egalax_i2c = i2c_get_clientdata(client);
-       
+       egalax_i2c_set_standby(client, 1);      
        if(device_may_wakeup(&client->dev)) 
        {
                disable_irq_wake(p_egalax_i2c_dev->irq);