Lines Matching refs:max
174 struct max8973_chip *max = rdev_get_drvdata(rdev);
178 ret = regmap_read(max->regmap, max->curr_vout_reg, &data);
180 dev_err(max->dev, "register %d read failed, err = %d\n",
181 max->curr_vout_reg, ret);
190 struct max8973_chip *max = rdev_get_drvdata(rdev);
193 int vout_reg = max->curr_vout_reg;
194 int gpio_val = max->curr_gpio_val;
200 if (gpio_is_valid(max->dvs_gpio))
201 found = find_voltage_set_register(max, vsel,
205 ret = regmap_update_bits(max->regmap, vout_reg,
208 dev_err(max->dev, "register %d update failed, err %d\n",
212 max->curr_vout_reg = vout_reg;
213 max->curr_vout_val[gpio_val] = vsel;
217 if (gpio_is_valid(max->dvs_gpio)) {
218 gpio_set_value_cansleep(max->dvs_gpio, gpio_val & 0x1);
219 max->curr_gpio_val = gpio_val;
226 struct max8973_chip *max = rdev_get_drvdata(rdev);
244 ret = regmap_update_bits(max->regmap, MAX8973_CONTROL1,
247 dev_err(max->dev, "register %d update failed, err %d\n",
254 struct max8973_chip *max = rdev_get_drvdata(rdev);
258 ret = regmap_read(max->regmap, MAX8973_CONTROL1, &data);
260 dev_err(max->dev, "register %d read failed, err %d\n",
271 struct max8973_chip *max = rdev_get_drvdata(rdev);
287 ret = regmap_update_bits(max->regmap, MAX8973_CONTROL1,
290 dev_err(max->dev, "register %d update failed, %d",
298 struct max8973_chip *max = rdev_get_drvdata(rdev);
309 ret = regmap_update_bits(max->regmap, MAX8973_CONTROL2,
312 dev_err(max->dev, "register %d update failed: %d\n",
321 struct max8973_chip *max = rdev_get_drvdata(rdev);
325 ret = regmap_read(max->regmap, MAX8973_CONTROL2, &control2);
327 dev_err(max->dev, "register %d read failed: %d\n",
354 static int max8973_init_dcdc(struct max8973_chip *max,
362 ret = regmap_read(max->regmap, MAX8973_CONTROL1, &data);
364 dev_err(max->dev, "register %d read failed, err = %d",
371 max->desc.ramp_delay = 12000;
374 max->desc.ramp_delay = 25000;
377 max->desc.ramp_delay = 50000;
380 max->desc.ramp_delay = 200000;
395 max->desc.enable_time = 20;
397 max->desc.enable_time = 240;
404 (max->id == MAX77621))
448 ret = regmap_write(max->regmap, MAX8973_CONTROL1, control1);
450 dev_err(max->dev, "register %d write failed, err = %d",
455 ret = regmap_write(max->regmap, MAX8973_CONTROL2, control2);
457 dev_err(max->dev, "register %d write failed, err = %d",
463 if (max->enable_external_control && (max->id == MAX8973)) {
464 ret = regmap_update_bits(max->regmap, MAX8973_VOUT,
467 dev_err(max->dev, "register %d update failed, err = %d",
632 struct max8973_chip *max;
654 max = devm_kzalloc(&client->dev, sizeof(*max), GFP_KERNEL);
655 if (!max)
658 max->regmap = devm_regmap_init_i2c(client, &max8973_regmap_config);
659 if (IS_ERR(max->regmap)) {
660 ret = PTR_ERR(max->regmap);
672 max->id = (u32)((uintptr_t)match->data);
674 max->id = id->driver_data;
677 ret = regmap_read(max->regmap, MAX8973_CHIPID1, &chip_id);
686 i2c_set_clientdata(client, max);
687 max->ops = max8973_dcdc_ops;
688 max->dev = &client->dev;
689 max->desc.name = id->name;
690 max->desc.id = 0;
691 max->desc.ops = &max->ops;
692 max->desc.type = REGULATOR_VOLTAGE;
693 max->desc.owner = THIS_MODULE;
694 max->desc.min_uV = MAX8973_MIN_VOLATGE;
695 max->desc.uV_step = MAX8973_VOLATGE_STEP;
696 max->desc.n_voltages = MAX8973_BUCK_N_VOLTAGE;
698 max->dvs_gpio = (pdata->dvs_gpio) ? pdata->dvs_gpio : -EINVAL;
699 max->enable_external_control = pdata->enable_ext_control;
700 max->curr_gpio_val = pdata->dvs_def_state;
701 max->curr_vout_reg = MAX8973_VOUT + pdata->dvs_def_state;
702 max->junction_temp_warning = pdata->junction_temp_warning;
704 max->lru_index[0] = max->curr_vout_reg;
706 if (gpio_is_valid(max->dvs_gpio)) {
712 ret = devm_gpio_request_one(&client->dev, max->dvs_gpio,
717 max->dvs_gpio, ret);
724 * set with the max->curr_vout_reg */
726 max->lru_index[i] = i;
727 max->lru_index[0] = max->curr_vout_reg;
728 max->lru_index[max->curr_vout_reg] = 0;
734 max->ops.set_voltage_sel = regulator_set_voltage_sel_regmap;
735 max->ops.get_voltage_sel = regulator_get_voltage_sel_regmap;
736 max->desc.vsel_reg = max->curr_vout_reg;
737 max->desc.vsel_mask = MAX8973_VOUT_MASK;
742 client->dev.of_node, &max->desc);
745 switch (max->id) {
748 max->desc.enable_reg = MAX8973_VOUT;
749 max->desc.enable_mask = MAX8973_VOUT_ENABLE;
750 max->ops.enable = regulator_enable_regmap;
751 max->ops.disable = regulator_disable_regmap;
752 max->ops.is_enabled = regulator_is_enabled_regmap;
769 max->enable_external_control = true;
785 max->enable_external_control = true;
787 max->desc.enable_reg = MAX8973_VOUT;
788 max->desc.enable_mask = MAX8973_VOUT_ENABLE;
789 max->ops.enable = regulator_enable_regmap;
790 max->ops.disable = regulator_disable_regmap;
791 max->ops.is_enabled = regulator_is_enabled_regmap;
792 max->ops.set_current_limit = max8973_set_current_limit;
793 max->ops.get_current_limit = max8973_get_current_limit;
799 ret = max8973_init_dcdc(max, pdata);
801 dev_err(max->dev, "Max8973 Init failed, err = %d\n", ret);
807 config.driver_data = max;
809 config.regmap = max->regmap;
818 rdev = devm_regulator_register(&client->dev, &max->desc, &config);
821 dev_err(max->dev, "regulator register failed, err %d\n", ret);
825 max8973_thermal_init(max);