diff options
author | Heikki Hannikainen <hessuh@rockbox.org> | 2002-08-06 10:50:50 +0000 |
---|---|---|
committer | Heikki Hannikainen <hessuh@rockbox.org> | 2002-08-06 10:50:50 +0000 |
commit | 3f809e716dea26d77bf2cd8e70c3d709c3c25169 (patch) | |
tree | 46a8c464ab37daf62e6b4b335fb195bbedb123d9 /firmware/drivers | |
parent | 82a1cad9b85cda897fbd70e77b1ec27518af5c3d (diff) | |
download | rockbox-3f809e716dea26d77bf2cd8e70c3d709c3c25169.tar.gz rockbox-3f809e716dea26d77bf2cd8e70c3d709c3c25169.zip |
Added battery charger code for the recorder and battery voltage statistics keeping for all platforms.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1546 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers')
-rw-r--r-- | firmware/drivers/adc.h | 2 | ||||
-rw-r--r-- | firmware/drivers/power.c | 15 | ||||
-rw-r--r-- | firmware/drivers/power.h | 4 |
3 files changed, 17 insertions, 4 deletions
diff --git a/firmware/drivers/adc.h b/firmware/drivers/adc.h index 1ff5118238..0c05f4d0f8 100644 --- a/firmware/drivers/adc.h +++ b/firmware/drivers/adc.h | |||
@@ -40,6 +40,8 @@ | |||
40 | #define BATTERY_SCALE_FACTOR 6546 | 40 | #define BATTERY_SCALE_FACTOR 6546 |
41 | #endif | 41 | #endif |
42 | 42 | ||
43 | #define EXT_SCALE_FACTOR 14800 | ||
44 | |||
43 | unsigned short adc_read(int channel); | 45 | unsigned short adc_read(int channel); |
44 | void adc_init(void); | 46 | void adc_init(void); |
45 | 47 | ||
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 |
diff --git a/firmware/drivers/power.h b/firmware/drivers/power.h index f921b67d5e..fe7d443bef 100644 --- a/firmware/drivers/power.h +++ b/firmware/drivers/power.h | |||
@@ -26,6 +26,10 @@ | |||
26 | 26 | ||
27 | #define BATTERY_RANGE (BATTERY_LEVEL_FULL - BATTERY_LEVEL_EMPTY) | 27 | #define BATTERY_RANGE (BATTERY_LEVEL_FULL - BATTERY_LEVEL_EMPTY) |
28 | 28 | ||
29 | #ifdef HAVE_CHARGE_CTRL | ||
30 | extern bool charger_enabled; | ||
31 | #endif | ||
32 | |||
29 | bool charger_inserted(void); | 33 | bool charger_inserted(void); |
30 | void charger_enable(bool on); | 34 | void charger_enable(bool on); |
31 | void ide_power_enable(bool on); | 35 | void ide_power_enable(bool on); |