diff options
author | Bertrik Sikken <bertrik@sikken.nl> | 2010-01-17 14:19:31 +0000 |
---|---|---|
committer | Bertrik Sikken <bertrik@sikken.nl> | 2010-01-17 14:19:31 +0000 |
commit | 51cb7eb5f27d773db949d3491b544fdf42ff625c (patch) | |
tree | f205c54d5cefb9608aa14c7dfd7b756c8290d97b | |
parent | e3fc65cfff31bf71dc648280ad714d214b9666a1 (diff) | |
download | rockbox-51cb7eb5f27d773db949d3491b544fdf42ff625c.tar.gz rockbox-51cb7eb5f27d773db949d3491b544fdf42ff625c.zip |
Sansa c200v2: enable battery charging
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24257 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/debug_menu.c | 5 | ||||
-rw-r--r-- | firmware/SOURCES | 3 | ||||
-rw-r--r-- | firmware/export/config/sansac200v2.h | 4 | ||||
-rw-r--r-- | firmware/target/arm/as3525/powermgmt-target.h | 10 | ||||
-rw-r--r-- | firmware/target/arm/as3525/sansa-c200v2/powermgmt-c200v2.c | 48 |
5 files changed, 65 insertions, 5 deletions
diff --git a/apps/debug_menu.c b/apps/debug_menu.c index dd16a4ef4c..5162fc5cca 100644 --- a/apps/debug_menu.c +++ b/apps/debug_menu.c | |||
@@ -109,7 +109,7 @@ | |||
109 | #endif | 109 | #endif |
110 | 110 | ||
111 | #if defined(SANSA_E200) || defined(SANSA_C200) || defined(PHILIPS_SA9200) \ | 111 | #if defined(SANSA_E200) || defined(SANSA_C200) || defined(PHILIPS_SA9200) \ |
112 | || defined(SANSA_CLIP) || defined(SANSA_FUZE) | 112 | || defined(SANSA_CLIP) || defined(SANSA_FUZE) || defined(SANSA_C200V2) |
113 | #include "ascodec.h" | 113 | #include "ascodec.h" |
114 | #include "as3514.h" | 114 | #include "as3514.h" |
115 | #endif | 115 | #endif |
@@ -1618,7 +1618,8 @@ static bool view_battery(void) | |||
1618 | lcd_puts(0, line++, "T Battery: ?"); | 1618 | lcd_puts(0, line++, "T Battery: ?"); |
1619 | } | 1619 | } |
1620 | 1620 | ||
1621 | #elif defined(SANSA_E200) || defined(SANSA_C200) || defined(SANSA_CLIP) || defined(SANSA_FUZE) | 1621 | #elif defined(SANSA_E200) || defined(SANSA_C200) || defined(SANSA_CLIP) || \ |
1622 | defined(SANSA_FUZE) || defined (SANSA_C200V2) | ||
1622 | const int first = CHARGE_STATE_DISABLED; | 1623 | const int first = CHARGE_STATE_DISABLED; |
1623 | static const char * const chrgstate_strings[] = | 1624 | static const char * const chrgstate_strings[] = |
1624 | { | 1625 | { |
diff --git a/firmware/SOURCES b/firmware/SOURCES index c1da067fd3..540ec8b1f4 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES | |||
@@ -1250,7 +1250,8 @@ target/arm/as3525/sansa-c200v2/button-c200v2.c | |||
1250 | target/arm/as3525/sansa-c200v2/backlight-c200v2.c | 1250 | target/arm/as3525/sansa-c200v2/backlight-c200v2.c |
1251 | target/arm/as3525/dbop-as3525.c | 1251 | target/arm/as3525/dbop-as3525.c |
1252 | #ifndef BOOTLOADER | 1252 | #ifndef BOOTLOADER |
1253 | target/arm/as3525/powermgmt-as3525.c | 1253 | target/arm/powermgmt-ascodec.c |
1254 | target/arm/as3525/sansa-c200v2/powermgmt-c200v2.c | ||
1254 | #endif /* !BOOTLOADER */ | 1255 | #endif /* !BOOTLOADER */ |
1255 | #endif /* !SIMULATOR */ | 1256 | #endif /* !SIMULATOR */ |
1256 | #endif /* SANSA_E200V2 */ | 1257 | #endif /* SANSA_E200V2 */ |
diff --git a/firmware/export/config/sansac200v2.h b/firmware/export/config/sansac200v2.h index 65aebf245b..aa1ed1ab70 100644 --- a/firmware/export/config/sansac200v2.h +++ b/firmware/export/config/sansac200v2.h | |||
@@ -131,8 +131,8 @@ | |||
131 | #define BATTERY_CAPACITY_INC 0 /* capacity increment */ | 131 | #define BATTERY_CAPACITY_INC 0 /* capacity increment */ |
132 | #define BATTERY_TYPES_COUNT 1 /* only one type */ | 132 | #define BATTERY_TYPES_COUNT 1 /* only one type */ |
133 | 133 | ||
134 | /* Hardware controlled charging? FIXME */ | 134 | /* Charging implemented in a target-specific algorithm */ |
135 | #define CONFIG_CHARGING CHARGING_SIMPLE | 135 | #define CONFIG_CHARGING CHARGING_TARGET |
136 | 136 | ||
137 | /* define this if the unit can be powered or charged via USB */ | 137 | /* define this if the unit can be powered or charged via USB */ |
138 | #define HAVE_USB_POWER | 138 | #define HAVE_USB_POWER |
diff --git a/firmware/target/arm/as3525/powermgmt-target.h b/firmware/target/arm/as3525/powermgmt-target.h index 269a89349e..159a051e70 100644 --- a/firmware/target/arm/as3525/powermgmt-target.h +++ b/firmware/target/arm/as3525/powermgmt-target.h | |||
@@ -52,6 +52,16 @@ | |||
52 | #define CHARGER_TOTAL_TIMER (4*3600*2) | 52 | #define CHARGER_TOTAL_TIMER (4*3600*2) |
53 | #define ADC_BATTERY ADC_BVDD | 53 | #define ADC_BATTERY ADC_BVDD |
54 | 54 | ||
55 | #elif defined(SANSA_C200V2) | ||
56 | |||
57 | /* Check if topped-off and monitor voltage while plugged. */ | ||
58 | #define BATT_FULL_VOLTAGE 4160 | ||
59 | #define BATT_VAUTO_RECHARGE 4100 | ||
60 | #define BATT_CHG_V CHG_V_4_20V | ||
61 | #define BATT_CHG_I CHG_I_200MA | ||
62 | #define CHARGER_TOTAL_TIMER (4*3600*2) | ||
63 | #define ADC_BATTERY ADC_BVDD | ||
64 | |||
55 | #else | 65 | #else |
56 | #error "Charger settings not defined!" | 66 | #error "Charger settings not defined!" |
57 | #endif | 67 | #endif |
diff --git a/firmware/target/arm/as3525/sansa-c200v2/powermgmt-c200v2.c b/firmware/target/arm/as3525/sansa-c200v2/powermgmt-c200v2.c new file mode 100644 index 0000000000..395e2a472c --- /dev/null +++ b/firmware/target/arm/as3525/sansa-c200v2/powermgmt-c200v2.c | |||
@@ -0,0 +1,48 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2002 by Heikki Hannikainen, Uwe Freese | ||
11 | * Revisions copyright (C) 2005 by Gerald Van Baren | ||
12 | * | ||
13 | * This program is free software; you can redistribute it and/or | ||
14 | * modify it under the terms of the GNU General Public License | ||
15 | * as published by the Free Software Foundation; either version 2 | ||
16 | * of the License, or (at your option) any later version. | ||
17 | * | ||
18 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
19 | * KIND, either express or implied. | ||
20 | * | ||
21 | ****************************************************************************/ | ||
22 | |||
23 | #include "config.h" | ||
24 | #include "powermgmt.h" | ||
25 | |||
26 | const unsigned short battery_level_dangerous[BATTERY_TYPES_COUNT] = | ||
27 | { | ||
28 | 3400 | ||
29 | }; | ||
30 | |||
31 | const unsigned short battery_level_shutoff[BATTERY_TYPES_COUNT] = | ||
32 | { | ||
33 | 3300 | ||
34 | }; | ||
35 | |||
36 | /* voltages (millivolt) of 0%, 10%, ... 100% when charging disabled */ | ||
37 | const unsigned short percent_to_volt_discharge[BATTERY_TYPES_COUNT][11] = | ||
38 | { | ||
39 | /* TODO: calibrate, copied from powermgmt-c200.c svn r22636 */ | ||
40 | { 3400, 3689, 3744, 3773, 3798, 3831, 3886, 3947, 4005, 4102, 4220 }, | ||
41 | }; | ||
42 | |||
43 | /* voltages (millivolt) of 0%, 10%, ... 100% when charging enabled */ | ||
44 | const unsigned short percent_to_volt_charge[11] = | ||
45 | { | ||
46 | /* TODO: simple uncalibrated curve with 10% knee at 3.60V */ | ||
47 | 3400, 3600, 3670, 3740, 3810, 3880, 3950, 4020, 4090, 4160, 4230 | ||
48 | }; | ||