From 29e4687206284bd5925820faad22923484f7f819 Mon Sep 17 00:00:00 2001 From: zwp Date: Sat, 4 Jun 2011 00:02:24 -0700 Subject: [PATCH] phone-pad:modify by zyw(mid sdk)fix white screen when power_on and resume ,update all sdk board file MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit mid更新了board配置,但是没有更新到phone-pad的sdk上。 --- arch/arm/mach-rk29/board-rk29phonepadsdk.c | 90 +++++++++++++++------- 1 file changed, 64 insertions(+), 26 deletions(-) diff --git a/arch/arm/mach-rk29/board-rk29phonepadsdk.c b/arch/arm/mach-rk29/board-rk29phonepadsdk.c index 10afc5c52c3c..7196627553b7 100644 --- a/arch/arm/mach-rk29/board-rk29phonepadsdk.c +++ b/arch/arm/mach-rk29/board-rk29phonepadsdk.c @@ -39,8 +39,8 @@ #include #include #include -#include /* ddl@rock-chips.com : camera support */ #include /* ddl@rock-chips.com : camera support */ +#include /* ddl@rock-chips.com : camera support */ #include #include #include @@ -153,21 +153,29 @@ struct rk29_nand_platform_data rk29_nand_data = { .io_init = rk29_nand_io_init, }; +/***************************************************************************************** +* 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 + #ifdef CONFIG_FB_RK29 /***************************************************************************************** * lcd devices * author: zyw@rock-chips.com *****************************************************************************************/ -//#ifdef CONFIG_LCD_TD043MGEA1 #define LCD_TXD_PIN INVALID_GPIO #define LCD_CLK_PIN INVALID_GPIO #define LCD_CS_PIN INVALID_GPIO /***************************************************************************************** -* frame buffe devices +* frame buffer devices pin define * author: zyw@rock-chips.com *****************************************************************************************/ #define FB_ID 0 -#define FB_DISPLAY_ON_PIN RK29_PIN6_PD0 +#define FB_DISPLAY_ON_PIN INVALID_GPIO// RK29_PIN6_PD0 #define FB_LCD_STANDBY_PIN RK29_PIN6_PD1 #define FB_LCD_CABC_EN_PIN RK29_PIN6_PD2 #define FB_MCU_FMK_PIN INVALID_GPIO @@ -175,16 +183,6 @@ struct rk29_nand_platform_data rk29_nand_data = { #define FB_DISPLAY_ON_VALUE GPIO_HIGH #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; @@ -205,6 +203,35 @@ static struct rk29lcd_info rk29_lcd_info = { .io_deinit = rk29_lcd_io_deinit, }; +int rk29_fb_io_enable(void) +{ + if(FB_DISPLAY_ON_PIN != INVALID_GPIO) + { + gpio_direction_output(FB_DISPLAY_ON_PIN, 0); + gpio_set_value(FB_DISPLAY_ON_PIN, FB_DISPLAY_ON_VALUE); + } + if(FB_LCD_STANDBY_PIN != INVALID_GPIO) + { + gpio_direction_output(FB_LCD_STANDBY_PIN, 0); + gpio_set_value(FB_LCD_STANDBY_PIN, FB_LCD_STANDBY_VALUE); + } + return 0; +} + +int rk29_fb_io_disable(void) +{ + if(FB_DISPLAY_ON_PIN != INVALID_GPIO) + { + gpio_direction_output(FB_DISPLAY_ON_PIN, 0); + gpio_set_value(FB_DISPLAY_ON_PIN, !FB_DISPLAY_ON_VALUE); + } + if(FB_LCD_STANDBY_PIN != INVALID_GPIO) + { + gpio_direction_output(FB_LCD_STANDBY_PIN, 0); + gpio_set_value(FB_LCD_STANDBY_PIN, !FB_LCD_STANDBY_VALUE); + } + return 0; +} static int rk29_fb_io_init(struct rk29_fb_setting_info *fb_setting) { @@ -278,19 +305,20 @@ static int rk29_fb_io_init(struct rk29_fb_setting_info *fb_setting) gpio_direction_output(FB_LCD_CABC_EN_PIN, 0); gpio_set_value(FB_LCD_CABC_EN_PIN, GPIO_LOW); } + + rk29_fb_io_enable(); //enable it return ret; } + static struct rk29fb_info rk29_fb_info = { .fb_id = FB_ID, - .disp_on_pin = FB_DISPLAY_ON_PIN, - .disp_on_value = FB_DISPLAY_ON_VALUE, - .standby_pin = FB_LCD_STANDBY_PIN, - .standby_value = FB_LCD_STANDBY_VALUE, .mcu_fmk_pin = FB_MCU_FMK_PIN, .lcd_info = &rk29_lcd_info, .io_init = rk29_fb_io_init, + .io_enable = rk29_fb_io_enable, + .io_disable = rk29_fb_io_disable, }; /* rk29 fb resource */ @@ -372,11 +400,11 @@ static struct platform_device rk29_vpu_mem_device = { .platform_data = &vpu_mem_pdata, }, }; - +#ifdef CONFIG_VIDEO_RK29XX_VOUT static struct platform_device rk29_v4l2_output_devce = { .name = "rk29_vout", }; - +#endif /*HANNSTAR_P1003 touch*/ #if defined (CONFIG_HANNSTAR_P1003) #define TOUCH_RESET_PIN RK29_PIN6_PC3 @@ -810,13 +838,13 @@ static struct rk29camera_platform_ioctl_cb sensor_ioctl_cb = { #define PWM_GPIO RK29_PIN1_PB5 #define PWM_EFFECT_VALUE 1 -//#define LCD_DISP_ON_PIN +#define LCD_DISP_ON_PIN #ifdef LCD_DISP_ON_PIN -#define BL_EN_MUX_NAME GPIOF34_UART3_SEL_NAME -#define BL_EN_MUX_MODE IOMUXB_GPIO1_B34 +//#define BL_EN_MUX_NAME GPIOF34_UART3_SEL_NAME +//#define BL_EN_MUX_MODE IOMUXB_GPIO1_B34 -#define BL_EN_PIN GPIO0L_GPIO0A5 +#define BL_EN_PIN RK29_PIN6_PD0 #define BL_EN_VALUE GPIO_HIGH #endif static int rk29_backlight_io_init(void) @@ -825,7 +853,7 @@ static int rk29_backlight_io_init(void) rk29_mux_api_set(PWM_MUX_NAME, PWM_MUX_MODE); #ifdef LCD_DISP_ON_PIN - rk29_mux_api_set(BL_EN_MUX_NAME, BL_EN_MUX_MODE); + // rk29_mux_api_set(BL_EN_MUX_NAME, BL_EN_MUX_MODE); ret = gpio_request(BL_EN_PIN, NULL); if(ret != 0) @@ -853,11 +881,15 @@ static int rk29_backlight_pwm_suspend(void) { int ret = 0; rk29_mux_api_set(PWM_MUX_NAME, PWM_MUX_MODE_GPIO); - if (ret = gpio_request(PWM_GPIO, NULL)) { + if (gpio_request(PWM_GPIO, NULL)) { printk("func %s, line %d: request gpio fail\n", __FUNCTION__, __LINE__); return -1; } gpio_direction_output(PWM_GPIO, GPIO_LOW); + #ifdef LCD_DISP_ON_PIN + gpio_direction_output(BL_EN_PIN, 0); + gpio_set_value(BL_EN_PIN, !BL_EN_VALUE); + #endif return ret; } @@ -865,6 +897,12 @@ static int rk29_backlight_pwm_resume(void) { gpio_free(PWM_GPIO); rk29_mux_api_set(PWM_MUX_NAME, PWM_MUX_MODE); + + #ifdef LCD_DISP_ON_PIN + msleep(30); + gpio_direction_output(BL_EN_PIN, 1); + gpio_set_value(BL_EN_PIN, BL_EN_VALUE); + #endif return 0; } -- 2.34.1