diff options
Diffstat (limited to 'firmware/drivers/power.c')
-rw-r--r-- | firmware/drivers/power.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/firmware/drivers/power.c b/firmware/drivers/power.c index d3ce939ce2..559509fa67 100644 --- a/firmware/drivers/power.c +++ b/firmware/drivers/power.c | |||
@@ -22,12 +22,16 @@ | |||
22 | #include "adc.h" | 22 | #include "adc.h" |
23 | #include "power.h" | 23 | #include "power.h" |
24 | 24 | ||
25 | #ifdef HAVE_CHARGE_CTRL | ||
26 | bool charger_enabled = 0; | ||
27 | #endif | ||
28 | |||
25 | #ifndef SIMULATOR | 29 | #ifndef SIMULATOR |
26 | 30 | ||
27 | bool charger_inserted(void) | 31 | bool charger_inserted(void) |
28 | { | 32 | { |
29 | #ifdef ARCHOS_RECORDER | 33 | #ifdef ARCHOS_RECORDER |
30 | return adc_read(ADC_EXT_POWER) > 0x200; | 34 | return adc_read(ADC_EXT_POWER) > 0x100; |
31 | #else | 35 | #else |
32 | return (PADR & 1) == 0; | 36 | return (PADR & 1) == 0; |
33 | #endif | 37 | #endif |
@@ -58,11 +62,14 @@ bool battery_level_safe(void) | |||
58 | 62 | ||
59 | void charger_enable(bool on) | 63 | void charger_enable(bool on) |
60 | { | 64 | { |
61 | #ifdef ARCHOS_RECORDER | 65 | #ifdef HAVE_CHARGE_CTRL |
62 | if(on) | 66 | if(on) { |
63 | PBDR &= ~0x20; | 67 | PBDR &= ~0x20; |
64 | else | 68 | charger_enabled = 1; |
69 | } else { | ||
65 | PBDR |= 0x20; | 70 | PBDR |= 0x20; |
71 | charger_enabled = 0; | ||
72 | } | ||
66 | #else | 73 | #else |
67 | on = on; | 74 | on = on; |
68 | #endif | 75 | #endif |