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