implement_pm_power_off.patch

Balaji Rao balajirrao at openmoko.org
Sun Jan 4 09:46:48 CET 2009


This fixes the system-does-not-powerdown bug.

Signed-off-by: Balaji Rao <balajirrao at openmoko.org>
---
 arch/arm/mach-s3c2440/mach-gta02.c |    7 +++++++
 include/linux/mfd/pcf50633/core.h  |    3 ++-
 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 7e70f82..4520d7b 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 bf107d3..d08be0d 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
 
-- 
1.6.0.6



More information about the openmoko-kernel mailing list