1 /*
2  * Copyright (C) ST-Ericsson SA 2012
3  * Author: Johan Gardsmark <johan.gardsmark@stericsson.com> for ST-Ericsson.
4  * License terms:  GNU General Public License (GPL), version 2
5  */
6 
7 #ifndef _UX500_CHARGALG_H
8 #define _UX500_CHARGALG_H
9 
10 #include <linux/power_supply.h>
11 
12 #define psy_to_ux500_charger(x) container_of((x), \
13 		struct ux500_charger, psy)
14 
15 /* Forward declaration */
16 struct ux500_charger;
17 
18 struct ux500_charger_ops {
19 	int (*enable) (struct ux500_charger *, int, int, int);
20 	int (*kick_wd) (struct ux500_charger *);
21 	int (*update_curr) (struct ux500_charger *, int);
22 };
23 
24 /**
25  * struct ux500_charger - power supply ux500 charger sub class
26  * @psy			power supply base class
27  * @ops			ux500 charger operations
28  * @max_out_volt	maximum output charger voltage in mV
29  * @max_out_curr	maximum output charger current in mA
30  */
31 struct ux500_charger {
32 	struct power_supply psy;
33 	struct ux500_charger_ops ops;
34 	int max_out_volt;
35 	int max_out_curr;
36 };
37 
38 #endif
39