summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)
35 GPIOB_ENABLE |= 0x80; 35 GPIOB_ENABLE |= 0x80;
36 GPIOB_OUTPUT_VAL &= ~0x80; 36 GPIOB_OUTPUT_VAL &= ~0x80;
37 GPIOB_OUTPUT_EN |= 0x80; 37 GPIOB_OUTPUT_EN |= 0x80;
38
39 /* IDE power */
40 GPIOC_ENABLE |= 0x8;
41 GPIOC_OUTPUT_VAL &= ~0x8;
42 GPIOC_OUTPUT_EN |= 0x8;
38} 43}
39 44
40unsigned int power_input_status(void) 45unsigned int power_input_status(void)
@@ -45,15 +50,22 @@ unsigned int power_input_status(void)
45 50
46void ide_power_enable(bool on) 51void ide_power_enable(bool on)
47{ 52{
48 (void)on; 53 if(on)
49 /* We do nothing */ 54 {
55 GPIO_CLEAR_BITWISE(GPIOC_OUTPUT_VAL, 0x08);
56 DEV_EN |= DEV_IDE0;
57 }
58 else
59 {
60 DEV_EN &= ~DEV_IDE0;
61 GPIO_SET_BITWISE(GPIOC_OUTPUT_VAL, 0x08);
62 }
50} 63}
51 64
52 65
53bool ide_powered(void) 66bool ide_powered(void)
54{ 67{
55 /* pretend we are always powered - we don't turn it off */ 68 return ((GPIOC_INPUT_VAL & 0x8) == 0);
56 return true;
57} 69}
58 70
59void power_off(void) 71void power_off(void)