blob: 036bf888ded17a1e06725c3f731a32c9bf73f0d1 [file] [log] [blame]
Xiaozhe Shi77a5b052012-12-14 16:37:45 -08001/* Copyright (c) 2011-2013, The Linux Foundation. All rights reserved.
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 and
5 * only version 2 as published by the Free Software Foundation.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 */
12
13#include <linux/mfd/pm8xxx/batterydata-lib.h>
14
15static struct single_row_lut fcc_temp = {
16 .x = {-20, 0, 25, 40, 65},
17 .y = {1492, 1492, 1493, 1483, 1502},
18 .cols = 5
19};
20
21static struct pc_temp_ocv_lut pc_temp_ocv = {
22 .rows = 29,
23 .cols = 5,
24 .temp = {-20, 0, 25, 40, 65},
25 .percent = {100, 95, 90, 85, 80, 75, 70, 65, 60, 55, 50, 45, 40,
26 35, 30, 25, 20, 15, 10, 9, 8, 7, 6, 5,
27 4, 3, 2, 1, 0},
28 .ocv = {
29 {4173, 4167, 4163, 4156, 4154},
30 {4104, 4107, 4108, 4102, 4104},
31 {4057, 4072, 4069, 4061, 4060},
32 {3973, 4009, 4019, 4016, 4020},
33 {3932, 3959, 3981, 3982, 3983},
34 {3899, 3928, 3954, 3950, 3950},
35 {3868, 3895, 3925, 3921, 3920},
36 {3837, 3866, 3898, 3894, 3892},
37 {3812, 3841, 3853, 3856, 3862},
38 {3794, 3818, 3825, 3823, 3822},
39 {3780, 3799, 3804, 3804, 3803},
40 {3768, 3787, 3790, 3788, 3788},
41 {3757, 3779, 3778, 3775, 3776},
42 {3747, 3772, 3771, 3766, 3765},
43 {3736, 3763, 3766, 3760, 3746},
44 {3725, 3749, 3756, 3747, 3729},
45 {3714, 3718, 3734, 3724, 3706},
46 {3701, 3703, 3696, 3689, 3668},
47 {3675, 3695, 3682, 3675, 3662},
48 {3670, 3691, 3680, 3673, 3661},
49 {3661, 3686, 3679, 3672, 3656},
50 {3649, 3680, 3676, 3669, 3641},
51 {3633, 3669, 3667, 3655, 3606},
52 {3610, 3647, 3640, 3620, 3560},
53 {3580, 3607, 3596, 3572, 3501},
54 {3533, 3548, 3537, 3512, 3425},
55 {3457, 3468, 3459, 3429, 3324},
56 {3328, 3348, 3340, 3297, 3172},
57 {3000, 3000, 3000, 3000, 3000}
58 }
59};
60
61static struct sf_lut rbatt_sf = {
62 .rows = 29,
63 .cols = 5,
64 /* row_entries are temperature */
65 .row_entries = {-20, 0, 20, 40, 65},
66 .percent = {100, 95, 90, 85, 80, 75, 70, 65, 60, 55, 50, 45, 40,
67 35, 30, 25, 20, 15, 10, 9, 8, 7, 6, 5,
68 4, 3, 2, 1, 0},
69 .sf = {
70 {357, 187, 100, 91, 91},
71 {400, 208, 105, 94, 94},
72 {390, 204, 106, 95, 96},
73 {391, 201, 108, 98, 98},
74 {391, 202, 110, 98, 100},
75 {390, 200, 110, 99, 102},
76 {389, 200, 110, 99, 102},
77 {393, 202, 101, 93, 100},
78 {407, 205, 99, 89, 94},
79 {428, 208, 100, 91, 96},
80 {455, 212, 102, 92, 98},
81 {495, 220, 104, 93, 101},
82 {561, 232, 107, 95, 102},
83 {634, 245, 112, 98, 98},
84 {714, 258, 114, 98, 98},
85 {791, 266, 114, 97, 100},
86 {871, 289, 108, 95, 97},
87 {973, 340, 124, 108, 105},
88 {489, 241, 109, 96, 99},
89 {511, 246, 110, 96, 99},
90 {534, 252, 111, 95, 98},
91 {579, 263, 112, 96, 96},
92 {636, 276, 111, 95, 97},
93 {730, 294, 109, 96, 99},
94 {868, 328, 112, 98, 104},
95 {1089, 374, 119, 101, 115},
96 {1559, 457, 128, 105, 213},
97 {12886, 1026, 637, 422, 3269},
98 {170899, 127211, 98968, 88907, 77102},
99 }
100};
101
102struct bms_battery_data oem_batt_data = {
103 .fcc = 1500,
104 .fcc_temp_lut = &fcc_temp,
105 .pc_temp_ocv_lut = &pc_temp_ocv,
106 .rbatt_sf_lut = &rbatt_sf,
107 .default_rbatt_mohm = 236,
108};