diff options
Diffstat (limited to 'firmware/target/coldfire/iriver/h100/power-h100.c')
-rw-r--r-- | firmware/target/coldfire/iriver/h100/power-h100.c | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/firmware/target/coldfire/iriver/h100/power-h100.c b/firmware/target/coldfire/iriver/h100/power-h100.c index 0714ab2d3f..9effeef7c8 100644 --- a/firmware/target/coldfire/iriver/h100/power-h100.c +++ b/firmware/target/coldfire/iriver/h100/power-h100.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include "kernel.h" | 22 | #include "kernel.h" |
23 | #include "system.h" | 23 | #include "system.h" |
24 | #include "power.h" | 24 | #include "power.h" |
25 | #include "spdif.h" | ||
25 | 26 | ||
26 | 27 | ||
27 | #ifdef CONFIG_TUNER | 28 | #ifdef CONFIG_TUNER |
@@ -85,8 +86,23 @@ void spdif_power_enable(bool on) | |||
85 | and_l(~0x01000000, &GPIO1_OUT); | 86 | and_l(~0x01000000, &GPIO1_OUT); |
86 | else | 87 | else |
87 | or_l(0x01000000, &GPIO1_OUT); | 88 | or_l(0x01000000, &GPIO1_OUT); |
88 | } | 89 | |
90 | #ifndef BOOTLOADER | ||
91 | /* Make sure the feed is reset */ | ||
92 | spdif_set_output_source(spdif_get_output_source(NULL), true); | ||
89 | #endif | 93 | #endif |
94 | } | ||
95 | |||
96 | bool spdif_powered(void) | ||
97 | { | ||
98 | bool state = (GPIO1_READ & 0x01000000)?false:true; | ||
99 | #ifdef SPDIF_POWER_INVERTED | ||
100 | return !state; | ||
101 | #else | ||
102 | return state; | ||
103 | #endif /* SPDIF_POWER_INVERTED */ | ||
104 | } | ||
105 | #endif /* HAVE_SPDIF_POWER */ | ||
90 | 106 | ||
91 | void ide_power_enable(bool on) | 107 | void ide_power_enable(bool on) |
92 | { | 108 | { |
@@ -96,13 +112,11 @@ void ide_power_enable(bool on) | |||
96 | or_l(0x80000000, &GPIO_OUT); | 112 | or_l(0x80000000, &GPIO_OUT); |
97 | } | 113 | } |
98 | 114 | ||
99 | |||
100 | bool ide_powered(void) | 115 | bool ide_powered(void) |
101 | { | 116 | { |
102 | return (GPIO_OUT & 0x80000000)?false:true; | 117 | return (GPIO_OUT & 0x80000000)?false:true; |
103 | } | 118 | } |
104 | 119 | ||
105 | |||
106 | void power_off(void) | 120 | void power_off(void) |
107 | { | 121 | { |
108 | set_irq_level(HIGHEST_IRQ_LEVEL); | 122 | set_irq_level(HIGHEST_IRQ_LEVEL); |
@@ -138,6 +152,11 @@ void spdif_power_enable(bool on) | |||
138 | { | 152 | { |
139 | (void)on; | 153 | (void)on; |
140 | } | 154 | } |
155 | |||
156 | bool spdif_powered(void) | ||
157 | { | ||
158 | return false; | ||
159 | } | ||
141 | #endif | 160 | #endif |
142 | 161 | ||
143 | #endif /* SIMULATOR */ | 162 | #endif /* SIMULATOR */ |