summaryrefslogtreecommitdiff
path: root/firmware/target/arm/tcc780x/cowond2/powermgmt-cowond2.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/tcc780x/cowond2/powermgmt-cowond2.c')
-rw-r--r--firmware/target/arm/tcc780x/cowond2/powermgmt-cowond2.c14
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
28unsigned short current_voltage = 3910; 28unsigned short current_voltage = 3910;
29 29
30const unsigned short battery_level_dangerous[BATTERY_TYPES_COUNT] = 30const 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;