[ARM] 5430/1: collie_pm: use new GPIO API to control charger
authorDmitry Baryshkov <dbaryshkov@gmail.com>
Wed, 25 Mar 2009 09:15:28 +0000 (10:15 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 25 Mar 2009 10:13:57 +0000 (10:13 +0000)
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-sa1100/collie_pm.c
arch/arm/mach-sa1100/include/mach/collie.h

index b39307f..444f266 100644 (file)
@@ -22,6 +22,7 @@
 #include <linux/interrupt.h>
 #include <linux/device.h>
 #include <linux/platform_device.h>
+#include <linux/gpio.h>
 
 #include <asm/irq.h>
 #include <mach/hardware.h>
@@ -58,6 +59,9 @@ static void collie_charger_init(void)
                return;
        }
 
+       gpio_request(COLLIE_GPIO_CHARGE_ON, "charge on");
+       gpio_direction_output(COLLIE_GPIO_CHARGE_ON, 1);
+
        ucb1x00_io_set_dir(ucb, 0, COLLIE_TC35143_GPIO_MBAT_ON | COLLIE_TC35143_GPIO_TMP_ON |
                                   COLLIE_TC35143_GPIO_BBAT_ON);
        return;
@@ -73,17 +77,11 @@ static void collie_measure_temp(int on)
 
 static void collie_charge(int on)
 {
-       extern struct platform_device colliescoop_device;
-
        /* Zaurus seems to contain LTC1731; it should know when to
         * stop charging itself, so setting charge on should be
         * relatively harmless (as long as it is not done too often).
         */
-       if (on) {
-               set_scoop_gpio(&colliescoop_device.dev, COLLIE_SCP_CHARGE_ON);
-       } else {
-               reset_scoop_gpio(&colliescoop_device.dev, COLLIE_SCP_CHARGE_ON);
-       }
+       gpio_set_value(COLLIE_GPIO_CHARGE_ON, on);
 }
 
 static void collie_discharge(int on)
index 9bc5349..9efb569 100644 (file)
@@ -15,7 +15,7 @@
 
 
 #define COLLIE_SCOOP_GPIO_BASE (GPIO_MAX + 1)
-#define COLLIE_SCP_CHARGE_ON   SCOOP_GPCR_PA11
+#define COLLIE_GPIO_CHARGE_ON  (COLLIE_SCOOP_GPIO_BASE + 0)
 #define COLLIE_SCP_DIAG_BOOT1  SCOOP_GPCR_PA12
 #define COLLIE_SCP_DIAG_BOOT2  SCOOP_GPCR_PA13
 #define COLLIE_SCP_MUTE_L      SCOOP_GPCR_PA14
 #define COLLIE_GPIO_VPEN       (COLLIE_SCOOP_GPIO_BASE + 7)
 #define COLLIE_SCP_LB_VOL_CHG  SCOOP_GPCR_PA19
 
-#define COLLIE_SCOOP_IO_DIR    ( COLLIE_SCP_CHARGE_ON | COLLIE_SCP_MUTE_L | COLLIE_SCP_MUTE_R | \
+#define COLLIE_SCOOP_IO_DIR    ( COLLIE_SCP_MUTE_L | COLLIE_SCP_MUTE_R | \
                                COLLIE_SCP_5VON | COLLIE_SCP_AMP_ON | \
                                COLLIE_SCP_LB_VOL_CHG )
-#define COLLIE_SCOOP_IO_OUT    ( COLLIE_SCP_MUTE_L | COLLIE_SCP_MUTE_R | \
-                               COLLIE_SCP_CHARGE_ON )
+#define COLLIE_SCOOP_IO_OUT    ( COLLIE_SCP_MUTE_L | COLLIE_SCP_MUTE_R )
 
 /* GPIOs for which the generic definition doesn't say much */