From 65eaf60b35f88ecaea3143915092971d8386649f Mon Sep 17 00:00:00 2001 From: Robert Kukla Date: Fri, 14 Aug 2009 21:11:08 +0000 Subject: [PATCH] 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 --- .../arm/olympus/mrobe-100/power-mr100.c | 20 +++++++++++++++---- 1 file 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)