summaryrefslogtreecommitdiffstats
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/target/arm/olympus/mrobe-100/power-mr100.c13
-rw-r--r--firmware/target/arm/system-pp502x.c4
2 files changed, 11 insertions, 6 deletions
diff --git a/firmware/target/arm/olympus/mrobe-100/power-mr100.c b/firmware/target/arm/olympus/mrobe-100/power-mr100.c
index 985b52ce0b..b4cc711ddf 100644
--- a/firmware/target/arm/olympus/mrobe-100/power-mr100.c
+++ b/firmware/target/arm/olympus/mrobe-100/power-mr100.c
@@ -55,8 +55,13 @@ bool ide_powered(void)
void power_off(void)
{
- /* Give things a second to settle before cutting power */
- sleep(HZ);
-
- //GPIOF_OUTPUT_VAL &=~ 0x20;
+ /* Disable interrupts on this core */
+ set_interrupt_status(IRQ_FIQ_DISABLED, IRQ_FIQ_STATUS);
+
+ /* Mask them on both cores */
+ CPU_INT_CLR = -1;
+ COP_INT_CLR = -1;
+
+ while (1)
+ GPIOB_OUTPUT_VAL |= 0x80;
}
diff --git a/firmware/target/arm/system-pp502x.c b/firmware/target/arm/system-pp502x.c
index 3c26305ccb..4ca58208ad 100644
--- a/firmware/target/arm/system-pp502x.c
+++ b/firmware/target/arm/system-pp502x.c
@@ -270,12 +270,12 @@ void system_init(void)
DEV_RS2 = -1;
DEV_RS = 0;
DEV_RS2 = 0;
- #elif defined (IRIVER_H10)
+#elif defined (IRIVER_H10) || defined(MROBE_100)
DEV_RS = 0x3ffffef8;
DEV_RS2 = -1;
- outl(inl(0x70000024) | 0xc0, 0x70000024);
DEV_RS = 0;
DEV_RS2 = 0;
+ outl(inl(0x70000024) | 0xc0, 0x70000024);
#endif
#if !defined(SANSA_E200) && !defined(SANSA_C200)