2 #include <asm/arch/adc_drvapi.h>
4 unsigned int get_bat_low_level(void);
5 unsigned int get_bat_low_level_chg(void);
6 int charger_connected(void);
7 extern uint16_t sprdbat_auxadc2vbatvol(uint16_t adcvalue);
10 uint32_t vbat_buf[_BUF_SIZE];
11 void put_vbat_value(uint32_t vbat)
14 for(i=0;i<_BUF_SIZE -1;i++){
15 vbat_buf[i] = vbat_buf[i+1];
18 vbat_buf[_BUF_SIZE-1] = vbat;
21 uint32_t get_vbat_value(void)
25 for(i=0; i < _BUF_SIZE; i++)
35 unsigned int comp_vbat = 0;
42 if(charger_connected()){
43 comp_vbat = get_bat_low_level_chg();
45 comp_vbat = get_bat_low_level();
50 for(i=0;i<_BUF_SIZE;i++){
52 adc_value = ADC_GetValue(ADC_CHANNEL_VBAT, false);
54 printf("ADC read error\n");
58 put_vbat_value(adc_value);
62 adc_value = get_vbat_value();
64 printf("is_bat_low adc_value:%d,comp_vbat:%d\n",adc_value,comp_vbat);
66 if(sprdbat_auxadc2vbatvol (adc_value) < comp_vbat)