Lines Matching refs:tps

62 /* tps 62360 chip information */
95 static bool find_voltage_set_register(struct tps62360_chip *tps,
100 int new_vset_reg = tps->lru_index[3];
104 if (tps->curr_vset_vsel[tps->lru_index[i]] == req_vsel) {
105 new_vset_reg = tps->lru_index[i];
114 tps->lru_index[i] = tps->lru_index[i - 1];
116 tps->lru_index[0] = new_vset_reg;
123 struct tps62360_chip *tps = rdev_get_drvdata(dev);
128 ret = regmap_read(tps->regmap, REG_VSET0 + tps->curr_vset_id, &data);
130 dev_err(tps->dev, "%s(): register %d read failed with err %d\n",
131 __func__, REG_VSET0 + tps->curr_vset_id, ret);
134 vsel = (int)data & tps->voltage_reg_mask;
141 struct tps62360_chip *tps = rdev_get_drvdata(dev);
144 int new_vset_id = tps->curr_vset_id;
150 if (tps->valid_gpios)
151 found = find_voltage_set_register(tps, selector, &new_vset_id);
154 ret = regmap_update_bits(tps->regmap, REG_VSET0 + new_vset_id,
155 tps->voltage_reg_mask, selector);
157 dev_err(tps->dev,
162 tps->curr_vset_id = new_vset_id;
163 tps->curr_vset_vsel[new_vset_id] = selector;
167 if (tps->valid_gpios) {
168 gpio_set_value_cansleep(tps->vsel0_gpio, new_vset_id & 0x1);
169 gpio_set_value_cansleep(tps->vsel1_gpio,
177 struct tps62360_chip *tps = rdev_get_drvdata(rdev);
196 if (!tps->valid_gpios) {
197 ret = regmap_update_bits(tps->regmap,
198 REG_VSET0 + tps->curr_vset_id, FORCE_PWM_ENABLE, val);
200 dev_err(tps->dev,
202 __func__, REG_VSET0 + tps->curr_vset_id, ret);
208 ret = regmap_update_bits(tps->regmap,
211 dev_err(tps->dev,
222 struct tps62360_chip *tps = rdev_get_drvdata(rdev);
226 ret = regmap_read(tps->regmap, REG_VSET0 + tps->curr_vset_id, &data);
228 dev_err(tps->dev, "%s(): register %d read failed with err %d\n",
229 __func__, REG_VSET0 + tps->curr_vset_id, ret);
246 static int tps62360_init_dcdc(struct tps62360_chip *tps,
253 if (tps->en_internal_pulldn)
254 ret = regmap_write(tps->regmap, REG_CONTROL, 0xE0);
256 ret = regmap_write(tps->regmap, REG_CONTROL, 0x0);
258 dev_err(tps->dev,
265 ret = regmap_update_bits(tps->regmap, REG_RAMPCTRL, BIT(2), 0);
267 dev_err(tps->dev,
274 ret = regmap_read(tps->regmap, REG_RAMPCTRL, &ramp_ctrl);
276 dev_err(tps->dev,
284 tps->desc.ramp_delay = DIV_ROUND_UP(32000, BIT(ramp_ctrl));
346 struct tps62360_chip *tps;
377 tps = devm_kzalloc(&client->dev, sizeof(*tps), GFP_KERNEL);
378 if (!tps)
381 tps->en_discharge = pdata->en_discharge;
382 tps->en_internal_pulldn = pdata->en_internal_pulldn;
383 tps->vsel0_gpio = pdata->vsel0_gpio;
384 tps->vsel1_gpio = pdata->vsel1_gpio;
385 tps->dev = &client->dev;
390 tps->desc.min_uV = TPS62360_BASE_VOLTAGE;
391 tps->voltage_reg_mask = 0x3F;
392 tps->desc.n_voltages = TPS62360_N_VOLTAGES;
396 tps->desc.min_uV = TPS62361_BASE_VOLTAGE;
397 tps->voltage_reg_mask = 0x7F;
398 tps->desc.n_voltages = TPS62361_N_VOLTAGES;
404 tps->desc.name = client->name;
405 tps->desc.id = 0;
406 tps->desc.ops = &tps62360_dcdc_ops;
407 tps->desc.type = REGULATOR_VOLTAGE;
408 tps->desc.owner = THIS_MODULE;
409 tps->desc.uV_step = 10000;
411 tps->regmap = devm_regmap_init_i2c(client, &tps62360_regmap_config);
412 if (IS_ERR(tps->regmap)) {
413 ret = PTR_ERR(tps->regmap);
419 i2c_set_clientdata(client, tps);
421 tps->curr_vset_id = (pdata->vsel1_def_state & 1) * 2 +
423 tps->lru_index[0] = tps->curr_vset_id;
424 tps->valid_gpios = false;
426 if (gpio_is_valid(tps->vsel0_gpio) && gpio_is_valid(tps->vsel1_gpio)) {
430 ret = devm_gpio_request_one(&client->dev, tps->vsel0_gpio,
435 __func__, tps->vsel0_gpio, ret);
441 ret = devm_gpio_request_one(&client->dev, tps->vsel1_gpio,
446 __func__, tps->vsel1_gpio, ret);
449 tps->valid_gpios = true;
454 * set with the tps->curr_vset_id */
456 tps->lru_index[i] = i;
457 tps->lru_index[0] = tps->curr_vset_id;
458 tps->lru_index[tps->curr_vset_id] = 0;
461 ret = tps62360_init_dcdc(tps, pdata);
463 dev_err(tps->dev, "%s(): Init failed with err = %d\n",
470 config.driver_data = tps;
474 rdev = devm_regulator_register(&client->dev, &tps->desc, &config);
476 dev_err(tps->dev,
482 tps->rdev = rdev;
488 struct tps62360_chip *tps = i2c_get_clientdata(client);
491 if (!tps->en_discharge)
495 st = regmap_update_bits(tps->regmap, REG_RAMPCTRL, BIT(2), BIT(2));
497 dev_err(tps->dev,