4 #include <asm/arch/regs_adi.h>
5 #include <asm/arch/adi_hal_internal.h>
6 #include <asm/arch/analog_reg_v3.h>
8 uint16_t adc_voltage_table[2][2] =
10 #ifdef CONFIG_SC7710G2
18 uint16_t CHGMNG_AdcvalueToVoltage (uint16_t adcvalue)
21 temp = adc_voltage_table[0][1] - adc_voltage_table[1][1];
22 temp = temp * (adcvalue - adc_voltage_table[0][0]);
23 temp = temp / (adc_voltage_table[0][0] - adc_voltage_table[1][0]);
25 printf("mingwei uboot adcvalue:%u,vol:%d,adc4200:%d,adc3600:%d\n", (unsigned int)adcvalue, temp + adc_voltage_table[0][1],
26 adc_voltage_table[0][0], adc_voltage_table[1][0]);
28 return temp + adc_voltage_table[0][1];
30 void CHG_TurnOn (void)
32 ANA_REG_AND (ANA_CHGR_CTL0,~CHGR_PD_BIT);
35 void CHG_ShutDown (void)
37 ANA_REG_OR (ANA_CHGR_CTL0,CHGR_PD_BIT);
40 void CHG_SetRecharge (void)
42 ANA_REG_OR (ANA_CHGR_CTL0,CHGR_RECHG_BIT);
47 unsigned int efuse_cal_data[2] = {0};
48 if(sci_efuse_calibration_get(efuse_cal_data))
50 printf("sci_efuse_calibration_get OK");
51 adc_voltage_table[0][1]=efuse_cal_data[0]&0xffff;
52 adc_voltage_table[0][0]=(efuse_cal_data[0]>>16)&0xffff;
53 adc_voltage_table[1][1]=efuse_cal_data[1]&0xffff;
54 adc_voltage_table[1][0]=(efuse_cal_data[1]>>16)&0xffff;
56 #ifdef CONFIG_AP_ADC_CALIBRATION
58 extern int read_adc_calibration_data(char *buffer,int size);
59 unsigned int *adc_data;
61 adc_data = malloc(64);
63 ret = read_adc_calibration_data(adc_data,48);
65 ((adc_data[2]&0xffff) < 4500 )&&((adc_data[2]&0xffff) > 3000)&&
66 ((adc_data[3]&0xffff) < 4500 )&&((adc_data[3]&0xffff) > 3000)){
67 printf("adc_para = 0x%x 0x%x \n",adc_data[2],adc_data[3]);
68 adc_voltage_table[0][1]=adc_data[2]&0xffff;
69 adc_voltage_table[0][0]=(adc_data[2]>>16)&0xffff;
70 adc_voltage_table[1][1]=adc_data[3]&0xffff;
71 adc_voltage_table[1][0]=(adc_data[3]>>16)&0xffff;