diff options
Diffstat (limited to 'include/linux/power')
-rw-r--r-- | include/linux/power/bq20z75.h | 3 | ||||
-rw-r--r-- | include/linux/power/max17042_battery.h | 91 | ||||
-rw-r--r-- | include/linux/power/max8907c-charger.h | 64 |
3 files changed, 158 insertions, 0 deletions
diff --git a/include/linux/power/bq20z75.h b/include/linux/power/bq20z75.h index b0843b68af9..1398eb004e8 100644 --- a/include/linux/power/bq20z75.h +++ b/include/linux/power/bq20z75.h | |||
@@ -29,11 +29,14 @@ | |||
29 | * @battery_detect: GPIO which is used to detect battery presence | 29 | * @battery_detect: GPIO which is used to detect battery presence |
30 | * @battery_detect_present: gpio state when battery is present (0 / 1) | 30 | * @battery_detect_present: gpio state when battery is present (0 / 1) |
31 | * @i2c_retry_count: # of times to retry on i2c IO failure | 31 | * @i2c_retry_count: # of times to retry on i2c IO failure |
32 | * @poll_retry_count: # of times to retry looking for new status after | ||
33 | * external change notification | ||
32 | */ | 34 | */ |
33 | struct bq20z75_platform_data { | 35 | struct bq20z75_platform_data { |
34 | int battery_detect; | 36 | int battery_detect; |
35 | int battery_detect_present; | 37 | int battery_detect_present; |
36 | int i2c_retry_count; | 38 | int i2c_retry_count; |
39 | int poll_retry_count; | ||
37 | }; | 40 | }; |
38 | 41 | ||
39 | #endif | 42 | #endif |
diff --git a/include/linux/power/max17042_battery.h b/include/linux/power/max17042_battery.h index 7995deb8bfc..fe99211fb2b 100644 --- a/include/linux/power/max17042_battery.h +++ b/include/linux/power/max17042_battery.h | |||
@@ -23,8 +23,99 @@ | |||
23 | #ifndef __MAX17042_BATTERY_H_ | 23 | #ifndef __MAX17042_BATTERY_H_ |
24 | #define __MAX17042_BATTERY_H_ | 24 | #define __MAX17042_BATTERY_H_ |
25 | 25 | ||
26 | #define MAX17042_STATUS_BattAbsent (1 << 3) | ||
27 | #define MAX17042_BATTERY_FULL (100) | ||
28 | #define MAX17042_DEFAULT_SNS_RESISTOR (10000) | ||
29 | |||
30 | enum max17042_register { | ||
31 | MAX17042_STATUS = 0x00, | ||
32 | MAX17042_VALRT_Th = 0x01, | ||
33 | MAX17042_TALRT_Th = 0x02, | ||
34 | MAX17042_SALRT_Th = 0x03, | ||
35 | MAX17042_AtRate = 0x04, | ||
36 | MAX17042_RepCap = 0x05, | ||
37 | MAX17042_RepSOC = 0x06, | ||
38 | MAX17042_Age = 0x07, | ||
39 | MAX17042_TEMP = 0x08, | ||
40 | MAX17042_VCELL = 0x09, | ||
41 | MAX17042_Current = 0x0A, | ||
42 | MAX17042_AvgCurrent = 0x0B, | ||
43 | MAX17042_Qresidual = 0x0C, | ||
44 | MAX17042_SOC = 0x0D, | ||
45 | MAX17042_AvSOC = 0x0E, | ||
46 | MAX17042_RemCap = 0x0F, | ||
47 | MAX17402_FullCAP = 0x10, | ||
48 | MAX17042_TTE = 0x11, | ||
49 | MAX17042_V_empty = 0x12, | ||
50 | |||
51 | MAX17042_RSLOW = 0x14, | ||
52 | |||
53 | MAX17042_AvgTA = 0x16, | ||
54 | MAX17042_Cycles = 0x17, | ||
55 | MAX17042_DesignCap = 0x18, | ||
56 | MAX17042_AvgVCELL = 0x19, | ||
57 | MAX17042_MinMaxTemp = 0x1A, | ||
58 | MAX17042_MinMaxVolt = 0x1B, | ||
59 | MAX17042_MinMaxCurr = 0x1C, | ||
60 | MAX17042_CONFIG = 0x1D, | ||
61 | MAX17042_ICHGTerm = 0x1E, | ||
62 | MAX17042_AvCap = 0x1F, | ||
63 | MAX17042_ManName = 0x20, | ||
64 | MAX17042_DevName = 0x21, | ||
65 | MAX17042_DevChem = 0x22, | ||
66 | |||
67 | MAX17042_TempNom = 0x24, | ||
68 | MAX17042_TempCold = 0x25, | ||
69 | MAX17042_TempHot = 0x26, | ||
70 | MAX17042_AIN = 0x27, | ||
71 | MAX17042_LearnCFG = 0x28, | ||
72 | MAX17042_SHFTCFG = 0x29, | ||
73 | MAX17042_RelaxCFG = 0x2A, | ||
74 | MAX17042_MiscCFG = 0x2B, | ||
75 | MAX17042_TGAIN = 0x2C, | ||
76 | MAx17042_TOFF = 0x2D, | ||
77 | MAX17042_CGAIN = 0x2E, | ||
78 | MAX17042_COFF = 0x2F, | ||
79 | |||
80 | MAX17042_Q_empty = 0x33, | ||
81 | MAX17042_T_empty = 0x34, | ||
82 | |||
83 | MAX17042_RCOMP0 = 0x38, | ||
84 | MAX17042_TempCo = 0x39, | ||
85 | MAX17042_Rx = 0x3A, | ||
86 | MAX17042_T_empty0 = 0x3B, | ||
87 | MAX17042_TaskPeriod = 0x3C, | ||
88 | MAX17042_FSTAT = 0x3D, | ||
89 | |||
90 | MAX17042_SHDNTIMER = 0x3F, | ||
91 | |||
92 | MAX17042_VFRemCap = 0x4A, | ||
93 | |||
94 | MAX17042_QH = 0x4D, | ||
95 | MAX17042_QL = 0x4E, | ||
96 | }; | ||
97 | |||
98 | /* | ||
99 | * used for setting a register to a desired value | ||
100 | * addr : address for a register | ||
101 | * data : setting value for the register | ||
102 | */ | ||
103 | struct max17042_reg_data { | ||
104 | u8 addr; | ||
105 | u16 data; | ||
106 | }; | ||
107 | |||
26 | struct max17042_platform_data { | 108 | struct max17042_platform_data { |
109 | struct max17042_reg_data *init_data; | ||
110 | int num_init_data; /* Number of enties in init_data array */ | ||
27 | bool enable_current_sense; | 111 | bool enable_current_sense; |
112 | |||
113 | /* | ||
114 | * R_sns in micro-ohms. | ||
115 | * default 10000 (if r_sns = 0) as it is the recommended value by | ||
116 | * the datasheet although it can be changed by board designers. | ||
117 | */ | ||
118 | unsigned int r_sns; | ||
28 | }; | 119 | }; |
29 | 120 | ||
30 | #endif /* __MAX17042_BATTERY_H_ */ | 121 | #endif /* __MAX17042_BATTERY_H_ */ |
diff --git a/include/linux/power/max8907c-charger.h b/include/linux/power/max8907c-charger.h new file mode 100644 index 00000000000..2cebad768b0 --- /dev/null +++ b/include/linux/power/max8907c-charger.h | |||
@@ -0,0 +1,64 @@ | |||
1 | /* linux/power/max8907c-charger.h | ||
2 | * | ||
3 | * This program is free software; you can redistribute it and/or modify | ||
4 | * it under the terms of the GNU General Public License version 2 as | ||
5 | * published by the Free Software Foundation. | ||
6 | */ | ||
7 | |||
8 | #ifndef __LINUX_MAX8907C_CHARGER_H | ||
9 | #define __LINUX_MAX8907C_CHARGER_H | ||
10 | |||
11 | /* interrupt */ | ||
12 | #define MAX8907C_VCHG_OVP (1 << 0) | ||
13 | #define MAX8907C_VCHG_F (1 << 1) | ||
14 | #define MAX8907C_VCHG_R (1 << 2) | ||
15 | #define MAX8907C_THM_OK_R (1 << 8) | ||
16 | #define MAX8907C_THM_OK_F (1 << 9) | ||
17 | #define MAX8907C_MBATTLOW_F (1 << 10) | ||
18 | #define MAX8907C_MBATTLOW_R (1 << 11) | ||
19 | #define MAX8907C_CHG_RST (1 << 12) | ||
20 | #define MAX8907C_CHG_DONE (1 << 13) | ||
21 | #define MAX8907C_CHG_TOPOFF (1 << 14) | ||
22 | #define MAX8907C_CHK_TMR_FAULT (1 << 15) | ||
23 | |||
24 | enum max8907c_charger_topoff_threshold { | ||
25 | MAX8907C_TOPOFF_5PERCENT = 0x00, | ||
26 | MAX8907C_TOPOFF_10PERCENT = 0x01, | ||
27 | MAX8907C_TOPOFF_15PERCENT = 0x02, | ||
28 | MAX8907C_TOPOFF_20PERCENT = 0x03, | ||
29 | }; | ||
30 | |||
31 | enum max8907c_charger_restart_hysteresis { | ||
32 | MAX8907C_RESTART_100MV = 0x00, | ||
33 | MAX8907C_RESTART_150MV = 0x01, | ||
34 | MAX8907C_RESTART_200MV = 0x02, | ||
35 | MAX8907C_RESTART_FLOAT = 0x03, | ||
36 | }; | ||
37 | |||
38 | enum max8907c_fast_charging_current { | ||
39 | MAX8907C_FASTCHARGE_90MA = 0x00, | ||
40 | MAX8907C_FASTCHARGE_300MA = 0x01, | ||
41 | MAX8907C_FASTCHARGE_460MA = 0x02, | ||
42 | MAX8907C_FASTCHARGE_600MA = 0x03, | ||
43 | MAX8907C_FASTCHARGE_700MA = 0x04, | ||
44 | MAX8907C_FASTCHARGE_800MA = 0x05, | ||
45 | MAX8907C_FASTCHARGE_900MA = 0x06, | ||
46 | MAX8907C_FASTCHARGE_1000MA = 0x07, | ||
47 | }; | ||
48 | |||
49 | enum max8907c_fast_charger_time { | ||
50 | MAX8907C_FCHARGE_TM_8H = 0x00, | ||
51 | MAX8907C_FCHARGE_TM_12H = 0x01, | ||
52 | MAX8907C_FCHARGE_TM_16H = 0x02, | ||
53 | MAX8907C_FCHARGE_TM_OFF = 0x03, | ||
54 | }; | ||
55 | |||
56 | struct max8907c_charger_pdata { | ||
57 | int irq; | ||
58 | enum max8907c_charger_topoff_threshold topoff_threshold; | ||
59 | enum max8907c_charger_restart_hysteresis restart_hysteresis; | ||
60 | enum max8907c_charger_restart_hysteresis fast_charging_current; | ||
61 | enum max8907c_fast_charger_time fast_charger_time; | ||
62 | }; | ||
63 | |||
64 | #endif | ||