diff options
author | Dmitry Baryshkov <dbaryshkov@gmail.com> | 2009-03-25 05:15:28 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-03-25 06:13:57 -0400 |
commit | 8cb52f788c73cfcbff4aca66063c55baa3e6d313 (patch) | |
tree | c49e128472c0ae40b11c1e9ac72438f386f238dc /arch/arm/mach-sa1100 | |
parent | 224be092d116b663ac426c4615e34ee54bab4a14 (diff) |
[ARM] 5430/1: collie_pm: use new GPIO API to control charger
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-sa1100')
-rw-r--r-- | arch/arm/mach-sa1100/collie_pm.c | 12 | ||||
-rw-r--r-- | arch/arm/mach-sa1100/include/mach/collie.h | 7 |
2 files changed, 8 insertions, 11 deletions
diff --git a/arch/arm/mach-sa1100/collie_pm.c b/arch/arm/mach-sa1100/collie_pm.c index b39307f26b52..444f266ecc06 100644 --- a/arch/arm/mach-sa1100/collie_pm.c +++ b/arch/arm/mach-sa1100/collie_pm.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/interrupt.h> | 22 | #include <linux/interrupt.h> |
23 | #include <linux/device.h> | 23 | #include <linux/device.h> |
24 | #include <linux/platform_device.h> | 24 | #include <linux/platform_device.h> |
25 | #include <linux/gpio.h> | ||
25 | 26 | ||
26 | #include <asm/irq.h> | 27 | #include <asm/irq.h> |
27 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
@@ -58,6 +59,9 @@ static void collie_charger_init(void) | |||
58 | return; | 59 | return; |
59 | } | 60 | } |
60 | 61 | ||
62 | gpio_request(COLLIE_GPIO_CHARGE_ON, "charge on"); | ||
63 | gpio_direction_output(COLLIE_GPIO_CHARGE_ON, 1); | ||
64 | |||
61 | ucb1x00_io_set_dir(ucb, 0, COLLIE_TC35143_GPIO_MBAT_ON | COLLIE_TC35143_GPIO_TMP_ON | | 65 | ucb1x00_io_set_dir(ucb, 0, COLLIE_TC35143_GPIO_MBAT_ON | COLLIE_TC35143_GPIO_TMP_ON | |
62 | COLLIE_TC35143_GPIO_BBAT_ON); | 66 | COLLIE_TC35143_GPIO_BBAT_ON); |
63 | return; | 67 | return; |
@@ -73,17 +77,11 @@ static void collie_measure_temp(int on) | |||
73 | 77 | ||
74 | static void collie_charge(int on) | 78 | static void collie_charge(int on) |
75 | { | 79 | { |
76 | extern struct platform_device colliescoop_device; | ||
77 | |||
78 | /* Zaurus seems to contain LTC1731; it should know when to | 80 | /* Zaurus seems to contain LTC1731; it should know when to |
79 | * stop charging itself, so setting charge on should be | 81 | * stop charging itself, so setting charge on should be |
80 | * relatively harmless (as long as it is not done too often). | 82 | * relatively harmless (as long as it is not done too often). |
81 | */ | 83 | */ |
82 | if (on) { | 84 | gpio_set_value(COLLIE_GPIO_CHARGE_ON, on); |
83 | set_scoop_gpio(&colliescoop_device.dev, COLLIE_SCP_CHARGE_ON); | ||
84 | } else { | ||
85 | reset_scoop_gpio(&colliescoop_device.dev, COLLIE_SCP_CHARGE_ON); | ||
86 | } | ||
87 | } | 85 | } |
88 | 86 | ||
89 | static void collie_discharge(int on) | 87 | static void collie_discharge(int on) |
diff --git a/arch/arm/mach-sa1100/include/mach/collie.h b/arch/arm/mach-sa1100/include/mach/collie.h index 9bc53497d355..9efb569cdb60 100644 --- a/arch/arm/mach-sa1100/include/mach/collie.h +++ b/arch/arm/mach-sa1100/include/mach/collie.h | |||
@@ -15,7 +15,7 @@ | |||
15 | 15 | ||
16 | 16 | ||
17 | #define COLLIE_SCOOP_GPIO_BASE (GPIO_MAX + 1) | 17 | #define COLLIE_SCOOP_GPIO_BASE (GPIO_MAX + 1) |
18 | #define COLLIE_SCP_CHARGE_ON SCOOP_GPCR_PA11 | 18 | #define COLLIE_GPIO_CHARGE_ON (COLLIE_SCOOP_GPIO_BASE + 0) |
19 | #define COLLIE_SCP_DIAG_BOOT1 SCOOP_GPCR_PA12 | 19 | #define COLLIE_SCP_DIAG_BOOT1 SCOOP_GPCR_PA12 |
20 | #define COLLIE_SCP_DIAG_BOOT2 SCOOP_GPCR_PA13 | 20 | #define COLLIE_SCP_DIAG_BOOT2 SCOOP_GPCR_PA13 |
21 | #define COLLIE_SCP_MUTE_L SCOOP_GPCR_PA14 | 21 | #define COLLIE_SCP_MUTE_L SCOOP_GPCR_PA14 |
@@ -25,11 +25,10 @@ | |||
25 | #define COLLIE_GPIO_VPEN (COLLIE_SCOOP_GPIO_BASE + 7) | 25 | #define COLLIE_GPIO_VPEN (COLLIE_SCOOP_GPIO_BASE + 7) |
26 | #define COLLIE_SCP_LB_VOL_CHG SCOOP_GPCR_PA19 | 26 | #define COLLIE_SCP_LB_VOL_CHG SCOOP_GPCR_PA19 |
27 | 27 | ||
28 | #define COLLIE_SCOOP_IO_DIR ( COLLIE_SCP_CHARGE_ON | COLLIE_SCP_MUTE_L | COLLIE_SCP_MUTE_R | \ | 28 | #define COLLIE_SCOOP_IO_DIR ( COLLIE_SCP_MUTE_L | COLLIE_SCP_MUTE_R | \ |
29 | COLLIE_SCP_5VON | COLLIE_SCP_AMP_ON | \ | 29 | COLLIE_SCP_5VON | COLLIE_SCP_AMP_ON | \ |
30 | COLLIE_SCP_LB_VOL_CHG ) | 30 | COLLIE_SCP_LB_VOL_CHG ) |
31 | #define COLLIE_SCOOP_IO_OUT ( COLLIE_SCP_MUTE_L | COLLIE_SCP_MUTE_R | \ | 31 | #define COLLIE_SCOOP_IO_OUT ( COLLIE_SCP_MUTE_L | COLLIE_SCP_MUTE_R ) |
32 | COLLIE_SCP_CHARGE_ON ) | ||
33 | 32 | ||
34 | /* GPIOs for which the generic definition doesn't say much */ | 33 | /* GPIOs for which the generic definition doesn't say much */ |
35 | 34 | ||