diff options
Diffstat (limited to 'firmware/target/arm/olympus')
-rw-r--r-- | firmware/target/arm/olympus/mrobe-100/power-mr100.c | 20 |
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 | ||
40 | unsigned int power_input_status(void) | 45 | unsigned int power_input_status(void) |
@@ -45,15 +50,22 @@ unsigned int power_input_status(void) | |||
45 | 50 | ||
46 | void ide_power_enable(bool on) | 51 | void 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 | ||
53 | bool ide_powered(void) | 66 | bool 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 | ||
59 | void power_off(void) | 71 | void power_off(void) |