Lines Matching refs:max
151 struct max8973_chip *max = rdev_get_drvdata(rdev); in max8973_dcdc_get_voltage_sel() local
155 ret = regmap_read(max->regmap, max->curr_vout_reg, &data); in max8973_dcdc_get_voltage_sel()
157 dev_err(max->dev, "register %d read failed, err = %d\n", in max8973_dcdc_get_voltage_sel()
158 max->curr_vout_reg, ret); in max8973_dcdc_get_voltage_sel()
167 struct max8973_chip *max = rdev_get_drvdata(rdev); in max8973_dcdc_set_voltage_sel() local
170 int vout_reg = max->curr_vout_reg; in max8973_dcdc_set_voltage_sel()
171 int gpio_val = max->curr_gpio_val; in max8973_dcdc_set_voltage_sel()
177 if (max->valid_dvs_gpio) in max8973_dcdc_set_voltage_sel()
178 found = find_voltage_set_register(max, vsel, in max8973_dcdc_set_voltage_sel()
182 ret = regmap_update_bits(max->regmap, vout_reg, in max8973_dcdc_set_voltage_sel()
185 dev_err(max->dev, "register %d update failed, err %d\n", in max8973_dcdc_set_voltage_sel()
189 max->curr_vout_reg = vout_reg; in max8973_dcdc_set_voltage_sel()
190 max->curr_vout_val[gpio_val] = vsel; in max8973_dcdc_set_voltage_sel()
194 if (max->valid_dvs_gpio) { in max8973_dcdc_set_voltage_sel()
195 gpio_set_value_cansleep(max->dvs_gpio, gpio_val & 0x1); in max8973_dcdc_set_voltage_sel()
196 max->curr_gpio_val = gpio_val; in max8973_dcdc_set_voltage_sel()
203 struct max8973_chip *max = rdev_get_drvdata(rdev); in max8973_dcdc_set_mode() local
221 ret = regmap_update_bits(max->regmap, MAX8973_CONTROL1, in max8973_dcdc_set_mode()
224 dev_err(max->dev, "register %d update failed, err %d\n", in max8973_dcdc_set_mode()
231 struct max8973_chip *max = rdev_get_drvdata(rdev); in max8973_dcdc_get_mode() local
235 ret = regmap_read(max->regmap, MAX8973_CONTROL1, &data); in max8973_dcdc_get_mode()
237 dev_err(max->dev, "register %d read failed, err %d\n", in max8973_dcdc_get_mode()
253 static int max8973_init_dcdc(struct max8973_chip *max, in max8973_init_dcdc() argument
288 max->desc.ramp_delay = 12500; in max8973_init_dcdc()
332 ret = regmap_write(max->regmap, MAX8973_CONTROL1, control1); in max8973_init_dcdc()
334 dev_err(max->dev, "register %d write failed, err = %d", in max8973_init_dcdc()
339 ret = regmap_write(max->regmap, MAX8973_CONTROL2, control2); in max8973_init_dcdc()
341 dev_err(max->dev, "register %d write failed, err = %d", in max8973_init_dcdc()
347 if (max->enable_external_control) { in max8973_init_dcdc()
348 ret = regmap_update_bits(max->regmap, MAX8973_VOUT, in max8973_init_dcdc()
351 dev_err(max->dev, "register %d update failed, err = %d", in max8973_init_dcdc()
370 struct max8973_chip *max; in max8973_probe() local
380 max = devm_kzalloc(&client->dev, sizeof(*max), GFP_KERNEL); in max8973_probe()
381 if (!max) in max8973_probe()
384 max->regmap = devm_regmap_init_i2c(client, &max8973_regmap_config); in max8973_probe()
385 if (IS_ERR(max->regmap)) { in max8973_probe()
386 ret = PTR_ERR(max->regmap); in max8973_probe()
391 i2c_set_clientdata(client, max); in max8973_probe()
392 max->ops = max8973_dcdc_ops; in max8973_probe()
393 max->dev = &client->dev; in max8973_probe()
394 max->desc.name = id->name; in max8973_probe()
395 max->desc.id = 0; in max8973_probe()
396 max->desc.ops = &max->ops; in max8973_probe()
397 max->desc.type = REGULATOR_VOLTAGE; in max8973_probe()
398 max->desc.owner = THIS_MODULE; in max8973_probe()
399 max->desc.min_uV = MAX8973_MIN_VOLATGE; in max8973_probe()
400 max->desc.uV_step = MAX8973_VOLATGE_STEP; in max8973_probe()
401 max->desc.n_voltages = MAX8973_BUCK_N_VOLTAGE; in max8973_probe()
404 max->desc.enable_reg = MAX8973_VOUT; in max8973_probe()
405 max->desc.enable_mask = MAX8973_VOUT_ENABLE; in max8973_probe()
406 max->ops.enable = regulator_enable_regmap; in max8973_probe()
407 max->ops.disable = regulator_disable_regmap; in max8973_probe()
408 max->ops.is_enabled = regulator_is_enabled_regmap; in max8973_probe()
412 max->dvs_gpio = pdata->dvs_gpio; in max8973_probe()
413 max->enable_external_control = pdata->enable_ext_control; in max8973_probe()
414 max->curr_gpio_val = pdata->dvs_def_state; in max8973_probe()
415 max->curr_vout_reg = MAX8973_VOUT + pdata->dvs_def_state; in max8973_probe()
417 max->dvs_gpio = -EINVAL; in max8973_probe()
418 max->curr_vout_reg = MAX8973_VOUT; in max8973_probe()
421 max->lru_index[0] = max->curr_vout_reg; in max8973_probe()
423 if (gpio_is_valid(max->dvs_gpio)) { in max8973_probe()
429 ret = devm_gpio_request_one(&client->dev, max->dvs_gpio, in max8973_probe()
434 max->dvs_gpio, ret); in max8973_probe()
437 max->valid_dvs_gpio = true; in max8973_probe()
444 max->lru_index[i] = i; in max8973_probe()
445 max->lru_index[0] = max->curr_vout_reg; in max8973_probe()
446 max->lru_index[max->curr_vout_reg] = 0; in max8973_probe()
448 max->valid_dvs_gpio = false; in max8973_probe()
452 ret = max8973_init_dcdc(max, pdata); in max8973_probe()
454 dev_err(max->dev, "Max8973 Init failed, err = %d\n", ret); in max8973_probe()
462 &max->desc); in max8973_probe()
463 config.driver_data = max; in max8973_probe()
465 config.regmap = max->regmap; in max8973_probe()
468 rdev = devm_regulator_register(&client->dev, &max->desc, &config); in max8973_probe()
471 dev_err(max->dev, "regulator register failed, err %d\n", ret); in max8973_probe()