Lines Matching full:charger

2 // Battery charger driver for TI's tps65217
8 * Battery charger driver for TI's tps65217
44 static int tps65217_config_charger(struct tps65217_charger *charger) in tps65217_config_charger() argument
53 * is not recommended to do so. In sleep mode, the charger continues in tps65217_config_charger()
55 * values. Therefore, the charger would get the wrong temperature in tps65217_config_charger()
66 ret = tps65217_clear_bits(charger->tps, TPS65217_REG_CHGCONFIG1, in tps65217_config_charger()
70 dev_err(charger->dev, in tps65217_config_charger()
78 static int tps65217_enable_charging(struct tps65217_charger *charger) in tps65217_enable_charging() argument
82 /* charger already enabled */ in tps65217_enable_charging()
83 if (charger->online) in tps65217_enable_charging()
86 dev_dbg(charger->dev, "%s: enable charging\n", __func__); in tps65217_enable_charging()
87 ret = tps65217_set_bits(charger->tps, TPS65217_REG_CHGCONFIG1, in tps65217_enable_charging()
92 dev_err(charger->dev, in tps65217_enable_charging()
98 charger->online = 1; in tps65217_enable_charging()
107 struct tps65217_charger *charger = power_supply_get_drvdata(psy); in tps65217_charger_get_property() local
110 val->intval = charger->online; in tps65217_charger_get_property()
119 struct tps65217_charger *charger = dev; in tps65217_charger_irq() local
121 charger->prev_online = charger->online; in tps65217_charger_irq()
123 ret = tps65217_reg_read(charger->tps, TPS65217_REG_STATUS, &val); in tps65217_charger_irq()
125 dev_err(charger->dev, "%s: Error in reading reg 0x%x\n", in tps65217_charger_irq()
130 dev_dbg(charger->dev, "%s: 0x%x\n", __func__, val); in tps65217_charger_irq()
132 /* check for charger status bit */ in tps65217_charger_irq()
134 ret = tps65217_enable_charging(charger); in tps65217_charger_irq()
136 dev_err(charger->dev, in tps65217_charger_irq()
137 "failed to enable charger: %d\n", ret); in tps65217_charger_irq()
141 charger->online = 0; in tps65217_charger_irq()
144 if (charger->prev_online != charger->online) in tps65217_charger_irq()
145 power_supply_changed(charger->psy); in tps65217_charger_irq()
147 ret = tps65217_reg_read(charger->tps, TPS65217_REG_CHGCONFIG0, &val); in tps65217_charger_irq()
149 dev_err(charger->dev, "%s: Error in reading reg 0x%x\n", in tps65217_charger_irq()
155 dev_dbg(charger->dev, "%s: charger is charging\n", __func__); in tps65217_charger_irq()
157 dev_dbg(charger->dev, in tps65217_charger_irq()
158 "%s: charger is NOT charging\n", __func__); in tps65217_charger_irq()
176 .name = "tps65217-charger",
186 struct tps65217_charger *charger; in tps65217_charger_probe() local
193 charger = devm_kzalloc(&pdev->dev, sizeof(*charger), GFP_KERNEL); in tps65217_charger_probe()
194 if (!charger) in tps65217_charger_probe()
197 platform_set_drvdata(pdev, charger); in tps65217_charger_probe()
198 charger->tps = tps; in tps65217_charger_probe()
199 charger->dev = &pdev->dev; in tps65217_charger_probe()
202 cfg.drv_data = charger; in tps65217_charger_probe()
204 charger->psy = devm_power_supply_register(&pdev->dev, in tps65217_charger_probe()
207 if (IS_ERR(charger->psy)) { in tps65217_charger_probe()
209 return PTR_ERR(charger->psy); in tps65217_charger_probe()
215 ret = tps65217_config_charger(charger); in tps65217_charger_probe()
217 dev_err(charger->dev, "charger config failed, err %d\n", ret); in tps65217_charger_probe()
224 charger, "ktps65217charger"); in tps65217_charger_probe()
227 dev_err(charger->dev, in tps65217_charger_probe()
232 charger->poll_task = poll_task; in tps65217_charger_probe()
236 /* Create IRQ threads for charger interrupts */ in tps65217_charger_probe()
240 IRQF_SHARED, "tps65217-charger", in tps65217_charger_probe()
241 charger); in tps65217_charger_probe()
243 dev_err(charger->dev, in tps65217_charger_probe()
250 tps65217_charger_irq(-1, charger); in tps65217_charger_probe()
258 struct tps65217_charger *charger = platform_get_drvdata(pdev); in tps65217_charger_remove() local
260 if (charger->poll_task) in tps65217_charger_remove()
261 kthread_stop(charger->poll_task); in tps65217_charger_remove()
265 { .compatible = "ti,tps65217-charger", },
274 .name = "tps65217-charger",
283 MODULE_DESCRIPTION("TPS65217 battery charger driver");