Improve something for A22:
authorroot <root@lw.(none)>
Thu, 30 Jun 2011 11:22:42 +0000 (19:22 +0800)
committerroot <root@lw.(none)>
Thu, 30 Jun 2011 11:35:33 +0000 (19:35 +0800)
1、use SPI0 init LCD to avoid SPI1 conflict between WM831X and lcd while system resume;
2、use polling instead of intterupt to read touch screen data to reduce CPU working;
3、reduce time of light backlight when charging to reduce power consumption;

arch/arm/configs/rk29_a22_defconfig
drivers/input/touchscreen/ili2102_ts.c
drivers/power/wm831x_charger_display.c

index dcf596facfc39f8fb2fe1254b9059bf17d7bd761..c41118ef5b0b11f724e98a7029091c0baaa28c4a 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # Linux kernel version: 2.6.32.27
-# Thu Jun 16 18:40:20 2011
+# Thu Jun 30 19:14:37 2011
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -203,6 +203,7 @@ CONFIG_WIFI_CONTROL_FUNC=y
 # CONFIG_MACH_RK29_PHONESDK is not set
 CONFIG_MACH_RK29_A22=y
 # CONFIG_MACH_RK29_PHONEPADSDK is not set
+# CONFIG_MACH_RK29_newton is not set
 # CONFIG_DDR_TYPE_DDRII is not set
 CONFIG_DDR_TYPE_LPDDR=y
 # CONFIG_DDR_TYPE_DDR3_800D is not set
@@ -227,6 +228,8 @@ CONFIG_DDR_TYPE_LPDDR=y
 # CONFIG_DDR_TYPE_DDR3_2133M is not set
 # CONFIG_DDR_TYPE_DDR3_2133N is not set
 # CONFIG_DDR_TYPE_DDR3_DEFAULT is not set
+CONFIG_RK29_MEM_SIZE_512M=y
+# CONFIG_RK29_MEM_SIZE_1G is not set
 CONFIG_RK29_MEM_SIZE_M=512
 CONFIG_DDR_SDRAM_FREQ=192
 
@@ -239,8 +242,10 @@ CONFIG_RK29_VPU=y
 CONFIG_RK29_LAST_LOG=y
 
 #
-# The control interface support for RK29 suspend 
+# support for RK29 power manage 
 #
+# CONFIG_RK29_CLK_SWITCH_TO_32K is not set
+# CONFIG_RK29_GPIO_SUSPEND is not set
 CONFIG_RK29_SPI_INSRAM=y
 
 #
@@ -597,6 +602,7 @@ CONFIG_MTD_NAND_IDS=y
 CONFIG_MTD_RKNAND=y
 CONFIG_MTD_NAND_RK29XX=y
 CONFIG_MTD_RKNAND_BUFFER=y
+# CONFIG_MTD_EMMC_CLK_POWER_SAVE is not set
 # CONFIG_MTD_NAND_RK29XX_DEBUG is not set
 # CONFIG_MTD_ONENAND is not set
 
@@ -633,6 +639,7 @@ CONFIG_APANIC_PLABEL="kpanic"
 CONFIG_MTK23D=y
 # CONFIG_FM580X is not set
 # CONFIG_MU509 is not set
+# CONFIG_RK29_NEWTON is not set
 # CONFIG_C2PORT is not set
 
 #
@@ -860,7 +867,9 @@ CONFIG_TOUCHSCREEN_ILI2102_IIC=y
 # CONFIG_EETI_EGALAX is not set
 # CONFIG_TOUCHSCREEN_IT7260 is not set
 # CONFIG_TOUCHSCREEN_GT801_IIC is not set
+# CONFIG_TOUCHSCREEN_GT818_IIC is not set
 # CONFIG_D70_L3188A is not set
+# CONFIG_TOUCHSCREEN_FT5406 is not set
 CONFIG_INPUT_MISC=y
 # CONFIG_INPUT_LPSENSOR_ISL29028 is not set
 # CONFIG_INPUT_LPSENSOR_CM3602 is not set
@@ -916,13 +925,17 @@ CONFIG_DEVKMEM=y
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_SERIAL_RK29=y
+CONFIG_SERIAL_RK29_STANDARD=y
 CONFIG_UART0_RK29=y
 CONFIG_UART0_CTS_RTS_RK29=y
+# CONFIG_UART0_DMA_RK29 is not set
 CONFIG_UART1_RK29=y
 CONFIG_UART2_RK29=y
 CONFIG_UART2_CTS_RTS_RK29=y
+# CONFIG_UART2_DMA_RK29 is not set
 CONFIG_UART3_RK29=y
 # CONFIG_UART3_CTS_RTS_RK29 is not set
+# CONFIG_UART3_DMA_RK29 is not set
 CONFIG_SERIAL_RK29_CONSOLE=y
 # CONFIG_SERIAL_SC8800 is not set
 CONFIG_UNIX98_PTYS=y
@@ -985,6 +998,8 @@ CONFIG_SPIM_RK29=y
 CONFIG_SPIM0_RK29=y
 CONFIG_SPIM1_RK29=y
 CONFIG_LCD_USE_SPIM_CONTROL=y
