summaryrefslogtreecommitdiffstats
path: root/firmware/target/arm/olympus/mrobe-100
diff options
context:
space:
mode:
authorRobert Kukla <roolku@rockbox.org>2009-08-14 21:11:08 +0000
committerRobert Kukla <roolku@rockbox.org>2009-08-14 21:11:08 +0000
commit65eaf60b35f88ecaea3143915092971d8386649f (patch)
tree362a0ecd3a671bb58be7874257d3d224f9d51b5a /firmware/target/arm/olympus/mrobe-100
parent1b87b45e408838ab9dabdb3e2bf2d853e4becc08 (diff)
downloadrockbox-65eaf60b35f88ecaea3143915092971d8386649f.tar.gz
rockbox-65eaf60b35f88ecaea3143915092971d8386649f.zip
mrobe100: power off HDD (courtesy of lowlight) ~2h extra playtime
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22313 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/olympus/mrobe-100')
-rw-r--r--firmware/target/arm/olympus/mrobe-100/power-mr100.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/firmware/target/arm/olympus/mrobe-100/power-mr100.c b/firmware/target/arm/olympus/mrobe-100/power-mr100.c
index 26dd4ef14f..6f6ee2bc2c 100644
--- a/firmware/target/arm/olympus/mrobe-100/power-mr100.c
+++ b/firmware/target/arm/olympus/mrobe-100/power-mr100.c
@@ -35,6 +35,11 @@ void power_init(void)
GPIOB_ENABLE |= 0x80;
GPIOB_OUTPUT_VAL &= ~0x80;
GPIOB_OUTPUT_EN |= 0x80;
+
+ /* IDE power */
+ GPIOC_ENABLE |= 0x8;
+ GPIOC_OUTPUT_VAL &= ~0x8;
+ GPIOC_OUTPUT_EN |= 0x8;
}
unsigned int power_input_status(void)
@@ -45,15 +50,22 @@ unsigned int power_input_status(void)
void ide_power_enable(bool on)
{
- (void)on;
- /* We do nothing */
+ if(on)
+ {
+ GPIO_CLEAR_BITWISE(GPIOC_OUTPUT_VAL, 0x08);
+ DEV_EN |= DEV_IDE0;
+ }
+ else
+ {
+ DEV_EN &= ~DEV_IDE0;
+ GPIO_SET_BITWISE(GPIOC_OUTPUT_VAL, 0x08);
+ }
}
bool ide_powered(void)
{
- /* pretend we are always powered - we don't turn it off */
- return true;
+ return ((GPIOC_INPUT_VAL & 0x8) == 0);
}
void power_off(void)