1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * MFD core driver for the RT5033 4 * 5 * Copyright (C) 2014 Samsung Electronics 6 * Author: Beomho Seo <beomho.seo@samsung.com> 7 */ 8 9 #ifndef __RT5033_H__ 10 #define __RT5033_H__ 11 12 #include <linux/regulator/consumer.h> 13 #include <linux/i2c.h> 14 #include <linux/regmap.h> 15 #include <linux/power_supply.h> 16 17 /* RT5033 regulator IDs */ 18 enum rt5033_regulators { 19 RT5033_BUCK = 0, 20 RT5033_LDO, 21 RT5033_SAFE_LDO, 22 23 RT5033_REGULATOR_NUM, 24 }; 25 26 struct rt5033_dev { 27 struct device *dev; 28 29 struct regmap *regmap; 30 struct regmap_irq_chip_data *irq_data; 31 int irq; 32 bool wakeup; 33 }; 34 35 struct rt5033_battery { 36 struct i2c_client *client; 37 struct rt5033_dev *rt5033; 38 struct regmap *regmap; 39 struct power_supply *psy; 40 }; 41 42 /* RT5033 charger platform data */ 43 struct rt5033_charger_data { 44 unsigned int pre_uamp; 45 unsigned int pre_uvolt; 46 unsigned int const_uvolt; 47 unsigned int eoc_uamp; 48 unsigned int fast_uamp; 49 }; 50 51 struct rt5033_charger { 52 struct device *dev; 53 struct rt5033_dev *rt5033; 54 struct power_supply psy; 55 struct rt5033_charger_data *chg; 56 }; 57 58 #endif /* __RT5033_H__ */ 59