+CONFIG_LCD_USE_SPI0=y
+# CONFIG_LCD_USE_SPI1 is not set
 
 #
 # SPI Protocol Masters
@@ -1271,6 +1286,7 @@ CONFIG_LCD_NT35510=y
 # CONFIG_LCD_ILI9803_CPT4_3 is not set
 # CONFIG_DEFAULT_OUT_HDMI is not set
 # CONFIG_LCD_AT070TNA2 is not set
+# CONFIG_LCD_AT070TN93 is not set
 
 #
 # HDMI
@@ -1322,6 +1338,7 @@ CONFIG_SND_RK29_SOC_I2S_8CH=y
 # CONFIG_SND_RK29_SOC_alc5631 is not set
 # CONFIG_SND_RK29_SOC_RT5625 is not set
 CONFIG_SND_RK29_SOC_WM8994=y
+# CONFIG_SND_RK29_SOC_CS42L52 is not set
 # CONFIG_SND_RK29_CODEC_SOC_MASTER is not set
 CONFIG_SND_RK29_CODEC_SOC_SLAVE=y
 CONFIG_SND_SOC_I2C_AND_SPI=y
@@ -1471,6 +1488,7 @@ CONFIG_RTC_INTF_ALARM_DEV=y
 # I2C RTC drivers
 #
 # CONFIG_RTC_HYM8563 is not set
+# CONFIG_RTC_M41T66 is not set
 # CONFIG_RTC_DRV_DS1307 is not set
 # CONFIG_RTC_DRV_DS1374 is not set
 # CONFIG_RTC_DRV_DS1672 is not set
@@ -1546,14 +1564,6 @@ CONFIG_ANDROID_RAM_CONSOLE_ERROR_CORRECTION_POLYNOMIAL=0x11d
 CONFIG_ANDROID_TIMED_OUTPUT=y
 CONFIG_ANDROID_TIMED_GPIO=y
 CONFIG_ANDROID_LOW_MEMORY_KILLER=y
-
-#
-# Qualcomm MSM Camera And Video
-#
-
-#
-# Camera Sensor Selection
-#
 # CONFIG_DST is not set
 # CONFIG_POHMELFS is not set
 # CONFIG_PLAN9AUTH is not set
index 099f49fa9731855a412b371267df8eb8e49fb467..8bcf073ecad93281f2da86aa2027c006c35b165a 100755 (executable)
@@ -26,8 +26,8 @@ static int  ts_dbg_enable = 0;
                
 #define TOUCH_NUMBER 2
 
-static int touch_state[TOUCH_NUMBER] = {TOUCH_UP,TOUCH_UP};
-static unsigned int g_x[TOUCH_NUMBER] =  {0},g_y[TOUCH_NUMBER] = {0};
+static volatile int touch_state[TOUCH_NUMBER] = {TOUCH_UP,TOUCH_UP};
+static volatile unsigned int g_x[TOUCH_NUMBER] =  {0},g_y[TOUCH_NUMBER] = {0};
 
 struct ili2102_ts_data {
        u16             model;                  /* 801. */      
@@ -316,7 +316,7 @@ static int ili2102_init_panel(struct ili2102_ts_data *ts)
 
 static void ili2102_ts_work_func(struct work_struct *work)
 {
-       int i,ret;
+       int i,ret,num=1;
        int syn_flag = 0;
        unsigned int x, y;
        struct i2c_msg msg[2];
@@ -349,8 +349,12 @@ static void ili2102_ts_work_func(struct work_struct *work)
                printk("%s:i2c_transfer fail, ret=%d\n",__FUNCTION__,ret);
                goto out;
        }
-
-       for(i=0; i<TOUCH_NUMBER; i++)
+       if(buf[0]&0x02 == 0x02)
+               num = 2;
+       else
+               num = 1;
+       
+       for(i=0; i<num; i++)
        {
 
                if(!((buf[0]>>i)&0x01))
@@ -404,10 +408,10 @@ static void ili2102_ts_work_func(struct work_struct *work)
        if(syn_flag)
        input_sync(ts->input_dev);
 out:   
-#if 0
+#if 1
        if(ts->pendown)
        {
-               schedule_delayed_work(&ts->work, msecs_to_jiffies(10));
+               schedule_delayed_work(&ts->work, msecs_to_jiffies(12));
                ts->pendown = 0;
        }
        else
index d79c80515b3c3f958d3ae24eabbec9f45c74d745..36fc26d04f7fa6bf4af167248f202020f96301fa 100755 (executable)
@@ -343,8 +343,8 @@ static int rk29_charger_display(struct wm831x_chg *wm831x_chg)
                        wm831x_check_on_pin(wm831x_chg);
                }
                
-               //suspend when timeout(100*200ms)
-               if(wm831x_chg->cnt_disp++ > 100)
+               //suspend when timeout(about 50*200ms)
+               if(wm831x_chg->cnt_disp++ > 50)
                {
                        if(wm831x_chg->flag_suspend == 0)
                        {