Lines Matching refs:axp20x_batt

80 static int axp20x_battery_get_max_voltage(struct axp20x_batt_ps *axp20x_batt,
85 ret = regmap_read(axp20x_batt->regmap, AXP20X_CHRG_CTRL1, &reg);
109 static int axp22x_battery_get_max_voltage(struct axp20x_batt_ps *axp20x_batt,
114 ret = regmap_read(axp20x_batt->regmap, AXP20X_CHRG_CTRL1, &reg);
138 static int axp813_battery_get_max_voltage(struct axp20x_batt_ps *axp20x_batt,
143 ret = regmap_read(axp20x_batt->regmap, AXP20X_CHRG_CTRL1, &reg);
187 struct axp20x_batt_ps *axp20x_batt = power_supply_get_drvdata(psy);
193 ret = regmap_read(axp20x_batt->regmap, AXP20X_PWR_OP_MODE,
202 ret = regmap_read(axp20x_batt->regmap, AXP20X_PWR_INPUT_STATUS,
212 ret = iio_read_channel_processed(axp20x_batt->batt_dischrg_i,
222 ret = regmap_read(axp20x_batt->regmap, AXP20X_FG_RES, &val1);
237 ret = regmap_read(axp20x_batt->regmap, AXP20X_PWR_OP_MODE,
251 ret = axp20x_get_constant_charge_current(axp20x_batt,
258 val->intval = axp20x_batt->max_ccc;
262 ret = regmap_read(axp20x_batt->regmap, AXP20X_PWR_INPUT_STATUS,
268 ret = iio_read_channel_processed(axp20x_batt->batt_chrg_i, &val->intval);
270 ret = iio_read_channel_processed(axp20x_batt->batt_dischrg_i, &val1);
282 ret = regmap_read(axp20x_batt->regmap, AXP20X_PWR_OP_MODE,
292 ret = regmap_read(axp20x_batt->regmap, AXP20X_FG_RES, &reg);
296 if (axp20x_batt->data->has_fg_valid && !(reg & AXP22X_FG_VALID))
307 return axp20x_batt->data->get_max_voltage(axp20x_batt,
311 ret = regmap_read(axp20x_batt->regmap, AXP20X_V_OFF, &reg);
319 ret = iio_read_channel_processed(axp20x_batt->batt_v,
335 static int axp22x_battery_set_max_voltage(struct axp20x_batt_ps *axp20x_batt,
357 return regmap_update_bits(axp20x_batt->regmap, AXP20X_CHRG_CTRL1,
361 static int axp20x_battery_set_max_voltage(struct axp20x_batt_ps *axp20x_batt,
387 return regmap_update_bits(axp20x_batt->regmap, AXP20X_CHRG_CTRL1,
455 struct axp20x_batt_ps *axp20x_batt = power_supply_get_drvdata(psy);
459 return axp20x_set_voltage_min_design(axp20x_batt, val->intval);
462 return axp20x_batt->data->set_max_voltage(axp20x_batt, val->intval);
465 return axp20x_set_constant_charge_current(axp20x_batt,
468 return axp20x_set_max_constant_charge_current(axp20x_batt,
548 struct axp20x_batt_ps *axp20x_batt;
556 axp20x_batt = devm_kzalloc(&pdev->dev, sizeof(*axp20x_batt),
558 if (!axp20x_batt)
561 axp20x_batt->dev = &pdev->dev;
563 axp20x_batt->batt_v = devm_iio_channel_get(&pdev->dev, "batt_v");
564 if (IS_ERR(axp20x_batt->batt_v)) {
565 if (PTR_ERR(axp20x_batt->batt_v) == -ENODEV)
567 return PTR_ERR(axp20x_batt->batt_v);
570 axp20x_batt->batt_chrg_i = devm_iio_channel_get(&pdev->dev,
572 if (IS_ERR(axp20x_batt->batt_chrg_i)) {
573 if (PTR_ERR(axp20x_batt->batt_chrg_i) == -ENODEV)
575 return PTR_ERR(axp20x_batt->batt_chrg_i);
578 axp20x_batt->batt_dischrg_i = devm_iio_channel_get(&pdev->dev,
580 if (IS_ERR(axp20x_batt->batt_dischrg_i)) {
581 if (PTR_ERR(axp20x_batt->batt_dischrg_i) == -ENODEV)
583 return PTR_ERR(axp20x_batt->batt_dischrg_i);
586 axp20x_batt->regmap = dev_get_regmap(pdev->dev.parent, NULL);
587 platform_set_drvdata(pdev, axp20x_batt);
589 psy_cfg.drv_data = axp20x_batt;
592 axp20x_batt->data = (struct axp_data *)of_device_get_match_data(dev);
594 axp20x_batt->batt = devm_power_supply_register(&pdev->dev,
597 if (IS_ERR(axp20x_batt->batt)) {
599 PTR_ERR(axp20x_batt->batt));
600 return PTR_ERR(axp20x_batt->batt);
603 if (!power_supply_get_battery_info(axp20x_batt->batt, &info)) {
607 if (vmin > 0 && axp20x_set_voltage_min_design(axp20x_batt,
613 axp20x_batt->max_ccc = ccc;
615 if (ccc <= 0 || axp20x_set_constant_charge_current(axp20x_batt,
620 axp20x_batt->max_ccc = ccc;
621 axp20x_set_constant_charge_current(axp20x_batt, ccc);
629 axp20x_get_constant_charge_current(axp20x_batt,
630 &axp20x_batt->max_ccc);