diff options
author | Rob Purchase <shotofadds@rockbox.org> | 2009-10-08 15:47:43 +0000 |
---|---|---|
committer | Rob Purchase <shotofadds@rockbox.org> | 2009-10-08 15:47:43 +0000 |
commit | 292a53da4b862dcb942b02eb47664efaf294d8c9 (patch) | |
tree | 613ea37b76ce89abb9235fa1587978177c708998 /firmware/target/arm/tcc780x/cowond2/powermgmt-cowond2.c | |
parent | 5a435e62d062c7bc75c27a324e89de06cc4543f9 (diff) | |
download | rockbox-292a53da4b862dcb942b02eb47664efaf294d8c9.tar.gz rockbox-292a53da4b862dcb942b02eb47664efaf294d8c9.zip |
D2: Use a common function for reading ADC values from the PMU
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23007 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/tcc780x/cowond2/powermgmt-cowond2.c')
-rw-r--r-- | firmware/target/arm/tcc780x/cowond2/powermgmt-cowond2.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/firmware/target/arm/tcc780x/cowond2/powermgmt-cowond2.c b/firmware/target/arm/tcc780x/cowond2/powermgmt-cowond2.c index 683c1c3be7..b52d5c46ba 100644 --- a/firmware/target/arm/tcc780x/cowond2/powermgmt-cowond2.c +++ b/firmware/target/arm/tcc780x/cowond2/powermgmt-cowond2.c | |||
@@ -26,7 +26,7 @@ | |||
26 | #include "pcf50606.h" | 26 | #include "pcf50606.h" |
27 | 27 | ||
28 | unsigned short current_voltage = 3910; | 28 | unsigned short current_voltage = 3910; |
29 | 29 | ||
30 | const unsigned short battery_level_dangerous[BATTERY_TYPES_COUNT] = | 30 | const unsigned short battery_level_dangerous[BATTERY_TYPES_COUNT] = |
31 | { | 31 | { |
32 | 3380 | 32 | 3380 |
@@ -42,7 +42,7 @@ const unsigned short percent_to_volt_discharge[BATTERY_TYPES_COUNT][11] = | |||
42 | { | 42 | { |
43 | /* Standard D2 internal battery */ | 43 | /* Standard D2 internal battery */ |
44 | { 3370, 3690, 3750, 3775, 3790, 3820, 3880, 3940, 3980, 4090, 4170 } | 44 | { 3370, 3690, 3750, 3775, 3790, 3820, 3880, 3940, 3980, 4090, 4170 } |
45 | 45 | ||
46 | /* TODO: DIY replacements eg. Nokia BP-4L ? */ | 46 | /* TODO: DIY replacements eg. Nokia BP-4L ? */ |
47 | }; | 47 | }; |
48 | 48 | ||
@@ -65,15 +65,9 @@ unsigned int battery_adc_voltage(void) | |||
65 | 65 | ||
66 | if (TIME_BEFORE(last_tick+HZ, current_tick)) | 66 | if (TIME_BEFORE(last_tick+HZ, current_tick)) |
67 | { | 67 | { |
68 | int adc_val, irq_status; | 68 | short adc_val; |
69 | unsigned char buf[2]; | 69 | pcf50606_read_adc(PCF5060X_ADC_BATVOLT_RES, &adc_val, NULL); |
70 | |||
71 | irq_status = disable_irq_save(); | ||
72 | pcf50606_write(PCF5060X_ADCC2, 0x1); | ||
73 | pcf50606_read_multiple(PCF5060X_ADCS1, buf, 2); | ||
74 | restore_interrupt(irq_status); | ||
75 | 70 | ||
76 | adc_val = (buf[0]<<2) | (buf[1] & 3); //ADCDAT1H+ADCDAT1L | ||
77 | current_voltage = (adc_val * BATTERY_SCALE_FACTOR) >> 10; | 71 | current_voltage = (adc_val * BATTERY_SCALE_FACTOR) >> 10; |
78 | 72 | ||
79 | last_tick = current_tick; | 73 | last_tick = current_tick; |