Lines Matching defs:lp3971

17 #include <linux/regulator/lp3971.h>
20 struct lp3971 {
26 static u8 lp3971_reg_read(struct lp3971 *lp3971, u8 reg);
27 static int lp3971_set_bits(struct lp3971 *lp3971, u8 reg, u16 mask, u16 val);
108 struct lp3971 *lp3971 = rdev_get_drvdata(dev);
113 val = lp3971_reg_read(lp3971, LP3971_LDO_ENABLE_REG);
119 struct lp3971 *lp3971 = rdev_get_drvdata(dev);
123 return lp3971_set_bits(lp3971, LP3971_LDO_ENABLE_REG, mask, mask);
128 struct lp3971 *lp3971 = rdev_get_drvdata(dev);
132 return lp3971_set_bits(lp3971, LP3971_LDO_ENABLE_REG, mask, 0);
137 struct lp3971 *lp3971 = rdev_get_drvdata(dev);
141 reg = lp3971_reg_read(lp3971, LP3971_LDO_VOL_CONTR_REG(ldo));
150 struct lp3971 *lp3971 = rdev_get_drvdata(dev);
153 return lp3971_set_bits(lp3971, LP3971_LDO_VOL_CONTR_REG(ldo),
170 struct lp3971 *lp3971 = rdev_get_drvdata(dev);
175 val = lp3971_reg_read(lp3971, LP3971_BUCK_VOL_ENABLE_REG);
181 struct lp3971 *lp3971 = rdev_get_drvdata(dev);
185 return lp3971_set_bits(lp3971, LP3971_BUCK_VOL_ENABLE_REG, mask, mask);
190 struct lp3971 *lp3971 = rdev_get_drvdata(dev);
194 return lp3971_set_bits(lp3971, LP3971_BUCK_VOL_ENABLE_REG, mask, 0);
199 struct lp3971 *lp3971 = rdev_get_drvdata(dev);
203 reg = lp3971_reg_read(lp3971, LP3971_BUCK_TARGET_VOL1_REG(buck));
212 struct lp3971 *lp3971 = rdev_get_drvdata(dev);
216 ret = lp3971_set_bits(lp3971, LP3971_BUCK_TARGET_VOL1_REG(buck),
221 ret = lp3971_set_bits(lp3971, LP3971_BUCK_VOL_CHANGE_REG,
227 return lp3971_set_bits(lp3971, LP3971_BUCK_VOL_CHANGE_REG,
340 static u8 lp3971_reg_read(struct lp3971 *lp3971, u8 reg)
344 mutex_lock(&lp3971->io_lock);
346 lp3971_i2c_read(lp3971->i2c, reg, 1, &val);
348 dev_dbg(lp3971->dev, "reg read 0x%02x -> 0x%02x\n", (int)reg,
351 mutex_unlock(&lp3971->io_lock);
356 static int lp3971_set_bits(struct lp3971 *lp3971, u8 reg, u16 mask, u16 val)
361 mutex_lock(&lp3971->io_lock);
363 ret = lp3971_i2c_read(lp3971->i2c, reg, 1, &tmp);
366 ret = lp3971_i2c_write(lp3971->i2c, reg, 1, &tmp);
367 dev_dbg(lp3971->dev, "reg write 0x%02x -> 0x%02x\n", (int)reg,
370 mutex_unlock(&lp3971->io_lock);
375 static int setup_regulators(struct lp3971 *lp3971,
386 config.dev = lp3971->dev;
388 config.driver_data = lp3971;
390 rdev = devm_regulator_register(lp3971->dev,
394 dev_err(lp3971->dev, "regulator init failed: %d\n",
405 struct lp3971 *lp3971;
415 lp3971 = devm_kzalloc(&i2c->dev, sizeof(struct lp3971), GFP_KERNEL);
416 if (lp3971 == NULL)
419 lp3971->i2c = i2c;
420 lp3971->dev = &i2c->dev;
422 mutex_init(&lp3971->io_lock);
433 ret = setup_regulators(lp3971, pdata);
437 i2c_set_clientdata(i2c, lp3971);
442 { "lp3971", 0 },