Lines Matching refs:charger

3  * MP2629 battery charger driver
155 static int mp2629_read_adc(struct mp2629_charger *charger,
162 ret = iio_read_channel_processed(charger->iiochan[ch], &chval);
171 static int mp2629_get_prop(struct mp2629_charger *charger,
178 ret = regmap_field_read(charger->regmap_fields[fld], &rval);
187 static int mp2629_set_prop(struct mp2629_charger *charger,
197 return regmap_field_write(charger->regmap_fields[fld], rval);
200 static int mp2629_get_battery_capacity(struct mp2629_charger *charger,
206 ret = mp2629_read_adc(charger, MP2629_BATT_VOLT, &vnow);
210 ret = mp2629_get_prop(charger, CHARGE_VLIM, &vlim);
224 struct mp2629_charger *charger = dev_get_drvdata(psy->dev.parent);
230 ret = mp2629_read_adc(charger, MP2629_BATT_VOLT, val);
234 ret = mp2629_read_adc(charger, MP2629_BATT_CURRENT, val);
246 ret = mp2629_get_battery_capacity(charger, val);
250 ret = mp2629_get_prop(charger, TERM_CURRENT, val);
254 ret = mp2629_get_prop(charger, PRECHARGE, val);
258 ret = mp2629_get_prop(charger, CHARGE_VLIM, val);
262 ret = mp2629_get_prop(charger, CHARGE_ILIM, val);
266 if (!charger->fault)
268 if (MP2629_FAULT_BATTERY & charger->fault)
270 else if (MP2629_FAULT_THERMAL & charger->fault)
272 else if (MP2629_FAULT_INPUT & charger->fault)
277 ret = regmap_read(charger->regmap, MP2629_REG_STATUS, &rval);
296 ret = regmap_read(charger->regmap, MP2629_REG_STATUS, &rval);
327 struct mp2629_charger *charger = dev_get_drvdata(psy->dev.parent);
331 return mp2629_set_prop(charger, TERM_CURRENT, val);
334 return mp2629_set_prop(charger, PRECHARGE, val);
337 return mp2629_set_prop(charger, CHARGE_VLIM, val);
340 return mp2629_set_prop(charger, CHARGE_ILIM, val);
351 struct mp2629_charger *charger = dev_get_drvdata(psy->dev.parent);
357 ret = regmap_read(charger->regmap, MP2629_REG_STATUS, &rval);
365 ret = regmap_read(charger->regmap, MP2629_REG_STATUS, &rval);
390 ret = mp2629_read_adc(charger, MP2629_INPUT_VOLT, val);
394 ret = mp2629_read_adc(charger, MP2629_INPUT_CURRENT, val);
398 ret = mp2629_get_prop(charger, INPUT_VLIM, val);
402 ret = mp2629_get_prop(charger, INPUT_ILIM, val);
416 struct mp2629_charger *charger = dev_get_drvdata(psy->dev.parent);
420 return mp2629_set_prop(charger, INPUT_VLIM, val);
423 return mp2629_set_prop(charger, INPUT_ILIM, val);
448 struct mp2629_charger *charger = dev_id;
452 mutex_lock(&charger->lock);
454 ret = regmap_read(charger->regmap, MP2629_REG_FAULT, &rval);
459 charger->fault = rval;
461 dev_err(charger->dev, "Battery fault OVP\n");
463 dev_err(charger->dev, "Thermal shutdown fault\n");
465 dev_err(charger->dev, "no input or input OVP\n");
467 dev_err(charger->dev, "VIN overloaded\n");
472 ret = regmap_read(charger->regmap, MP2629_REG_STATUS, &rval);
477 power_supply_changed(charger->usb);
479 power_supply_changed(charger->battery);
482 mutex_unlock(&charger->lock);
513 struct mp2629_charger *charger = dev_get_drvdata(dev->parent);
517 ret = regmap_read(charger->regmap, MP2629_REG_IMPEDANCE_COMP, &rval);
530 struct mp2629_charger *charger = dev_get_drvdata(dev->parent);
543 ret = regmap_update_bits(charger->regmap, MP2629_REG_IMPEDANCE_COMP,
561 struct mp2629_charger *charger = data;
563 regmap_update_bits(charger->regmap, MP2629_REG_CHARGE_CTRL,
571 struct mp2629_charger *charger;
575 charger = devm_kzalloc(dev, sizeof(*charger), GFP_KERNEL);
576 if (!charger)
579 charger->regmap = ddata->regmap;
580 charger->dev = dev;
581 platform_set_drvdata(pdev, charger);
588 charger->regmap_fields[i] = devm_regmap_field_alloc(dev,
589 charger->regmap, mp2629_reg_fields[i]);
590 if (IS_ERR(charger->regmap_fields[i])) {
592 return PTR_ERR(charger->regmap_fields[i]);
597 charger->iiochan[i] = devm_iio_channel_get(dev,
599 if (IS_ERR(charger->iiochan[i])) {
601 return PTR_ERR(charger->iiochan[i]);
605 ret = devm_add_action_or_reset(dev, mp2629_charger_disable, charger);
609 charger->usb = devm_power_supply_register(dev, &mp2629_usb_desc, NULL);
610 if (IS_ERR(charger->usb)) {
612 return PTR_ERR(charger->usb);
615 psy_cfg.drv_data = charger;
617 charger->battery = devm_power_supply_register(dev,
619 if (IS_ERR(charger->battery)) {
621 return PTR_ERR(charger->battery);
624 ret = regmap_update_bits(charger->regmap, MP2629_REG_CHARGE_CTRL,
631 regmap_update_bits(charger->regmap, MP2629_REG_TIMER_CTRL,
634 mutex_init(&charger->lock);
638 "mp2629-charger", charger);
644 regmap_update_bits(charger->regmap, MP2629_REG_INTERRUPT,