• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/regulator/

Lines Matching refs:tps

131 static inline int tps_65023_read(struct tps_pmic *tps, u8 reg)
133 return i2c_smbus_read_byte_data(tps->client, reg);
136 static inline int tps_65023_write(struct tps_pmic *tps, u8 reg, u8 val)
138 return i2c_smbus_write_byte_data(tps->client, reg, val);
141 static int tps_65023_set_bits(struct tps_pmic *tps, u8 reg, u8 mask)
145 mutex_lock(&tps->io_lock);
147 data = tps_65023_read(tps, reg);
149 dev_err(&tps->client->dev, "Read from reg 0x%x failed\n", reg);
155 err = tps_65023_write(tps, reg, data);
157 dev_err(&tps->client->dev, "Write for reg 0x%x failed\n", reg);
160 mutex_unlock(&tps->io_lock);
164 static int tps_65023_clear_bits(struct tps_pmic *tps, u8 reg, u8 mask)
168 mutex_lock(&tps->io_lock);
170 data = tps_65023_read(tps, reg);
172 dev_err(&tps->client->dev, "Read from reg 0x%x failed\n", reg);
179 err = tps_65023_write(tps, reg, data);
181 dev_err(&tps->client->dev, "Write for reg 0x%x failed\n", reg);
184 mutex_unlock(&tps->io_lock);
189 static int tps_65023_reg_read(struct tps_pmic *tps, u8 reg)
193 mutex_lock(&tps->io_lock);
195 data = tps_65023_read(tps, reg);
197 dev_err(&tps->client->dev, "Read from reg 0x%x failed\n", reg);
199 mutex_unlock(&tps->io_lock);
203 static int tps_65023_reg_write(struct tps_pmic *tps, u8 reg, u8 val)
207 mutex_lock(&tps->io_lock);
209 err = tps_65023_write(tps, reg, val);
211 dev_err(&tps->client->dev, "Write for reg 0x%x failed\n", reg);
213 mutex_unlock(&tps->io_lock);
219 struct tps_pmic *tps = rdev_get_drvdata(dev);
227 data = tps_65023_reg_read(tps, TPS65023_REG_REG_CTRL);
237 struct tps_pmic *tps = rdev_get_drvdata(dev);
245 data = tps_65023_reg_read(tps, TPS65023_REG_REG_CTRL);
255 struct tps_pmic *tps = rdev_get_drvdata(dev);
263 return tps_65023_set_bits(tps, TPS65023_REG_REG_CTRL, 1 << shift);
268 struct tps_pmic *tps = rdev_get_drvdata(dev);
276 return tps_65023_clear_bits(tps, TPS65023_REG_REG_CTRL, 1 << shift);
281 struct tps_pmic *tps = rdev_get_drvdata(dev);
289 return tps_65023_set_bits(tps, TPS65023_REG_REG_CTRL, 1 << shift);
294 struct tps_pmic *tps = rdev_get_drvdata(dev);
302 return tps_65023_clear_bits(tps, TPS65023_REG_REG_CTRL, 1 << shift);
307 struct tps_pmic *tps = rdev_get_drvdata(dev);
314 data = tps_65023_reg_read(tps, TPS65023_REG_DEF_CORE);
317 data &= (tps->info[dcdc]->table_len - 1);
318 return tps->info[dcdc]->table[data] * 1000;
320 return tps->info[dcdc]->min_uV;
326 struct tps_pmic *tps = rdev_get_drvdata(dev);
333 if (min_uV < tps->info[dcdc]->min_uV
334 || min_uV > tps->info[dcdc]->max_uV)
336 if (max_uV < tps->info[dcdc]->min_uV
337 || max_uV > tps->info[dcdc]->max_uV)
340 for (vsel = 0; vsel < tps->info[dcdc]->table_len; vsel++) {
341 int mV = tps->info[dcdc]->table[vsel];
350 if (vsel == tps->info[dcdc]->table_len)
353 return tps_65023_reg_write(tps, TPS65023_REG_DEF_CORE, vsel);
358 struct tps_pmic *tps = rdev_get_drvdata(dev);
364 data = tps_65023_reg_read(tps, TPS65023_REG_LDO_CTRL);
369 data &= (tps->info[ldo]->table_len - 1);
370 return tps->info[ldo]->table[data] * 1000;
376 struct tps_pmic *tps = rdev_get_drvdata(dev);
382 if (min_uV < tps->info[ldo]->min_uV || min_uV > tps->info[ldo]->max_uV)
384 if (max_uV < tps->info[ldo]->min_uV || max_uV > tps->info[ldo]->max_uV)
387 for (vsel = 0; vsel < tps->info[ldo]->table_len; vsel++) {
388 int mV = tps->info[ldo]->table[vsel];
396 if (vsel == tps->info[ldo]->table_len)
399 data = tps_65023_reg_read(tps, TPS65023_REG_LDO_CTRL);
405 return tps_65023_reg_write(tps, TPS65023_REG_LDO_CTRL, data);
411 struct tps_pmic *tps = rdev_get_drvdata(dev);
418 if (selector >= tps->info[dcdc]->table_len)
421 return tps->info[dcdc]->table[selector] * 1000;
423 return tps->info[dcdc]->min_uV;
429 struct tps_pmic *tps = rdev_get_drvdata(dev);
435 if (selector >= tps->info[ldo]->table_len)
438 return tps->info[ldo]->table[selector] * 1000;
468 struct tps_pmic *tps;
483 tps = kzalloc(sizeof(*tps), GFP_KERNEL);
484 if (!tps)
487 mutex_init(&tps->io_lock);
490 tps->client = client;
494 tps->info[i] = info;
496 tps->desc[i].name = info->name;
497 tps->desc[i].id = desc_id++;
498 tps->desc[i].n_voltages = num_voltages[i];
499 tps->desc[i].ops = (i > TPS65023_DCDC_3 ?
501 tps->desc[i].type = REGULATOR_VOLTAGE;
502 tps->desc[i].owner = THIS_MODULE;
505 rdev = regulator_register(&tps->desc[i], &client->dev,
506 init_data, tps);
515 tps->rdev[i] = rdev;
518 i2c_set_clientdata(client, tps);
524 regulator_unregister(tps->rdev[i]);
526 kfree(tps);
538 struct tps_pmic *tps = i2c_get_clientdata(client);
542 regulator_unregister(tps->rdev[i]);
544 kfree(tps);