multiple battery types prepared (CONFIG_BATTERY)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5227 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Jörg Hohensohn 2004-10-08 17:45:52 +00:00
parent 5cf1c97aea
commit 43079ea07f
12 changed files with 43 additions and 21 deletions

View file

@ -213,10 +213,12 @@ static const struct bit_entry rtc_bits[] =
{1, S_O(discharge), 0, "deep discharge", off_on },
{1, S_O(trickle_charge), true, "trickle charge", off_on },
#endif
#ifdef HAVE_LIION
#if CONFIG_BATTERY == BATT_LIION2200
{12, S_O(battery_capacity), 2200, "battery capacity", NULL }, /* 1500...3200 */
#else
#elif CONFIG_BATTERY == BATT_4AA_NIMH
{12, S_O(battery_capacity), 1500, "battery capacity", NULL }, /* 1500...3200 */
#elif CONFIG_BATTERY == BATT_3AAA_ALKALINE
{12, S_O(battery_capacity), 1000, "battery capacity", NULL },
#endif
{1, S_O(car_adapter_mode), false, "car adapter mode", off_on },

View file

@ -172,7 +172,7 @@ void status_draw(bool force_redraw)
if (info.inserted) {
battery_state = true;
plug_state = true;
#if defined(HAVE_CHARGE_CTRL) || defined(HAVE_LIION)
#if defined(HAVE_CHARGE_CTRL) || CONFIG_BATTERY == BATT_LIION2200
/* zero battery run time if charging */
if (charge_state > 0) {
global_settings.runtime = 0;

View file

@ -25,9 +25,6 @@
/* Define this if you have a FM Recorder key system */
#define HAVE_FMADC 1
/* Define this if you have a LiIon battery */
#define HAVE_LIION
/* Define this if you need to power on ATA */
#define NEEDS_ATA_POWER_ON
@ -37,6 +34,9 @@
/* Define this to the CPU frequency */
#define CPU_FREQ 11059200
/* Type of mobile power */
#define CONFIG_BATTERY BATT_LIION2200
/* Battery scale factor (guessed, seems to be 1,25 * value from recorder) */
#define BATTERY_SCALE_FACTOR 8081
@ -61,7 +61,7 @@
/* How to detect USB */
#define USB_FMRECORDERSTYLE 1
/* Define this if the platform has batteries */
/* Define this if the platform can charge batteries */
#define HAVE_BATTERIES 1
/* The start address index for ROM builds */

View file

@ -16,7 +16,10 @@
/* Define this if you have a Motorola SCF5249 */
#define CONFIG_CPU MCF5249
/* Define this if the platform has batteries */
/* Type of mobile power, FIXME: probably different, make new type */
#define CONFIG_BATTERY BATT_LIION2200
/* Define this if the platform can charge batteries */
#define HAVE_BATTERIES 1
/* The start address index for ROM builds */

View file

@ -22,6 +22,9 @@
/* Define this to the CPU frequency */
#define CPU_FREQ 12000000
/* Type of mobile power */
#define CONFIG_BATTERY BATT_3AAA_ALKALINE
/* Battery scale factor (measured from Jörg's FM) */
#define BATTERY_SCALE_FACTOR 4785 /* 4.890V read as 0x3FE */

View file

@ -19,6 +19,9 @@
/* Define this to the CPU frequency */
#define CPU_FREQ 12000000
/* Type of mobile power */
#define CONFIG_BATTERY BATT_3AAA_ALKALINE
/* Battery scale factor (measured from Jörg's FM) */
#define BATTERY_SCALE_FACTOR 4785 /* 4.890V read as 0x3FE */

View file

@ -22,6 +22,9 @@
/* Define this to the CPU frequency */
#define CPU_FREQ 12000000 /* cycle time ~83.3ns */
/* Type of mobile power */
#define CONFIG_BATTERY BATT_4AA_NIMH
/* Battery scale factor (?) */
#define BATTERY_SCALE_FACTOR 6546
@ -44,7 +47,7 @@
/* How to detect USB */
#define USB_PLAYERSTYLE 1
/* Define this if the platform has batteries */
/* Define this if the platform can charge batteries */
#define HAVE_BATTERIES 1
/* Define this for programmable LED available */

View file

@ -34,6 +34,9 @@
/* Define this to the CPU frequency */
#define CPU_FREQ 11059200
/* Type of mobile power */
#define CONFIG_BATTERY BATT_4AA_NIMH
/* Battery scale factor (?) */
#define BATTERY_SCALE_FACTOR 6465
@ -52,7 +55,7 @@
/* How to detect USB */
#define USB_RECORDERSTYLE 1
/* Define this if the platform has batteries */
/* Define this if the platform can charge batteries */
#define HAVE_BATTERIES 1
/* The start address index for ROM builds */

View file

@ -25,9 +25,6 @@
/* Define this if you have a FM Recorder key system */
#define HAVE_FMADC 1
/* Define this if you have a LiIon battery */
#define HAVE_LIION
/* Define this if you need to power on ATA */
#define NEEDS_ATA_POWER_ON
@ -37,6 +34,9 @@
/* Define this to the CPU frequency */
#define CPU_FREQ 11059200
/* Type of mobile power */
#define CONFIG_BATTERY BATT_LIION2200
/* Battery scale factor (guessed, seems to be 1,25 * value from recorder) */
#define BATTERY_SCALE_FACTOR 8081
@ -61,7 +61,7 @@
/* How to detect USB */
#define USB_FMRECORDERSTYLE 1
/* Define this if the platform has batteries */
/* Define this if the platform can charge batteries */
#define HAVE_BATTERIES 1
/* The start address index for ROM builds */

View file

@ -40,6 +40,11 @@
#define RECORDER_PAD 1
#define ONDIO_PAD 2
/* CONFIG_BATTERY */
#define BATT_LIION2200 2200 /* FM/V2 recorder type */
#define BATT_4AA_NIMH 1500
#define BATT_3AAA_ALKALINE 1000
/* now go and pick yours */
#if defined(ARCHOS_PLAYER)
#include "config-player.h"

View file

@ -19,7 +19,7 @@
#ifndef _POWERMGMT_H_
#define _POWERMGMT_H_
#ifdef HAVE_LIION /* FM Recorder, LiIon */
#if CONFIG_BATTERY == BATT_LIION2200 /* FM Recorder, LiIon */
#define BATTERY_LEVEL_SHUTDOWN 260 /* 2.60V */
#define BATTERY_LEVEL_EMPTY 265 /* 2.65V */
#define BATTERY_LEVEL_DANGEROUS 280 /* 2.80V */
@ -71,7 +71,7 @@ extern int trickle_sec; /* trickle charge: How many seconds per minute
#endif /* HAVE_CHARGE_CTRL */
#if defined(HAVE_CHARGE_CTRL) || defined(HAVE_LIION)
#if defined(HAVE_CHARGE_CTRL) || CONFIG_BATTERY == BATT_LIION2200
extern int charge_state; /* tells what the charger is doing (for info display): 0: decharging/charger off, 1: charge, 2: top-off, 3: trickle */
#endif

View file

@ -92,7 +92,7 @@ static const int poweroff_idle_timeout_value[15] =
static const int percent_to_volt_decharge[11] =
/* voltages (centivolt) of 0%, 10%, ... 100% when charging disabled */
{
#ifdef HAVE_LIION
#if CONFIG_BATTERY == BATT_LIION2200
/* measured values */
260, 285, 295, 303, 311, 320, 330, 345, 360, 380, 400
#else /* NiMH */
@ -112,7 +112,7 @@ void set_battery_capacity(int capacity)
battery_capacity = 1500;
}
#if defined(HAVE_CHARGE_CTRL) || defined(HAVE_LIION)
#if defined(HAVE_CHARGE_CTRL) || CONFIG_BATTERY == BATT_LIION2200
int charge_state = 0; /* at the beginning, the
charger does nothing */
#endif
@ -443,7 +443,7 @@ static void power_thread(void)
int i;
int avg, ok_samples, spin_samples;
int current = 0;
#ifdef HAVE_LIION
#if CONFIG_BATTERY == BATT_LIION2200
int charging_current;
#endif
#ifdef HAVE_CHARGE_CTRL
@ -535,7 +535,7 @@ static void power_thread(void)
#endif /* MEM == 8 */
#endif /* HAVE_CHARGE_CONTROL */
#ifdef HAVE_LIION
#if CONFIG_BATTERY == BATT_LIION2200
/* We use the information from the ADC_EXT_POWER ADC channel, which
tells us the charging current from the LTC1734. When DC is
connected (either via the external adapter, or via USB), we try
@ -790,7 +790,7 @@ static void power_thread(void)
powermgmt_last_cycle_startstop_min++;
#endif /* HAVE_CHARGE_CTRL*/
#endif /* HAVE_LIION */
#endif /* # if CONFIG_BATTERY == BATT_LIION2200 */
/* sleep for roughly a minute */
#ifdef HAVE_CHARGE_CTRL