#include <linux/regulator/of_regulator.h>
struct bq257xx_reg_data {
- struct bq257xx_device *bq;
struct regulator_dev *bq257xx_reg;
struct gpio_desc *otg_en_gpio;
struct regulator_desc desc;
static int bq25703_vbus_get_cur_limit(struct regulator_dev *rdev)
{
- struct bq257xx_reg_data *pdata = rdev_get_drvdata(rdev);
+ struct regmap *regmap = rdev_get_regmap(rdev);
int ret;
unsigned int reg;
- ret = regmap_read(pdata->bq->regmap, BQ25703_OTG_CURRENT, ®);
+ ret = regmap_read(regmap, BQ25703_OTG_CURRENT, ®);
if (ret)
return ret;
return FIELD_GET(BQ25703_OTG_CUR_MASK, reg) * BQ25703_OTG_CUR_STEP_UA;
static int bq25703_vbus_set_cur_limit(struct regulator_dev *rdev,
int min_uA, int max_uA)
{
- struct bq257xx_reg_data *pdata = rdev_get_drvdata(rdev);
+ struct regmap *regmap = rdev_get_regmap(rdev);
unsigned int reg;
if ((min_uA > BQ25703_OTG_CUR_MAX_UA) || (max_uA < 0))
if ((reg * BQ25703_OTG_CUR_STEP_UA) < min_uA)
return -EINVAL;
- return regmap_write(pdata->bq->regmap, BQ25703_OTG_CURRENT,
+ return regmap_write(regmap, BQ25703_OTG_CURRENT,
FIELD_PREP(BQ25703_OTG_CUR_MASK, reg));
}
static int bq257xx_regulator_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
- struct bq257xx_device *bq = dev_get_drvdata(pdev->dev.parent);
struct bq257xx_reg_data *pdata;
struct device_node *np = dev->of_node;
struct regulator_config cfg = {};
if (!pdata)
return -ENOMEM;
- pdata->bq = bq;
pdata->desc = bq25703_vbus_desc;
platform_set_drvdata(pdev, pdata);