aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBalaji Rao <balajirrao@openmoko.org>2009-01-04 16:58:31 +0000
committerAndy Green <agreen@pads.home.warmcat.com>2009-01-04 16:58:31 +0000
commit8aaff459acdad4915bcdd8475d4314499980e0ac (patch)
tree801cb93bc03b4b5163959a75558b56ef0471ed25
parentaeb4db1b913993a3e06522f13bab79decbd3cdef (diff)
implement_pm_power_off.patch
This fixes the system-does-not-powerdown bug. Reported-by: Michael Trimarchi <trimarchimichael@yahoo.it> Signed-off-by: Balaji Rao <balajirrao@openmoko.org>
-rw-r--r--arch/arm/mach-s3c2440/mach-gta02.c7
-rw-r--r--include/linux/mfd/pcf50633/core.h3
2 files changed, 9 insertions, 1 deletions
diff --git a/arch/arm/mach-s3c2440/mach-gta02.c b/arch/arm/mach-s3c2440/mach-gta02.c
index 7e70f82bebc..4520d7b3ec0 100644
--- a/arch/arm/mach-s3c2440/mach-gta02.c
+++ b/arch/arm/mach-s3c2440/mach-gta02.c
@@ -1679,6 +1679,11 @@ static void gta02_pmu_attach_child_devices(struct pcf50633 *pcf)
ARRAY_SIZE(gta02_devices_pmu_children));
}
+static void gta02_poweroff(void)
+{
+ pcf50633_reg_set_bit_mask(gta02_pcf_pdata.pcf, PCF50633_REG_OOCSHDWN,
+ PCF50633_OOCSHDWN_GOSTDBY, PCF50633_OOCSHDWN_GOSTDBY);
+}
static void __init gta02_machine_init(void)
{
@@ -1747,6 +1752,8 @@ static void __init gta02_machine_init(void)
if (rc < 0)
printk(KERN_ERR "GTA02: can't request ar6k wakeup IRQ\n");
enable_irq_wake(GTA02_IRQ_WLAN_GPIO1);
+
+ pm_power_off = gta02_poweroff;
}
void DEBUG_LED(int n)
diff --git a/include/linux/mfd/pcf50633/core.h b/include/linux/mfd/pcf50633/core.h
index bf107d3794e..d08be0da7b3 100644
--- a/include/linux/mfd/pcf50633/core.h
+++ b/include/linux/mfd/pcf50633/core.h
@@ -206,7 +206,8 @@ enum pcf50633_reg_int5 {
};
/* misc. registers */
-#define PCF50633_REG_OOCSHDWN 0x0c
+#define PCF50633_REG_OOCSHDWN 0x0c
+#define PCF50633_OOCSHDWN_GOSTDBY 0x01
#endif