Lines Matching defs:charger

209 static int act8945a_get_capacity_level(struct act8945a_charger *charger,
214 int lbo_level = gpiod_get_value(charger->lbo_gpio);
276 static int act8945a_get_current_max(struct act8945a_charger *charger,
282 int chgin_level = gpiod_get_value(charger->chglev_gpio);
346 struct act8945a_charger *charger = power_supply_get_drvdata(psy);
347 struct regmap *regmap = charger->regmap;
364 ret = act8945a_get_capacity_level(charger,
368 ret = act8945a_get_current_max(charger,
384 static int act8945a_enable_interrupt(struct act8945a_charger *charger)
386 struct regmap *regmap = charger->regmap;
407 static unsigned int act8945a_set_supply_type(struct act8945a_charger *charger,
413 ret = regmap_read(charger->regmap, ACT8945A_APCH_STATUS, &status);
417 ret = regmap_read(charger->regmap, ACT8945A_APCH_STATE, &state);
435 struct act8945a_charger *charger =
438 act8945a_set_supply_type(charger, &charger->desc.type);
440 power_supply_changed(charger->psy);
445 struct act8945a_charger *charger = dev_id;
447 if (charger->init_done)
448 schedule_work(&charger->work);
458 struct act8945a_charger *charger)
461 struct regmap *regmap = charger->regmap;
472 dev_err(dev, "no charger of node\n");
485 charger->lbo_gpio = devm_gpiod_get_optional(dev, "active-semi,lbo",
487 if (IS_ERR(charger->lbo_gpio)) {
488 err = PTR_ERR(charger->lbo_gpio);
493 ret = devm_request_irq(dev, gpiod_to_irq(charger->lbo_gpio),
496 "act8945a_lbo_detect", charger);
500 charger->chglev_gpio = devm_gpiod_get_optional(dev,
503 if (IS_ERR(charger->chglev_gpio)) {
504 err = PTR_ERR(charger->chglev_gpio);
576 struct act8945a_charger *charger;
580 charger = devm_kzalloc(&pdev->dev, sizeof(*charger), GFP_KERNEL);
581 if (!charger)
584 charger->regmap = dev_get_regmap(pdev->dev.parent, NULL);
585 if (!charger->regmap) {
590 ret = act8945a_charger_config(&pdev->dev, charger);
602 charger);
608 charger->desc.name = "act8945a-charger";
609 charger->desc.get_property = act8945a_charger_get_property;
610 charger->desc.properties = act8945a_charger_props;
611 charger->desc.num_properties = ARRAY_SIZE(act8945a_charger_props);
613 ret = act8945a_set_supply_type(charger, &charger->desc.type);
618 psy_cfg.drv_data = charger;
620 charger->psy = devm_power_supply_register(&pdev->dev,
621 &charger->desc,
623 if (IS_ERR(charger->psy)) {
625 return PTR_ERR(charger->psy);
628 platform_set_drvdata(pdev, charger);
630 INIT_WORK(&charger->work, act8945a_work);
632 ret = act8945a_enable_interrupt(charger);
636 charger->init_done = true;
643 struct act8945a_charger *charger = platform_get_drvdata(pdev);
645 charger->init_done = false;
646 cancel_work_sync(&charger->work);
651 .name = "act8945a-charger",
658 MODULE_DESCRIPTION("Active-semi ACT8945A ActivePath charger driver");