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 */ 21enum rt5033_regulators { 22 RT5033_BUCK = 0, 23 RT5033_LDO, 24 RT5033_SAFE_LDO, 25 26 RT5033_REGULATOR_NUM, 27}; 28 29struct 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 38struct 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 */ 46struct 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 54struct 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