lp3972
static u8 lp3972_reg_read(struct lp3972 *lp3972, u8 reg)
mutex_lock(&lp3972->io_lock);
lp3972_i2c_read(lp3972->i2c, reg, 1, &val);
dev_dbg(lp3972->dev, "reg read 0x%02x -> 0x%02x\n", (int)reg,
mutex_unlock(&lp3972->io_lock);
static int lp3972_set_bits(struct lp3972 *lp3972, u8 reg, u16 mask, u16 val)
mutex_lock(&lp3972->io_lock);
ret = lp3972_i2c_read(lp3972->i2c, reg, 1, &tmp);
ret = lp3972_i2c_write(lp3972->i2c, reg, 1, &tmp);
dev_dbg(lp3972->dev, "reg write 0x%02x -> 0x%02x\n", (int)reg,
mutex_unlock(&lp3972->io_lock);
struct lp3972 *lp3972 = rdev_get_drvdata(dev);
val = lp3972_reg_read(lp3972, LP3972_LDO_OUTPUT_ENABLE_REG(ldo));
struct lp3972 *lp3972 = rdev_get_drvdata(dev);
return lp3972_set_bits(lp3972, LP3972_LDO_OUTPUT_ENABLE_REG(ldo),
struct lp3972 *lp3972 = rdev_get_drvdata(dev);
return lp3972_set_bits(lp3972, LP3972_LDO_OUTPUT_ENABLE_REG(ldo),
struct lp3972 *lp3972 = rdev_get_drvdata(dev);
reg = lp3972_reg_read(lp3972, LP3972_LDO_VOL_CONTR_REG(ldo));
struct lp3972 *lp3972 = rdev_get_drvdata(dev);
ret = lp3972_set_bits(lp3972, LP3972_LDO_VOL_CONTR_REG(ldo),
ret = lp3972_set_bits(lp3972, LP3972_VOL_CHANGE_REG,
ret = lp3972_set_bits(lp3972, LP3972_VOL_CHANGE_REG,
struct lp3972 *lp3972 = rdev_get_drvdata(dev);
val = lp3972_reg_read(lp3972, LP3972_BUCK_VOL_ENABLE_REG(buck));
struct lp3972 *lp3972 = rdev_get_drvdata(dev);
val = lp3972_set_bits(lp3972, LP3972_BUCK_VOL_ENABLE_REG(buck),
struct lp3972 *lp3972 = rdev_get_drvdata(dev);
val = lp3972_set_bits(lp3972, LP3972_BUCK_VOL_ENABLE_REG(buck),
struct lp3972 *lp3972 = rdev_get_drvdata(dev);
reg = lp3972_reg_read(lp3972, LP3972_BUCK_VOL1_REG(buck));
struct lp3972 *lp3972 = rdev_get_drvdata(dev);
ret = lp3972_set_bits(lp3972, LP3972_BUCK_VOL1_REG(buck),
ret = lp3972_set_bits(lp3972, LP3972_VOL_CHANGE_REG,
return lp3972_set_bits(lp3972, LP3972_VOL_CHANGE_REG,
static int setup_regulators(struct lp3972 *lp3972,
config.dev = lp3972->dev;
config.driver_data = lp3972;
rdev = devm_regulator_register(lp3972->dev,
dev_err(lp3972->dev, "regulator init failed: %d\n",
struct lp3972 *lp3972;
lp3972 = devm_kzalloc(&i2c->dev, sizeof(struct lp3972), GFP_KERNEL);
if (!lp3972)
lp3972->i2c = i2c;
lp3972->dev = &i2c->dev;
mutex_init(&lp3972->io_lock);
ret = setup_regulators(lp3972, pdata);
i2c_set_clientdata(i2c, lp3972);