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, ®);
109 static int axp22x_battery_get_max_voltage(struct axp20x_batt_ps *axp20x_batt,
114 ret = regmap_read(axp20x_batt->regmap, AXP20X_CHRG_CTRL1, ®);
138 static int axp813_battery_get_max_voltage(struct axp20x_batt_ps *axp20x_batt,
143 ret = regmap_read(axp20x_batt->regmap, AXP20X_CHRG_CTRL1, ®);
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, ®);
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, ®);
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,
473 return regmap_update_bits(axp20x_batt->regmap, AXP20X_CHRG_CTRL1,
478 return regmap_update_bits(axp20x_batt->regmap, AXP20X_CHRG_CTRL1,
560 struct axp20x_batt_ps *axp20x_batt;
568 axp20x_batt = devm_kzalloc(&pdev->dev, sizeof(*axp20x_batt),
570 if (!axp20x_batt)
573 axp20x_batt->dev = &pdev->dev;
575 axp20x_batt->batt_v = devm_iio_channel_get(&pdev->dev, "batt_v");
576 if (IS_ERR(axp20x_batt->batt_v)) {
577 if (PTR_ERR(axp20x_batt->batt_v) == -ENODEV)
579 return PTR_ERR(axp20x_batt->batt_v);
582 axp20x_batt->batt_chrg_i = devm_iio_channel_get(&pdev->dev,
584 if (IS_ERR(axp20x_batt->batt_chrg_i)) {
585 if (PTR_ERR(axp20x_batt->batt_chrg_i) == -ENODEV)
587 return PTR_ERR(axp20x_batt->batt_chrg_i);
590 axp20x_batt->batt_dischrg_i = devm_iio_channel_get(&pdev->dev,
592 if (IS_ERR(axp20x_batt->batt_dischrg_i)) {
593 if (PTR_ERR(axp20x_batt->batt_dischrg_i) == -ENODEV)
595 return PTR_ERR(axp20x_batt->batt_dischrg_i);
598 axp20x_batt->regmap = dev_get_regmap(pdev->dev.parent, NULL);
599 platform_set_drvdata(pdev, axp20x_batt);
601 psy_cfg.drv_data = axp20x_batt;
604 axp20x_batt->data = (struct axp_data *)of_device_get_match_data(dev);
606 axp20x_batt->batt = devm_power_supply_register(&pdev->dev,
609 if (IS_ERR(axp20x_batt->batt)) {
611 PTR_ERR(axp20x_batt->batt));
612 return PTR_ERR(axp20x_batt->batt);
615 if (!power_supply_get_battery_info(axp20x_batt->batt, &info)) {
619 if (vmin > 0 && axp20x_set_voltage_min_design(axp20x_batt,
625 axp20x_batt->max_ccc = ccc;
627 if (ccc <= 0 || axp20x_set_constant_charge_current(axp20x_batt,
632 axp20x_batt->max_ccc = ccc;
633 axp20x_set_constant_charge_current(axp20x_batt, ccc);
641 axp20x_get_constant_charge_current(axp20x_batt,
642 &axp20x_batt->max_ccc);