diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2006-11-08 16:13:04 +0000 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2006-11-08 16:13:04 +0000 |
commit | e89a3940f9f8c6c6c437354ed49070649976f10e (patch) | |
tree | 4abca9ca6a4483791d8a25a49a08c348234b4dd4 /firmware/drivers/power.c | |
parent | f9c8a891af12fdb76c6e6ff0bec3ce47d8a47e9f (diff) | |
download | rockbox-e89a3940f9f8c6c6c437354ed49070649976f10e.tar.gz rockbox-e89a3940f9f8c6c6c437354ed49070649976f10e.zip |
More exodus to the target tree for ColdFire and a bonus sorting of firmware/SOURCES.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11468 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers/power.c')
-rw-r--r-- | firmware/drivers/power.c | 68 |
1 files changed, 4 insertions, 64 deletions
diff --git a/firmware/drivers/power.c b/firmware/drivers/power.c index af70ac8ef2..e48993c2aa 100644 --- a/firmware/drivers/power.c +++ b/firmware/drivers/power.c | |||
@@ -65,26 +65,6 @@ bool radio_power(bool status) | |||
65 | 65 | ||
66 | void power_init(void) | 66 | void power_init(void) |
67 | { | 67 | { |
68 | #if CONFIG_CPU == MCF5249 | ||
69 | #if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) | ||
70 | or_l(0x00080000, &GPIO1_OUT); | ||
71 | or_l(0x00080000, &GPIO1_ENABLE); | ||
72 | or_l(0x00080000, &GPIO1_FUNCTION); | ||
73 | |||
74 | #ifndef BOOTLOADER | ||
75 | /* The boot loader controls the power */ | ||
76 | ide_power_enable(true); | ||
77 | #endif | ||
78 | or_l(0x80000000, &GPIO_ENABLE); | ||
79 | or_l(0x80000000, &GPIO_FUNCTION); | ||
80 | #ifdef HAVE_SPDIF_POWER | ||
81 | spdif_power_enable(false); | ||
82 | #endif | ||
83 | #ifdef IRIVER_H300_SERIES | ||
84 | pcf50606_init(); | ||
85 | #endif | ||
86 | #endif | ||
87 | #else | ||
88 | #ifdef HAVE_POWEROFF_ON_PB5 | 68 | #ifdef HAVE_POWEROFF_ON_PB5 |
89 | PBCR2 &= ~0x0c00; /* GPIO for PB5 */ | 69 | PBCR2 &= ~0x0c00; /* GPIO for PB5 */ |
90 | or_b(0x20, &PBIORL); | 70 | or_b(0x20, &PBIORL); |
@@ -100,19 +80,14 @@ void power_init(void) | |||
100 | or_b(0x04, &PADRL); /* drive PA2 high for tuner disable */ | 80 | or_b(0x04, &PADRL); /* drive PA2 high for tuner disable */ |
101 | or_b(0x04, &PAIORL); /* output for PA2 */ | 81 | or_b(0x04, &PAIORL); /* output for PA2 */ |
102 | #endif | 82 | #endif |
103 | #endif | ||
104 | } | 83 | } |
105 | 84 | ||
106 | 85 | ||
107 | #ifdef CONFIG_CHARGING | 86 | #ifdef CONFIG_CHARGING |
108 | bool charger_inserted(void) | 87 | bool charger_inserted(void) |
109 | { | 88 | { |
110 | #if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) | 89 | #if defined(GMINI_ARCH) |
111 | return (GPIO1_READ & 0x00400000)?true:false; | ||
112 | #elif defined(GMINI_ARCH) | ||
113 | return (P7 & 0x80) == 0; | 90 | return (P7 & 0x80) == 0; |
114 | #elif defined(IAUDIO_X5) | ||
115 | return (GPIO1_READ & 0x01000000)?true:false; | ||
116 | #elif CONFIG_CHARGING == CHARGING_CONTROL | 91 | #elif CONFIG_CHARGING == CHARGING_CONTROL |
117 | /* Recorder */ | 92 | /* Recorder */ |
118 | return adc_read(ADC_EXT_POWER) > 0x100; | 93 | return adc_read(ADC_EXT_POWER) > 0x100; |
@@ -155,28 +130,7 @@ bool charging_state(void) { | |||
155 | charge. My tests show that ADC readings below about 0x80 means | 130 | charge. My tests show that ADC readings below about 0x80 means |
156 | that the LTC1734 is only maintaining the charge. */ | 131 | that the LTC1734 is only maintaining the charge. */ |
157 | return adc_read(ADC_EXT_POWER) >= 0x80; | 132 | return adc_read(ADC_EXT_POWER) >= 0x80; |
158 | #elif defined(IRIVER_H100_SERIES) /* FIXME */ | ||
159 | return charger_inserted(); | ||
160 | #elif defined IRIVER_H300_SERIES | ||
161 | return (GPIO_READ & 0x00800000)?true:false; | ||
162 | #endif | ||
163 | } | ||
164 | #endif | ||
165 | |||
166 | #ifdef HAVE_SPDIF_POWER | ||
167 | void spdif_power_enable(bool on) | ||
168 | { | ||
169 | or_l(0x01000000, &GPIO1_FUNCTION); | ||
170 | or_l(0x01000000, &GPIO1_ENABLE); | ||
171 | |||
172 | #ifdef SPDIF_POWER_INVERTED | ||
173 | if(!on) | ||
174 | #else | ||
175 | if(on) | ||
176 | #endif | 133 | #endif |
177 | and_l(~0x01000000, &GPIO1_OUT); | ||
178 | else | ||
179 | or_l(0x01000000, &GPIO1_OUT); | ||
180 | } | 134 | } |
181 | #endif | 135 | #endif |
182 | 136 | ||
@@ -185,14 +139,7 @@ void ide_power_enable(bool on) | |||
185 | { | 139 | { |
186 | (void)on; | 140 | (void)on; |
187 | 141 | ||
188 | #if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) | 142 | #if defined(GMINI_ARCH) |
189 | if(on) | ||
190 | and_l(~0x80000000, &GPIO_OUT); | ||
191 | else | ||
192 | or_l(0x80000000, &GPIO_OUT); | ||
193 | #elif defined(IAUDIO_X5) | ||
194 | /* X5 TODO */ | ||
195 | #elif defined(GMINI_ARCH) | ||
196 | if(on) | 143 | if(on) |
197 | P1 |= 0x08; | 144 | P1 |= 0x08; |
198 | else | 145 | else |
@@ -244,11 +191,7 @@ void ide_power_enable(bool on) | |||
244 | 191 | ||
245 | bool ide_powered(void) | 192 | bool ide_powered(void) |
246 | { | 193 | { |
247 | #if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) | 194 | #if defined(GMINI_ARCH) |
248 | return (GPIO_OUT & 0x80000000)?false:true; | ||
249 | #elif defined(IAUDIO_X5) | ||
250 | return false; /* X5 TODO */ | ||
251 | #elif defined(GMINI_ARCH) | ||
252 | return (P1 & 0x08?true:false); | 195 | return (P1 & 0x08?true:false); |
253 | #elif defined(TOSHIBA_GIGABEAT_F) | 196 | #elif defined(TOSHIBA_GIGABEAT_F) |
254 | return false; | 197 | return false; |
@@ -279,10 +222,7 @@ bool ide_powered(void) | |||
279 | void power_off(void) | 222 | void power_off(void) |
280 | { | 223 | { |
281 | set_irq_level(HIGHEST_IRQ_LEVEL); | 224 | set_irq_level(HIGHEST_IRQ_LEVEL); |
282 | #if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES) | 225 | #if CONFIG_CPU == PNX0101 |
283 | and_l(~0x00080000, &GPIO1_OUT); | ||
284 | asm("halt"); | ||
285 | #elif CONFIG_CPU == PNX0101 | ||
286 | GPIO1_CLR = 1 << 16; | 226 | GPIO1_CLR = 1 << 16; |
287 | GPIO2_SET = 1; | 227 | GPIO2_SET = 1; |
288 | #elif defined(GMINI_ARCH) | 228 | #elif defined(GMINI_ARCH) |