Lines Matching refs:charger

44 static inline int da9150_charger_supply_online(struct da9150_charger *charger,  in da9150_charger_supply_online()  argument
48 val->intval = (psy == charger->supply_online) ? 1 : 0; in da9150_charger_supply_online()
54 static int da9150_charger_vbus_voltage_now(struct da9150_charger *charger, in da9150_charger_vbus_voltage_now() argument
60 ret = iio_read_channel_processed(charger->vbus_chan, &v_val); in da9150_charger_vbus_voltage_now()
70 static int da9150_charger_ibus_current_avg(struct da9150_charger *charger, in da9150_charger_ibus_current_avg() argument
76 ret = iio_read_channel_processed(charger->ibus_chan, &i_val); in da9150_charger_ibus_current_avg()
86 static int da9150_charger_tjunc_temp(struct da9150_charger *charger, in da9150_charger_tjunc_temp() argument
92 ret = iio_read_channel_processed(charger->tjunc_chan, &t_val); in da9150_charger_tjunc_temp()
113 struct da9150_charger *charger = dev_get_drvdata(psy->dev.parent); in da9150_charger_get_prop() local
118 ret = da9150_charger_supply_online(charger, psy, val); in da9150_charger_get_prop()
121 ret = da9150_charger_vbus_voltage_now(charger, val); in da9150_charger_get_prop()
124 ret = da9150_charger_ibus_current_avg(charger, val); in da9150_charger_get_prop()
127 ret = da9150_charger_tjunc_temp(charger, val); in da9150_charger_get_prop()
138 static int da9150_charger_battery_status(struct da9150_charger *charger, in da9150_charger_battery_status() argument
144 reg = da9150_reg_read(charger->da9150, DA9150_STATUS_H); in da9150_charger_battery_status()
153 reg = da9150_reg_read(charger->da9150, DA9150_STATUS_J); in da9150_charger_battery_status()
181 static int da9150_charger_battery_health(struct da9150_charger *charger, in da9150_charger_battery_health() argument
186 reg = da9150_reg_read(charger->da9150, DA9150_STATUS_J); in da9150_charger_battery_health()
217 static int da9150_charger_battery_present(struct da9150_charger *charger, in da9150_charger_battery_present() argument
223 reg = da9150_reg_read(charger->da9150, DA9150_STATUS_J); in da9150_charger_battery_present()
232 static int da9150_charger_battery_charge_type(struct da9150_charger *charger, in da9150_charger_battery_charge_type() argument
237 reg = da9150_reg_read(charger->da9150, DA9150_STATUS_J); in da9150_charger_battery_charge_type()
256 static int da9150_charger_battery_voltage_min(struct da9150_charger *charger, in da9150_charger_battery_voltage_min() argument
261 reg = da9150_reg_read(charger->da9150, DA9150_PPR_CHGCTRL_C); in da9150_charger_battery_voltage_min()
269 static int da9150_charger_battery_voltage_now(struct da9150_charger *charger, in da9150_charger_battery_voltage_now() argument
275 ret = iio_read_channel_processed(charger->vbat_chan, &v_val); in da9150_charger_battery_voltage_now()
284 static int da9150_charger_battery_current_max(struct da9150_charger *charger, in da9150_charger_battery_current_max() argument
289 reg = da9150_reg_read(charger->da9150, DA9150_PPR_CHGCTRL_D); in da9150_charger_battery_current_max()
297 static int da9150_charger_battery_voltage_max(struct da9150_charger *charger, in da9150_charger_battery_voltage_max() argument
302 reg = da9150_reg_read(charger->da9150, DA9150_PPR_CHGCTRL_B); in da9150_charger_battery_voltage_max()
325 struct da9150_charger *charger = dev_get_drvdata(psy->dev.parent); in da9150_charger_battery_get_prop() local
330 ret = da9150_charger_battery_status(charger, val); in da9150_charger_battery_get_prop()
333 ret = da9150_charger_supply_online(charger, psy, val); in da9150_charger_battery_get_prop()
336 ret = da9150_charger_battery_health(charger, val); in da9150_charger_battery_get_prop()
339 ret = da9150_charger_battery_present(charger, val); in da9150_charger_battery_get_prop()
342 ret = da9150_charger_battery_charge_type(charger, val); in da9150_charger_battery_get_prop()
345 ret = da9150_charger_battery_voltage_min(charger, val); in da9150_charger_battery_get_prop()
348 ret = da9150_charger_battery_voltage_now(charger, val); in da9150_charger_battery_get_prop()
351 ret = da9150_charger_battery_current_max(charger, val); in da9150_charger_battery_get_prop()
354 ret = da9150_charger_battery_voltage_max(charger, val); in da9150_charger_battery_get_prop()
366 struct da9150_charger *charger = data; in da9150_charger_chg_irq() local
368 power_supply_changed(charger->battery); in da9150_charger_chg_irq()
375 struct da9150_charger *charger = data; in da9150_charger_tjunc_irq() local
378 dev_crit(charger->dev, "TJunc over temperature!!!\n"); in da9150_charger_tjunc_irq()
379 power_supply_changed(charger->usb); in da9150_charger_tjunc_irq()
386 struct da9150_charger *charger = data; in da9150_charger_vfault_irq() local
389 dev_crit(charger->dev, "VSYS under voltage!!!\n"); in da9150_charger_vfault_irq()
390 power_supply_changed(charger->usb); in da9150_charger_vfault_irq()
391 power_supply_changed(charger->battery); in da9150_charger_vfault_irq()
398 struct da9150_charger *charger = data; in da9150_charger_vbus_irq() local
401 reg = da9150_reg_read(charger->da9150, DA9150_STATUS_H); in da9150_charger_vbus_irq()
407 charger->supply_online = charger->battery; in da9150_charger_vbus_irq()
410 charger->supply_online = charger->usb; in da9150_charger_vbus_irq()
413 dev_warn(charger->dev, "Unknown VBUS state - reg = 0x%x\n", in da9150_charger_vbus_irq()
415 charger->supply_online = NULL; in da9150_charger_vbus_irq()
419 power_supply_changed(charger->usb); in da9150_charger_vbus_irq()
420 power_supply_changed(charger->battery); in da9150_charger_vbus_irq()
427 struct da9150_charger *charger = in da9150_charger_otg_work() local
430 switch (charger->usb_event) { in da9150_charger_otg_work()
433 da9150_set_bits(charger->da9150, DA9150_PPR_BKCTRL_A, in da9150_charger_otg_work()
438 power_supply_changed(charger->usb); in da9150_charger_otg_work()
439 power_supply_changed(charger->battery); in da9150_charger_otg_work()
440 da9150_set_bits(charger->da9150, DA9150_PPR_BKCTRL_A, in da9150_charger_otg_work()
449 struct da9150_charger *charger = in da9150_charger_otg_ncb() local
452 dev_dbg(charger->dev, "DA9150 OTG notify %lu\n", val); in da9150_charger_otg_ncb()
454 charger->usb_event = val; in da9150_charger_otg_ncb()
455 schedule_work(&charger->otg_work); in da9150_charger_otg_ncb()
465 struct da9150_charger *charger = platform_get_drvdata(pdev); in da9150_charger_register_irq() local
473 charger); in da9150_charger_register_irq()
483 struct da9150_charger *charger = platform_get_drvdata(pdev); in da9150_charger_unregister_irq() local
490 free_irq(irq, charger); in da9150_charger_unregister_irq()
513 struct da9150_charger *charger; in da9150_charger_probe() local
517 charger = devm_kzalloc(dev, sizeof(struct da9150_charger), GFP_KERNEL); in da9150_charger_probe()
518 if (!charger) in da9150_charger_probe()
521 platform_set_drvdata(pdev, charger); in da9150_charger_probe()
522 charger->da9150 = da9150; in da9150_charger_probe()
523 charger->dev = dev; in da9150_charger_probe()
526 charger->ibus_chan = iio_channel_get(dev, "CHAN_IBUS"); in da9150_charger_probe()
527 if (IS_ERR(charger->ibus_chan)) { in da9150_charger_probe()
528 ret = PTR_ERR(charger->ibus_chan); in da9150_charger_probe()
532 charger->vbus_chan = iio_channel_get(dev, "CHAN_VBUS"); in da9150_charger_probe()
533 if (IS_ERR(charger->vbus_chan)) { in da9150_charger_probe()
534 ret = PTR_ERR(charger->vbus_chan); in da9150_charger_probe()
538 charger->tjunc_chan = iio_channel_get(dev, "CHAN_TJUNC"); in da9150_charger_probe()
539 if (IS_ERR(charger->tjunc_chan)) { in da9150_charger_probe()
540 ret = PTR_ERR(charger->tjunc_chan); in da9150_charger_probe()
544 charger->vbat_chan = iio_channel_get(dev, "CHAN_VBAT"); in da9150_charger_probe()
545 if (IS_ERR(charger->vbat_chan)) { in da9150_charger_probe()
546 ret = PTR_ERR(charger->vbat_chan); in da9150_charger_probe()
551 charger->usb = power_supply_register(dev, &usb_desc, NULL); in da9150_charger_probe()
552 if (IS_ERR(charger->usb)) { in da9150_charger_probe()
553 ret = PTR_ERR(charger->usb); in da9150_charger_probe()
557 charger->battery = power_supply_register(dev, &battery_desc, NULL); in da9150_charger_probe()
558 if (IS_ERR(charger->battery)) { in da9150_charger_probe()
559 ret = PTR_ERR(charger->battery); in da9150_charger_probe()
569 charger->supply_online = charger->battery; in da9150_charger_probe()
572 charger->supply_online = charger->usb; in da9150_charger_probe()
576 charger->supply_online = NULL; in da9150_charger_probe()
581 charger->usb_phy = devm_usb_get_phy(dev, USB_PHY_TYPE_USB2); in da9150_charger_probe()
582 if (!IS_ERR_OR_NULL(charger->usb_phy)) { in da9150_charger_probe()
583 INIT_WORK(&charger->otg_work, da9150_charger_otg_work); in da9150_charger_probe()
584 charger->otg_nb.notifier_call = da9150_charger_otg_ncb; in da9150_charger_probe()
585 usb_register_notifier(charger->usb_phy, &charger->otg_nb); in da9150_charger_probe()
619 if (!IS_ERR_OR_NULL(charger->usb_phy)) in da9150_charger_probe()
620 usb_unregister_notifier(charger->usb_phy, &charger->otg_nb); in da9150_charger_probe()
622 power_supply_unregister(charger->usb); in da9150_charger_probe()
625 iio_channel_release(charger->vbat_chan); in da9150_charger_probe()
628 iio_channel_release(charger->tjunc_chan); in da9150_charger_probe()
631 iio_channel_release(charger->vbus_chan); in da9150_charger_probe()
634 iio_channel_release(charger->ibus_chan); in da9150_charger_probe()
642 struct da9150_charger *charger = platform_get_drvdata(pdev); in da9150_charger_remove() local
647 free_irq(irq, charger); in da9150_charger_remove()
650 free_irq(irq, charger); in da9150_charger_remove()
653 free_irq(irq, charger); in da9150_charger_remove()
656 free_irq(irq, charger); in da9150_charger_remove()
658 if (!IS_ERR_OR_NULL(charger->usb_phy)) in da9150_charger_remove()
659 usb_unregister_notifier(charger->usb_phy, &charger->otg_nb); in da9150_charger_remove()
661 power_supply_unregister(charger->battery); in da9150_charger_remove()
662 power_supply_unregister(charger->usb); in da9150_charger_remove()
665 iio_channel_release(charger->ibus_chan); in da9150_charger_remove()
666 iio_channel_release(charger->vbus_chan); in da9150_charger_remove()
667 iio_channel_release(charger->tjunc_chan); in da9150_charger_remove()
668 iio_channel_release(charger->vbat_chan); in da9150_charger_remove()