summaryrefslogtreecommitdiff
path: root/firmware/drivers/power.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/drivers/power.c')
-rw-r--r--firmware/drivers/power.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/firmware/drivers/power.c b/firmware/drivers/power.c
index eda9d17796..e91d8a25cc 100644
--- a/firmware/drivers/power.c
+++ b/firmware/drivers/power.c
@@ -114,6 +114,8 @@ bool charger_inserted(void)
114 return (GPIO1_READ & 0x00400000) || usb_powered(); 114 return (GPIO1_READ & 0x00400000) || usb_powered();
115#elif defined(GMINI_ARCH) 115#elif defined(GMINI_ARCH)
116 return (P7 & 0x80) == 0; 116 return (P7 & 0x80) == 0;
117#elif defined(IAUDIO_X5)
118 return (GPIO1_READ & 0x01000000)?true:false;
117#elif defined(HAVE_CHARGE_CTRL) 119#elif defined(HAVE_CHARGE_CTRL)
118 /* Recorder */ 120 /* Recorder */
119 return adc_read(ADC_EXT_POWER) > 0x100; 121 return adc_read(ADC_EXT_POWER) > 0x100;
@@ -172,11 +174,13 @@ void ide_power_enable(bool on)
172{ 174{
173 (void)on; 175 (void)on;
174 176
175#if CONFIG_CPU == MCF5249 177#if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES)
176 if(on) 178 if(on)
177 and_l(~0x80000000, &GPIO_OUT); 179 and_l(~0x80000000, &GPIO_OUT);
178 else 180 else
179 or_l(0x80000000, &GPIO_OUT); 181 or_l(0x80000000, &GPIO_OUT);
182#elif defined(IAUDIO_X5)
183 /* X5 TODO */
180#elif CONFIG_CPU == PP5020 184#elif CONFIG_CPU == PP5020
181 /* We do nothing on the iPod */ 185 /* We do nothing on the iPod */
182#elif defined(GMINI_ARCH) 186#elif defined(GMINI_ARCH)
@@ -229,8 +233,10 @@ void ide_power_enable(bool on)
229 233
230bool ide_powered(void) 234bool ide_powered(void)
231{ 235{
232#if CONFIG_CPU == MCF5249 236#if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES)
233 return (GPIO_OUT & 0x80000000)?false:true; 237 return (GPIO_OUT & 0x80000000)?false:true;
238#elif defined(IAUDIO_X5)
239 return false; /* X5 TODO */
234#elif CONFIG_CPU == PP5020 240#elif CONFIG_CPU == PP5020
235 /* pretend we are always powered - we don't turn it off on the ipod */ 241 /* pretend we are always powered - we don't turn it off on the ipod */
236 return true; 242 return true;
@@ -263,8 +269,10 @@ bool ide_powered(void)
263void power_off(void) 269void power_off(void)
264{ 270{
265 set_irq_level(HIGHEST_IRQ_LEVEL); 271 set_irq_level(HIGHEST_IRQ_LEVEL);
266#if CONFIG_CPU == MCF5249 272#if defined(IRIVER_H100_SERIES) || defined(IRIVER_H300_SERIES)
267 and_l(~0x00080000, &GPIO1_OUT); 273 and_l(~0x00080000, &GPIO1_OUT);
274#elif defined(IAUDIO_X5)
275 and_l(~0x00000008, &GPIO_OUT);
268#elif CONFIG_CPU == PP5020 276#elif CONFIG_CPU == PP5020
269#ifndef BOOTLOADER 277#ifndef BOOTLOADER
270 /* We don't turn off the ipod, we put it in a deep sleep */ 278 /* We don't turn off the ipod, we put it in a deep sleep */