Lines Matching refs:info

88 static int __set_charger(struct max8925_power_info *info, int enable)  in __set_charger()  argument
90 struct max8925_chip *chip = info->chip; in __set_charger()
93 if (info->set_charger) in __set_charger()
94 info->set_charger(1); in __set_charger()
96 max8925_set_bits(info->gpm, MAX8925_CHG_CNTL1, 1 << 7, 0); in __set_charger()
99 max8925_set_bits(info->gpm, MAX8925_CHG_CNTL1, 1 << 7, 1 << 7); in __set_charger()
100 if (info->set_charger) in __set_charger()
101 info->set_charger(0); in __set_charger()
110 struct max8925_power_info *info = (struct max8925_power_info *)data; in max8925_charger_handler() local
111 struct max8925_chip *chip = info->chip; in max8925_charger_handler()
115 info->ac_online = 1; in max8925_charger_handler()
116 __set_charger(info, 1); in max8925_charger_handler()
120 info->ac_online = 0; in max8925_charger_handler()
121 __set_charger(info, 0); in max8925_charger_handler()
129 __set_charger(info, 0); in max8925_charger_handler()
143 __set_charger(info, 0); in max8925_charger_handler()
150 __set_charger(info, 0); in max8925_charger_handler()
154 __set_charger(info, 0); in max8925_charger_handler()
161 static int start_measure(struct max8925_power_info *info, int type) in start_measure() argument
188 max8925_reg_write(info->adc, meas_cmd, 0); in start_measure()
189 max8925_bulk_read(info->adc, meas_reg, 2, buf); in start_measure()
199 struct max8925_power_info *info = dev_get_drvdata(psy->dev.parent); in max8925_ac_get_prop() local
204 val->intval = info->ac_online; in max8925_ac_get_prop()
207 if (info->ac_online) { in max8925_ac_get_prop()
208 ret = start_measure(info, MEASURE_VCHG); in max8925_ac_get_prop()
233 struct max8925_power_info *info = dev_get_drvdata(psy->dev.parent); in max8925_usb_get_prop() local
238 val->intval = info->usb_online; in max8925_usb_get_prop()
241 if (info->usb_online) { in max8925_usb_get_prop()
242 ret = start_measure(info, MEASURE_VCHG); in max8925_usb_get_prop()
267 struct max8925_power_info *info = dev_get_drvdata(psy->dev.parent); in max8925_bat_get_prop() local
272 val->intval = info->bat_online; in max8925_bat_get_prop()
275 if (info->bat_online) { in max8925_bat_get_prop()
276 ret = start_measure(info, MEASURE_VMBATT); in max8925_bat_get_prop()
286 if (info->bat_online) { in max8925_bat_get_prop()
287 ret = start_measure(info, MEASURE_ISNS); in max8925_bat_get_prop()
301 if (!info->bat_online) { in max8925_bat_get_prop()
305 ret = max8925_reg_read(info->gpm, MAX8925_CHG_STATUS); in max8925_bat_get_prop()
322 if (!info->bat_online) { in max8925_bat_get_prop()
326 ret = max8925_reg_read(info->gpm, MAX8925_CHG_STATUS); in max8925_bat_get_prop()
327 if (info->usb_online || info->ac_online) { in max8925_bat_get_prop()
378 IRQF_ONESHOT, _name, info); \
385 struct max8925_power_info *info) in max8925_init_charger() argument
390 if (!info->no_insert_detect) { in max8925_init_charger()
394 if (!info->no_temp_support) { in max8925_init_charger()
405 info->usb_online = 0; in max8925_init_charger()
406 info->bat_online = 0; in max8925_init_charger()
409 if (start_measure(info, MEASURE_VCHG) * 2000 > 500000) in max8925_init_charger()
410 info->ac_online = 1; in max8925_init_charger()
412 info->ac_online = 0; in max8925_init_charger()
414 ret = max8925_reg_read(info->gpm, MAX8925_CHG_STATUS); in max8925_init_charger()
422 if (info->batt_detect) in max8925_init_charger()
423 info->bat_online = (ret & MAX8925_CHG_MBDET) ? 0 : 1; in max8925_init_charger()
425 info->bat_online = 1; in max8925_init_charger()
427 info->ac_online = 1; in max8925_init_charger()
429 info->ac_online = 0; in max8925_init_charger()
432 max8925_set_bits(info->gpm, MAX8925_CHG_CNTL1, 1 << 7, 1 << 7); in max8925_init_charger()
434 max8925_set_bits(info->gpm, MAX8925_CHG_CNTL1, 3 << 5, in max8925_init_charger()
435 info->topoff_threshold << 5); in max8925_init_charger()
437 max8925_set_bits(info->gpm, MAX8925_CHG_CNTL1, 7, info->fast_charge); in max8925_init_charger()
442 static int max8925_deinit_charger(struct max8925_power_info *info) in max8925_deinit_charger() argument
444 struct max8925_chip *chip = info->chip; in max8925_deinit_charger()
449 free_irq(irq, info); in max8925_deinit_charger()
511 struct max8925_power_info *info; in max8925_power_probe() local
521 info = devm_kzalloc(&pdev->dev, sizeof(struct max8925_power_info), in max8925_power_probe()
523 if (!info) in max8925_power_probe()
525 info->chip = chip; in max8925_power_probe()
526 info->gpm = chip->i2c; in max8925_power_probe()
527 info->adc = chip->adc; in max8925_power_probe()
528 platform_set_drvdata(pdev, info); in max8925_power_probe()
533 info->ac = power_supply_register(&pdev->dev, &ac_desc, &psy_cfg); in max8925_power_probe()
534 if (IS_ERR(info->ac)) { in max8925_power_probe()
535 ret = PTR_ERR(info->ac); in max8925_power_probe()
538 info->ac->dev.parent = &pdev->dev; in max8925_power_probe()
540 info->usb = power_supply_register(&pdev->dev, &usb_desc, &psy_cfg); in max8925_power_probe()
541 if (IS_ERR(info->usb)) { in max8925_power_probe()
542 ret = PTR_ERR(info->usb); in max8925_power_probe()
545 info->usb->dev.parent = &pdev->dev; in max8925_power_probe()
547 info->battery = power_supply_register(&pdev->dev, &battery_desc, NULL); in max8925_power_probe()
548 if (IS_ERR(info->battery)) { in max8925_power_probe()
549 ret = PTR_ERR(info->battery); in max8925_power_probe()
552 info->battery->dev.parent = &pdev->dev; in max8925_power_probe()
554 info->batt_detect = pdata->batt_detect; in max8925_power_probe()
555 info->topoff_threshold = pdata->topoff_threshold; in max8925_power_probe()
556 info->fast_charge = pdata->fast_charge; in max8925_power_probe()
557 info->set_charger = pdata->set_charger; in max8925_power_probe()
558 info->no_temp_support = pdata->no_temp_support; in max8925_power_probe()
559 info->no_insert_detect = pdata->no_insert_detect; in max8925_power_probe()
561 max8925_init_charger(chip, info); in max8925_power_probe()
564 power_supply_unregister(info->battery); in max8925_power_probe()
566 power_supply_unregister(info->ac); in max8925_power_probe()
573 struct max8925_power_info *info = platform_get_drvdata(pdev); in max8925_power_remove() local
575 if (info) { in max8925_power_remove()
576 power_supply_unregister(info->ac); in max8925_power_remove()
577 power_supply_unregister(info->usb); in max8925_power_remove()
578 power_supply_unregister(info->battery); in max8925_power_remove()
579 max8925_deinit_charger(info); in max8925_power_remove()