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__ */ 63