blob: 425a96330de3ea9e6a9233598d17619b66486b88 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
/*
* sprd27x3_charger4samsung.h
* Samsung SPRD27X3 Charger Header
*
* Copyright (C) 2012 Samsung Electronics, Inc.
*
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#ifndef __SPRD27X3_CHARGER4SAMSUNG_H
#define __SPRD27X3_CHARGER4SAMSUNG_H
/* Slave address should be shifted to the right 1bit.
* R/W bit should NOT be included.
*/
#define SPRDBAT_AUXADC_CAL_NO 0
#define SPRDBAT_AUXADC_CAL_NV 1
#define SPRDBAT_AUXADC_CAL_CHIP 2
#define SPRDBAT_CHG_END_NONE_BIT 0
#define SPRDBAT_CHG_END_FULL_BIT (1 << 0)
#define SPRDBAT_CHG_END_OTP_OVERHEAT_BIT (1 << 1)
#define SPRDBAT_CHG_END_OTP_COLD_BIT (1 << 2)
#define SPRDBAT_CHG_END_TIMEOUT_BIT (1 << 3)
#define SPRDBAT_CHG_END_OVP_BIT (1 << 4)
//#define SPRDBAT_AVERAGE_COUNT 3
#define SPRDBAT_AUXADC_CAL_TYPE_NO 0
#define SPRDBAT_AUXADC_CAL_TYPE_NV 1
#define SPRDBAT_AUXADC_CAL_TYPE_EFUSE 2
#define SPRDBAT_CCCV_MIN 0x00
#define SPRDBAT_CCCV_MAX 0x3F
#define SPRDBAT_CCCV_DEFAULT 0x0
#define ONE_CCCV_STEP_VOL 75 //7.5mV
#ifdef CONFIG_MACH_VIVALTO
#define SPRDBAT_CHG_END_VOL_PURE (4350)
#elif defined(CONFIG_MACH_HIGGS)
#define SPRDBAT_CHG_END_VOL_PURE (4350)
#elif defined(CONFIG_MACH_YOUNG2)
#define SPRDBAT_CHG_END_VOL_PURE (4200)
#else
#define SPRDBAT_CHG_END_VOL_PURE (4200)
#endif
#define SPRDBAT_CHG_END_H (SPRDBAT_CHG_END_VOL_PURE + 25)
#define SPRDBAT_CHG_END_L (SPRDBAT_CHG_END_VOL_PURE - 10)
#define SPRDBAT_RECHG_VOL (SPRDBAT_CHG_END_VOL_PURE - 70) //recharge voltage
#define SPRDBAT_CHG_OVP_LEVEL_MIN 5600
#define SPRDBAT_CHG_OVP_LEVEL_MAX 9000
#define SPRDBAT_OVP_STOP_VOL 6500
#define SPRDBAT_OVP_RESTERT_VOL 5800 //reserved
/*charge current type*/
#define SPRDBAT_CHG_CUR_LEVEL_MIN 300
#define SPRDBAT_CHG_CUR_LEVEL_MAX 2300
#define SPRDBAT_SDP_CUR_LEVEL 500 //usb
#define SPRDBAT_DCP_CUR_LEVEL 700 //AC
#define SPRDBAT_CDP_CUR_LEVEL 700 //AC&USB
#define SPRDBAT_CHG_END_CUR 70
#define SPRDBAT_OTP_HIGH_STOP 600 //60C
#define SPRDBAT_OTP_HIGH_RESTART (550) //55C
#define SPRDBAT_OTP_LOW_STOP -50 //-5C
#define SPRDBAT_OTP_LOW_RESTART 0 //0C
#define SPRDBAT_CHG_NORMAL_TIMEOUT (6*60*60) /* set for charge over time, 6 hours */
#define SPRDBAT_CHG_SPECIAL_TIMEOUT (90*60) /* when charge timeout, recharge timeout is 90min */
#define SPRDBAT_TRICKLE_CHG_TIME (1500) //reserved
#define SPRDBAT_ADC_CHANNEL_VCHG ADC_CHANNEL_VCHGSEN
#define SPRDBAT_ADC_CHANNEL_TEMP ADC_CHANNEL_3
#define SPRDBAT_ADC_CHANNEL_TEMP_WPA ADC_CHANNEL_1
#define SPRDBAT_ADC_CHANNEL_TEMP_DCXO ADC_CHANNEL_2
#define SPRDBAT_POLL_TIMER_NORMAL 60
#define SPRDBAT_POLL_TIMER_TEMP 1
#define SPRDBAT_TEMP_TRIGGER_TIMES 2
#define SPRDBAT_CAPACITY_MONITOR_NORMAL (HZ*10)
#define SPRDBAT_CAPACITY_MONITOR_FAST (HZ*5)
enum {
POWER_SUPPLY_PWR_RDY_FALSE = 0,
POWER_SUPPLY_PWR_RDY_TRUE,
POWER_SUPPLY_PWR_RDY_UNKNOWN,
};
#if !defined(CONFIG_CHARGER_SM5414)
struct sec_chg_info {
bool dummy;
};
#endif
#if 0
struct sprdbat_auxadc_cal {
uint16_t p0_vol; //4.2V
uint16_t p0_adc;
uint16_t p1_vol; //3.6V
uint16_t p1_adc;
uint16_t cal_type;
};
#endif
#endif /* __SPRD27X3_CHARGER4SAMSUNG_H */
|