rk29-ddr3sdk:set keygpio pullup/down disable when in sleep
author张晴 <zhangqing@rock-chips.com>
Mon, 5 Sep 2011 02:57:00 +0000 (19:57 -0700)
committer张晴 <zhangqing@rock-chips.com>
Mon, 5 Sep 2011 02:57:00 +0000 (19:57 -0700)
arch/arm/mach-rk29/board-rk29-ddr3sdk.c [changed mode: 0644->0755]
arch/arm/mach-rk29/gpio.c [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 49311b7..92b6c95
@@ -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
old mode 100644 (file)
new mode 100755 (executable)
index 634e97b..a52071c
@@ -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];