summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2008-04-07 01:05:51 +0000
committerMichael Sevakis <jethead71@rockbox.org>2008-04-07 01:05:51 +0000
commit2f9f34e0ea793f6d2134c749358655fcfc9062f6 (patch)
treee949e6bc0a4395d53829c41fadda1e9734af72bf
parent1d4d41d16e339b98fff6662b77d5a182da183459 (diff)
downloadrockbox-2f9f34e0ea793f6d2134c749358655fcfc9062f6.tar.gz
rockbox-2f9f34e0ea793f6d2134c749358655fcfc9062f6.zip
Better sansa shutdown sequence in power_off.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17009 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/target/arm/sandisk/power-c200_e200.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/firmware/target/arm/sandisk/power-c200_e200.c b/firmware/target/arm/sandisk/power-c200_e200.c
index d23754a478..6b3f295e07 100644
--- a/firmware/target/arm/sandisk/power-c200_e200.c
+++ b/firmware/target/arm/sandisk/power-c200_e200.c
@@ -32,23 +32,21 @@ void power_off(void)
32{ 32{
33 char byte; 33 char byte;
34 34
35 /* Disable interrupts on this core */
36 disable_interrupt(IRQ_FIQ_STATUS);
37
38 /* Mask them on both cores */
39 CPU_INT_CLR = -1;
40 COP_INT_CLR = -1;
41
42 /* Send shutdown command to PMU */ 35 /* Send shutdown command to PMU */
43 byte = i2c_readbyte(AS3514_I2C_ADDR, SYSTEM); 36 byte = i2c_readbyte(AS3514_I2C_ADDR, SYSTEM);
44 byte &= ~0x1; 37 byte &= ~0x1;
45 pp_i2c_send(AS3514_I2C_ADDR, SYSTEM, byte); 38 pp_i2c_send(AS3514_I2C_ADDR, SYSTEM, byte);
46 39
40 /* Stop interrupts on both cores */
41 disable_irq(IRQ_FIQ_STATUS);
42 COP_INT_CLR = -1;
43 CPU_INT_CLR = -1;
44
47 /* Halt everything and wait for device to power off */ 45 /* Halt everything and wait for device to power off */
48 while (1) 46 while (1)
49 { 47 {
50 CPU_CTL = PROC_SLEEP; 48 COP_CTL = 0x40000000;
51 COP_CTL = PROC_SLEEP; 49 CPU_CTL = 0x40000000;
52 } 50 }
53} 51}
54 52