• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/drivers/regulator/

Lines Matching defs:lp3971

20 #include <linux/regulator/lp3971.h>
23 struct lp3971 {
31 static u8 lp3971_reg_read(struct lp3971 *lp3971, u8 reg);
32 static int lp3971_set_bits(struct lp3971 *lp3971, u8 reg, u16 mask, u16 val);
131 struct lp3971 *lp3971 = rdev_get_drvdata(dev);
136 val = lp3971_reg_read(lp3971, LP3971_LDO_ENABLE_REG);
142 struct lp3971 *lp3971 = rdev_get_drvdata(dev);
146 return lp3971_set_bits(lp3971, LP3971_LDO_ENABLE_REG, mask, mask);
151 struct lp3971 *lp3971 = rdev_get_drvdata(dev);
155 return lp3971_set_bits(lp3971, LP3971_LDO_ENABLE_REG, mask, 0);
160 struct lp3971 *lp3971 = rdev_get_drvdata(dev);
164 reg = lp3971_reg_read(lp3971, LP3971_LDO_VOL_CONTR_REG(ldo));
173 struct lp3971 *lp3971 = rdev_get_drvdata(dev);
190 return lp3971_set_bits(lp3971, LP3971_LDO_VOL_CONTR_REG(ldo),
211 struct lp3971 *lp3971 = rdev_get_drvdata(dev);
216 val = lp3971_reg_read(lp3971, LP3971_BUCK_VOL_ENABLE_REG);
222 struct lp3971 *lp3971 = rdev_get_drvdata(dev);
226 return lp3971_set_bits(lp3971, LP3971_BUCK_VOL_ENABLE_REG, mask, mask);
231 struct lp3971 *lp3971 = rdev_get_drvdata(dev);
235 return lp3971_set_bits(lp3971, LP3971_BUCK_VOL_ENABLE_REG, mask, 0);
240 struct lp3971 *lp3971 = rdev_get_drvdata(dev);
245 reg = lp3971_reg_read(lp3971, LP3971_BUCK_TARGET_VOL1_REG(buck));
261 struct lp3971 *lp3971 = rdev_get_drvdata(dev);
280 ret = lp3971_set_bits(lp3971, LP3971_BUCK_TARGET_VOL1_REG(buck),
285 ret = lp3971_set_bits(lp3971, LP3971_BUCK_VOL_CHANGE_REG,
291 return lp3971_set_bits(lp3971, LP3971_BUCK_VOL_CHANGE_REG,
395 static u8 lp3971_reg_read(struct lp3971 *lp3971, u8 reg)
399 mutex_lock(&lp3971->io_lock);
401 lp3971_i2c_read(lp3971->i2c, reg, 1, &val);
403 dev_dbg(lp3971->dev, "reg read 0x%02x -> 0x%02x\n", (int)reg,
406 mutex_unlock(&lp3971->io_lock);
411 static int lp3971_set_bits(struct lp3971 *lp3971, u8 reg, u16 mask, u16 val)
416 mutex_lock(&lp3971->io_lock);
418 ret = lp3971_i2c_read(lp3971->i2c, reg, 1, &tmp);
421 ret = lp3971_i2c_write(lp3971->i2c, reg, 1, &tmp);
422 dev_dbg(lp3971->dev, "reg write 0x%02x -> 0x%02x\n", (int)reg,
425 mutex_unlock(&lp3971->io_lock);
430 static int __devinit setup_regulators(struct lp3971 *lp3971,
435 lp3971->num_regulators = pdata->num_regulators;
436 lp3971->rdev = kcalloc(pdata->num_regulators,
438 if (!lp3971->rdev) {
446 lp3971->rdev[i] = regulator_register(&regulators[reg->id],
447 lp3971->dev, reg->initdata, lp3971);
449 if (IS_ERR(lp3971->rdev[i])) {
450 err = PTR_ERR(lp3971->rdev[i]);
451 dev_err(lp3971->dev, "regulator init failed: %d\n",
461 regulator_unregister(lp3971->rdev[i]);
462 kfree(lp3971->rdev);
463 lp3971->rdev = NULL;
471 struct lp3971 *lp3971;
481 lp3971 = kzalloc(sizeof(struct lp3971), GFP_KERNEL);
482 if (lp3971 == NULL)
485 lp3971->i2c = i2c;
486 lp3971->dev = &i2c->dev;
488 mutex_init(&lp3971->io_lock);
499 ret = setup_regulators(lp3971, pdata);
503 i2c_set_clientdata(i2c, lp3971);
507 kfree(lp3971);
513 struct lp3971 *lp3971 = i2c_get_clientdata(i2c);
516 for (i = 0; i < lp3971->num_regulators; i++)
517 regulator_unregister(lp3971->rdev[i]);
519 kfree(lp3971->rdev);
520 kfree(lp3971);
526 { "lp3971", 0 },