From: root Date: Thu, 30 Jun 2011 11:22:42 +0000 (+0800) Subject: Improve something for A22: X-Git-Tag: firefly_0821_release~10144^2~11 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=a64838fe3138aa4ea50afe232cda25340adf9737;p=firefly-linux-kernel-4.4.55.git Improve something for A22: 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; --- diff --git a/arch/arm/configs/rk29_a22_defconfig b/arch/arm/configs/rk29_a22_defconfig index dcf596facfc3..c41118ef5b0b 100644 --- a/arch/arm/configs/rk29_a22_defconfig +++ b/arch/arm/configs/rk29_a22_defconfig @@ -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 diff --git a/drivers/input/touchscreen/ili2102_ts.c b/drivers/input/touchscreen/ili2102_ts.c index 099f49fa9731..8bcf073ecad9 100755 --- a/drivers/input/touchscreen/ili2102_ts.c +++ b/drivers/input/touchscreen/ili2102_ts.c @@ -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>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 diff --git a/drivers/power/wm831x_charger_display.c b/drivers/power/wm831x_charger_display.c index d79c80515b3c..36fc26d04f7f 100755 --- a/drivers/power/wm831x_charger_display.c +++ b/drivers/power/wm831x_charger_display.c @@ -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) {