rk29-ddr3sdk:set keygpio pullup/down disable when in sleep

This commit is contained in:
张晴
2011-09-04 19:57:00 -07:00
parent 787482795f
commit a5ee543b51
2 changed files with 53 additions and 2 deletions

39
arch/arm/mach-rk29/board-rk29-ddr3sdk.c Normal file → Executable file
View File

@@ -164,6 +164,45 @@ struct rk29_nand_platform_data rk29_nand_data = {
#define TOUCH_SCREEN_STANDBY_VALUE GPIO_HIGH
#define TOUCH_SCREEN_DISPLAY_PIN INVALID_GPIO
#define TOUCH_SCREEN_DISPLAY_VALUE GPIO_HIGH
#if 1
void key_gpio_pullupdown_enable(void)
{ gpio_pull_updown(RK29_PIN6_PA0, 0);
gpio_pull_updown(RK29_PIN6_PA1, 0);
gpio_pull_updown(RK29_PIN6_PA2, 0);
gpio_pull_updown(RK29_PIN6_PA3, 0);
gpio_pull_updown(RK29_PIN6_PA4, 0);
gpio_pull_updown(RK29_PIN6_PA5, 0);
gpio_pull_updown(RK29_PIN6_PA6, 0);
}
void key_gpio_pullupdown_disable(void)
{
gpio_pull_updown(RK29_PIN6_PA0, 1);
gpio_pull_updown(RK29_PIN6_PA1, 1);
gpio_pull_updown(RK29_PIN6_PA2, 1);
gpio_pull_updown(RK29_PIN6_PA3, 1);
gpio_pull_updown(RK29_PIN6_PA4, 1);
gpio_pull_updown(RK29_PIN6_PA5, 1);
gpio_pull_updown(RK29_PIN6_PA6, 1);
}
void rk29_setgpio_suspend_board(void)
{
key_gpio_pullupdown_enable();
}
void rk29_setgpio_resume_board(void)
{
key_gpio_pullupdown_disable();
}
#endif
#ifdef CONFIG_FB_RK29
/*****************************************************************************************
* lcd devices

16
arch/arm/mach-rk29/gpio.c Normal file → Executable file
View File

@@ -550,12 +550,22 @@ void __init rk29_gpio_init(void)
}
rk29_gpio_irq_setup();
}
__weak void rk29_setgpio_suspend_board(void)
{
}
__weak void rk29_setgpio_resume_board(void)
{
}
#ifdef CONFIG_PM
static int rk29_gpio_suspend(struct sys_device *dev, pm_message_t mesg)
{
unsigned i;
rk29_setgpio_suspend_board();
for (i = 0; i < MAX_BANK; i++) {
struct rk29_gpio_chip *rk29_gpio = &rk29gpio_chip[i];
@@ -572,7 +582,9 @@ static int rk29_gpio_suspend(struct sys_device *dev, pm_message_t mesg)
static int rk29_gpio_resume(struct sys_device *dev)
{
unsigned i;
rk29_setgpio_resume_board();
for (i = 0; i < MAX_BANK; i++) {
struct rk29_gpio_chip *rk29_gpio = &rk29gpio_chip[i];