1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * LP8727 Micro/Mini USB IC with integrated charger
4  *
5  *			Copyright (C) 2011 Texas Instruments
6  *			Copyright (C) 2011 National Semiconductor
7  */
8 
9 #ifndef _LP8727_H
10 #define _LP8727_H
11 
12 enum lp8727_eoc_level {
13 	LP8727_EOC_5P,
14 	LP8727_EOC_10P,
15 	LP8727_EOC_16P,
16 	LP8727_EOC_20P,
17 	LP8727_EOC_25P,
18 	LP8727_EOC_33P,
19 	LP8727_EOC_50P,
20 };
21 
22 enum lp8727_ichg {
23 	LP8727_ICHG_90mA,
24 	LP8727_ICHG_100mA,
25 	LP8727_ICHG_400mA,
26 	LP8727_ICHG_450mA,
27 	LP8727_ICHG_500mA,
28 	LP8727_ICHG_600mA,
29 	LP8727_ICHG_700mA,
30 	LP8727_ICHG_800mA,
31 	LP8727_ICHG_900mA,
32 	LP8727_ICHG_1000mA,
33 };
34 
35 /**
36  * struct lp8727_chg_param
37  * @eoc_level : end of charge level setting
38  * @ichg      : charging current
39  */
40 struct lp8727_chg_param {
41 	enum lp8727_eoc_level eoc_level;
42 	enum lp8727_ichg ichg;
43 };
44 
45 /**
46  * struct lp8727_platform_data
47  * @get_batt_present  : check battery status - exists or not
48  * @get_batt_level    : get battery voltage (mV)
49  * @get_batt_capacity : get battery capacity (%)
50  * @get_batt_temp     : get battery temperature
51  * @ac                : charging parameters for AC type charger
52  * @usb               : charging parameters for USB type charger
53  * @debounce_msec     : interrupt debounce time
54  */
55 struct lp8727_platform_data {
56 	u8 (*get_batt_present)(void);
57 	u16 (*get_batt_level)(void);
58 	u8 (*get_batt_capacity)(void);
59 	u8 (*get_batt_temp)(void);
60 	struct lp8727_chg_param *ac;
61 	struct lp8727_chg_param *usb;
62 	unsigned int debounce_msec;
63 };
64 
65 #endif
66