Merge "Add the opnfv kernel config file"
[kvmfornfv.git] / kernel / include / linux / mfd / rt5033.h
1 /*
2  * MFD core driver for the RT5033
3  *
4  * Copyright (C) 2014 Samsung Electronics
5  * Author: Beomho Seo <beomho.seo@samsung.com>
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License version 2 as
9  * published bythe Free Software Foundation.
10  */
11
12 #ifndef __RT5033_H__
13 #define __RT5033_H__
14
15 #include <linux/regulator/consumer.h>
16 #include <linux/i2c.h>
17 #include <linux/regmap.h>
18 #include <linux/power_supply.h>
19
20 /* RT5033 regulator IDs */
21 enum rt5033_regulators {
22         RT5033_BUCK = 0,
23         RT5033_LDO,
24         RT5033_SAFE_LDO,
25
26         RT5033_REGULATOR_NUM,
27 };
28
29 struct rt5033_dev {
30         struct device *dev;
31
32         struct regmap *regmap;
33         struct regmap_irq_chip_data *irq_data;
34         int irq;
35         bool wakeup;
36 };
37
38 struct rt5033_battery {
39         struct i2c_client       *client;
40         struct rt5033_dev       *rt5033;
41         struct regmap           *regmap;
42         struct power_supply     *psy;
43 };
44
45 /* RT5033 charger platform data */
46 struct rt5033_charger_data {
47         unsigned int pre_uamp;
48         unsigned int pre_uvolt;
49         unsigned int const_uvolt;
50         unsigned int eoc_uamp;
51         unsigned int fast_uamp;
52 };
53
54 struct rt5033_charger {
55         struct device           *dev;
56         struct rt5033_dev       *rt5033;
57         struct power_supply     psy;
58
59         struct rt5033_charger_data      *chg;
60 };
61
62 #endif /* __RT5033_H__ */