* author: zyw@rock-chips.com
*****************************************************************************************/
#define FB_ID 0
-#define FB_DISPLAY_ON_PIN RK29_PIN6_PD0
+#define FB_DISPLAY_ON_PIN INVALID_GPIO
#define FB_LCD_STANDBY_PIN INVALID_GPIO
#define FB_LCD_CABC_EN_PIN RK29_PIN6_PD2
#define FB_MCU_FMK_PIN INVALID_GPIO
*****************************************************************************************/
#define TOUCH_SCREEN_STANDBY_PIN RK29_PIN6_PD1
#define TOUCH_SCREEN_STANDBY_VALUE GPIO_HIGH
+#define TOUCH_SCREEN_DISPLAY_PIN RK29_PIN6_PD0
+#define TOUCH_SCREEN_DISPLAY_VALUE GPIO_HIGH
static int rk29_lcd_io_init(void)
{
}
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);
}
}
.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*/
*****************************************************************************************/
#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)
{
}
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);
}
}
.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*/
void (*exit_platform_hw)(void);
int standby_pin;
int standby_value;
+ int disp_on_pin;
+ int disp_on_value;
};
void egalax_i2c_set_standby(struct i2c_client *client, int enable)
{
- struct eeti_egalax_platform_data *pdata = pdata = client->dev.platform_data;
- unsigned lcd_standby = pdata->standby_pin;
- int lcd_standby_pol = pdata->standby_value;
+ 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);
- // set display_on
- if(lcd_standby != INVALID_GPIO)
- {
- gpio_direction_output(lcd_standby, 0);
- gpio_set_value(lcd_standby, enable ? lcd_standby_pol : !lcd_standby_pol);
- }
+ 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
{
printk(KERN_DEBUG "[egalax_i2c]: device_may_wakeup false\n");
}
- egalax_i2c_set_standby(client, 1);
+ 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, 0);
+ egalax_i2c_set_standby(client, 1);
if(device_may_wakeup(&client->dev))
{
disable_irq_wake(p_egalax_i2c_dev->irq);