diff options
author | Sebastian Leonhardt <sebastian.leonhardt@web.de> | 2014-05-27 18:07:07 +0200 |
---|---|---|
committer | Szymon Dziok <b0hoon@o2.pl> | 2014-07-27 12:09:36 +0200 |
commit | 7e778c5f49eee3a3e12722e1fe68a19cc3818b59 (patch) | |
tree | 166b84e5ad8b0e00b77162917db3dc171bfa0081 /firmware/target/arm/samsung/yh820/powermgmt-yh820.c | |
parent | 6bbfb35560d440e21bdd73728d43a75b6b4de6fd (diff) | |
download | rockbox-7e778c5f49eee3a3e12722e1fe68a19cc3818b59.tar.gz rockbox-7e778c5f49eee3a3e12722e1fe68a19cc3818b59.zip |
Samsung YH-820: enable battery monitoring
The "percent_to_volt_charge" values are quite arbitrary
and may need some more tweaking.
Change-Id: I9f177d46681030d615fe2c2e78cf9bd2dde026af
Reviewed-on: http://gerrit.rockbox.org/824
Reviewed-by: Szymon Dziok <b0hoon@o2.pl>
Tested: Szymon Dziok <b0hoon@o2.pl>
Diffstat (limited to 'firmware/target/arm/samsung/yh820/powermgmt-yh820.c')
-rw-r--r-- | firmware/target/arm/samsung/yh820/powermgmt-yh820.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/firmware/target/arm/samsung/yh820/powermgmt-yh820.c b/firmware/target/arm/samsung/yh820/powermgmt-yh820.c index 180194c704..8f0847bd20 100644 --- a/firmware/target/arm/samsung/yh820/powermgmt-yh820.c +++ b/firmware/target/arm/samsung/yh820/powermgmt-yh820.c | |||
@@ -24,36 +24,34 @@ | |||
24 | #include "adc.h" | 24 | #include "adc.h" |
25 | #include "powermgmt.h" | 25 | #include "powermgmt.h" |
26 | 26 | ||
27 | /* TODO: Not yet calibrated */ | ||
28 | |||
29 | const unsigned short battery_level_dangerous[BATTERY_TYPES_COUNT] = | 27 | const unsigned short battery_level_dangerous[BATTERY_TYPES_COUNT] = |
30 | { | 28 | { |
31 | 3695 | 29 | 3400 |
32 | }; | 30 | }; |
33 | 31 | ||
34 | const unsigned short battery_level_shutoff[BATTERY_TYPES_COUNT] = | 32 | const unsigned short battery_level_shutoff[BATTERY_TYPES_COUNT] = |
35 | { | 33 | { |
36 | 3627 | 34 | 3199 |
37 | }; | 35 | }; |
38 | 36 | ||
39 | /* voltages (millivolt) of 0%, 10%, ... 100% when charging disabled */ | 37 | /* voltages (millivolt) of 0%, 10%, ... 100% when charging disabled */ |
38 | /* NOTE: readout clips at around 4000mV */ | ||
40 | const unsigned short percent_to_volt_discharge[BATTERY_TYPES_COUNT][11] = | 39 | const unsigned short percent_to_volt_discharge[BATTERY_TYPES_COUNT][11] = |
41 | { | 40 | { |
42 | { 3695, 3714, 3772, 3791, 3811, 3850, 3908, 3985, 4024, 4111, 4198 } | 41 | { 3199, 3492, 3543, 3601, 3626, 3651, 3702, 3769, 3794, 3865, 3995 } |
43 | }; | 42 | }; |
44 | 43 | ||
45 | /* voltages (millivolt) of 0%, 10%, ... 100% when charging enabled */ | 44 | /* voltages (millivolt) of 0%, 10%, ... 100% when charging enabled */ |
45 | /* NOTE: these values may be rather inaccurate. Readout clips at around 4000mV */ | ||
46 | const unsigned short percent_to_volt_charge[11] = | 46 | const unsigned short percent_to_volt_charge[11] = |
47 | { | 47 | { |
48 | 3850, 3888, 3927, 3966, 4024, 4063, 4111, 4150, 4198, 4237, 4286 | 48 | 3750, 3860, 3880, 3900, 3930, 3994, 4080, 4135, 4200, 4200, 4200 |
49 | }; | 49 | }; |
50 | 50 | ||
51 | #define BATTERY_SCALE_FACTOR 4650 | 51 | #define BATTERY_SCALE_FACTOR 5000 |
52 | /* full-scale ADC readout (2^10) in millivolt */ | ||
53 | 52 | ||
54 | /* Returns battery voltage from ADC [millivolts] */ | 53 | /* Returns battery voltage from ADC [millivolts] */ |
55 | int _battery_voltage(void) | 54 | int _battery_voltage(void) |
56 | { | 55 | { |
57 | /* return (adc_read(ADC_UNREG_POWER) * BATTERY_SCALE_FACTOR) >> 10; */ | 56 | return ((adc_read(ADC_UNREG_POWER) * BATTERY_SCALE_FACTOR) >> 10) - 1000; |
58 | return 4100; | ||
59 | } | 57 | } |