power: smb349: Enable OTG support
[linux-2.6.git] / include / linux / smb349-charger.h
1 /*
2  * include/linux/smb349-charger.h
3  *
4  * Battery charger driver interface for Summit SMB349
5  *
6  * Copyright (C) 2012 NVIDIA Corporation
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation;
11  *
12  * This program is distributed in the hope that it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
15  * more details.
16  *
17  * You should have received a copy of the GNU General Public License along
18  * with this program; if not, write to the Free Software Foundation, Inc.,
19  * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
20  *
21  */
22
23 #ifndef __LINUX_SMB349_CHARGER_H
24 #define __LINUX_SMB349_CHARGER_H
25
26 #include <linux/regulator/machine.h>
27
28 enum charging_states {
29         idle,
30         progress,
31         completed,
32         stopped,
33 };
34
35 enum charger_type {
36         AC,
37         USB,
38 };
39
40 typedef void (*charging_callback_t)(enum charging_states state,
41 enum charger_type chrg_type, void *args);
42
43 struct smb349_charger {
44         struct i2c_client       *client;
45         struct device   *dev;
46         void    *charger_cb_data;
47         enum charging_states state;
48         enum charger_type chrg_type;
49         charging_callback_t     charger_cb;
50 };
51
52 int smb349_battery_online(void);
53 typedef void (*callback_t)(enum usb_otg_state otg_state, void *args);
54 /*
55  * Register callback function for the client.
56  * Used by fuel-gauge driver to get battery charging properties.
57  */
58 extern int register_callback(charging_callback_t cb, void *args);
59 extern int register_otg_callback(callback_t cb, void *args);
60
61 #endif /*__LINUX_SMB349_CHARGER_H */