summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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