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.zip rockbox-3f809e716dea26d77bf2cd8e70c3d709c3c25169.tar.gz rockbox-3f809e716dea26d77bf2cd8e70c3d709c3c25169.tar.bz2 rockbox-3f809e716dea26d77bf2cd8e70c3d709c3c25169.tar.xz | |
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 1ff5118..0c05f4d 100644 --- a/firmware/drivers/adc.h +++ b/firmware/drivers/adc.h @@ -40,6 +40,8 @@ #define BATTERY_SCALE_FACTOR 6546 #endif +#define EXT_SCALE_FACTOR 14800 + unsigned short adc_read(int channel); void adc_init(void); diff --git a/firmware/drivers/power.c b/firmware/drivers/power.c index d3ce939..559509f 100644 --- a/firmware/drivers/power.c +++ b/firmware/drivers/power.c @@ -22,12 +22,16 @@ #include "adc.h" #include "power.h" +#ifdef HAVE_CHARGE_CTRL +bool charger_enabled = 0; +#endif + #ifndef SIMULATOR bool charger_inserted(void) { #ifdef ARCHOS_RECORDER - return adc_read(ADC_EXT_POWER) > 0x200; + return adc_read(ADC_EXT_POWER) > 0x100; #else return (PADR & 1) == 0; #endif @@ -58,11 +62,14 @@ bool battery_level_safe(void) void charger_enable(bool on) { -#ifdef ARCHOS_RECORDER - if(on) +#ifdef HAVE_CHARGE_CTRL + if(on) { PBDR &= ~0x20; - else + charger_enabled = 1; + } else { PBDR |= 0x20; + charger_enabled = 0; + } #else on = on; #endif diff --git a/firmware/drivers/power.h b/firmware/drivers/power.h index f921b67..fe7d443 100644 --- a/firmware/drivers/power.h +++ b/firmware/drivers/power.h @@ -26,6 +26,10 @@ #define BATTERY_RANGE (BATTERY_LEVEL_FULL - BATTERY_LEVEL_EMPTY) +#ifdef HAVE_CHARGE_CTRL +extern bool charger_enabled; +#endif + bool charger_inserted(void); void charger_enable(bool on); void ide_power_enable(bool on); |