From bd5e9af782b6b769c74645a021ae4a7aacd5104f Mon Sep 17 00:00:00 2001 From: root Date: Mon, 2 May 2011 14:06:17 +0800 Subject: [PATCH] =?utf8?q?checkout=20=E8=94=A1=E6=9E=AB=E5=AF=B9LCD?= =?utf8?q?=E9=83=A8=E5=88=86=E7=9A=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- arch/arm/mach-rk29/board-rk29-ddr3sdk.c | 119 +++++++++++--- arch/arm/mach-rk29/board-rk29sdk.c | 172 +++++++++++++------- arch/arm/mach-rk29/include/mach/board.h | 22 ++- drivers/input/touchscreen/eeti_egalax_i2c.c | 27 ++- 4 files changed, 250 insertions(+), 90 deletions(-) mode change 100644 => 100755 drivers/input/touchscreen/eeti_egalax_i2c.c diff --git a/arch/arm/mach-rk29/board-rk29-ddr3sdk.c b/arch/arm/mach-rk29/board-rk29-ddr3sdk.c index 1bea74ce3f71..31f1a6008463 100755 --- a/arch/arm/mach-rk29/board-rk29-ddr3sdk.c +++ b/arch/arm/mach-rk29/board-rk29-ddr3sdk.c @@ -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(); } diff --git a/arch/arm/mach-rk29/board-rk29sdk.c b/arch/arm/mach-rk29/board-rk29sdk.c index 22442001d422..c3d26a03f82b 100755 --- a/arch/arm/mach-rk29/board-rk29sdk.c +++ b/arch/arm/mach-rk29/board-rk29sdk.c @@ -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(); } diff --git a/arch/arm/mach-rk29/include/mach/board.h b/arch/arm/mach-rk29/include/mach/board.h index 3585a148a2c2..01c62dc0eb53 100755 --- a/arch/arm/mach-rk29/include/mach/board.h +++ b/arch/arm/mach-rk29/include/mach/board.h @@ -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 diff --git a/drivers/input/touchscreen/eeti_egalax_i2c.c b/drivers/input/touchscreen/eeti_egalax_i2c.c old mode 100644 new mode 100755 index 6a02cb5f701c..3325f1c36a7f --- a/drivers/input/touchscreen/eeti_egalax_i2c.c +++ b/drivers/input/touchscreen/eeti_egalax_i2c.c @@ -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); -- 2.34.1