A22:fix white screen when power_on and resume

This commit is contained in:
root
2011-05-31 08:58:56 +08:00
parent 9312509354
commit 211e5a1278

36
arch/arm/mach-rk29/board-rk29-a22.c Executable file → Normal file
View File

@@ -233,6 +233,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 +307,18 @@ 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 */