• Home
  • Raw
  • Download

Lines Matching refs:charger

30 static unsigned long z2_read_bat(struct z2_charger *charger)  in z2_read_bat()  argument
33 data = i2c_smbus_read_byte_data(charger->client, in z2_read_bat()
34 charger->info->batt_I2C_reg); in z2_read_bat()
38 return data * charger->info->batt_mult / charger->info->batt_div; in z2_read_bat()
45 struct z2_charger *charger = power_supply_get_drvdata(batt_ps); in z2_batt_get_property() local
46 struct z2_battery_info *info = charger->info; in z2_batt_get_property()
50 val->intval = charger->bat_status; in z2_batt_get_property()
57 val->intval = z2_read_bat(charger); in z2_batt_get_property()
85 struct z2_charger *charger = power_supply_get_drvdata(batt_ps); in z2_batt_ext_power_changed() local
87 schedule_work(&charger->bat_work); in z2_batt_ext_power_changed()
90 static void z2_batt_update(struct z2_charger *charger) in z2_batt_update() argument
92 int old_status = charger->bat_status; in z2_batt_update()
94 mutex_lock(&charger->work_lock); in z2_batt_update()
96 charger->bat_status = charger->charge_gpiod ? in z2_batt_update()
97 (gpiod_get_value(charger->charge_gpiod) ? in z2_batt_update()
102 if (old_status != charger->bat_status) { in z2_batt_update()
103 pr_debug("%s: %i -> %i\n", charger->batt_ps->desc->name, in z2_batt_update()
105 charger->bat_status); in z2_batt_update()
106 power_supply_changed(charger->batt_ps); in z2_batt_update()
109 mutex_unlock(&charger->work_lock); in z2_batt_update()
114 struct z2_charger *charger; in z2_batt_work() local
115 charger = container_of(work, struct z2_charger, bat_work); in z2_batt_work()
116 z2_batt_update(charger); in z2_batt_work()
121 struct z2_charger *charger = devid; in z2_charge_switch_irq() local
122 schedule_work(&charger->bat_work); in z2_charge_switch_irq()
126 static int z2_batt_ps_init(struct z2_charger *charger, int props) in z2_batt_ps_init() argument
130 struct z2_battery_info *info = charger->info; in z2_batt_ps_init()
132 if (charger->charge_gpiod) in z2_batt_ps_init()
148 if (charger->charge_gpiod) in z2_batt_ps_init()
160 dev_info(&charger->client->dev, in z2_batt_ps_init()
164 charger->batt_ps_desc.name = Z2_DEFAULT_NAME; in z2_batt_ps_init()
166 charger->batt_ps_desc.name = info->batt_name; in z2_batt_ps_init()
168 charger->batt_ps_desc.properties = prop; in z2_batt_ps_init()
169 charger->batt_ps_desc.num_properties = props; in z2_batt_ps_init()
170 charger->batt_ps_desc.type = POWER_SUPPLY_TYPE_BATTERY; in z2_batt_ps_init()
171 charger->batt_ps_desc.get_property = z2_batt_get_property; in z2_batt_ps_init()
172 charger->batt_ps_desc.external_power_changed = in z2_batt_ps_init()
174 charger->batt_ps_desc.use_for_apm = 1; in z2_batt_ps_init()
184 struct z2_charger *charger; in z2_batt_probe() local
195 charger = kzalloc(sizeof(*charger), GFP_KERNEL); in z2_batt_probe()
196 if (charger == NULL) in z2_batt_probe()
199 charger->bat_status = POWER_SUPPLY_STATUS_UNKNOWN; in z2_batt_probe()
200 charger->info = info; in z2_batt_probe()
201 charger->client = client; in z2_batt_probe()
202 i2c_set_clientdata(client, charger); in z2_batt_probe()
203 psy_cfg.drv_data = charger; in z2_batt_probe()
205 mutex_init(&charger->work_lock); in z2_batt_probe()
207 charger->charge_gpiod = devm_gpiod_get_optional(&client->dev, in z2_batt_probe()
209 if (IS_ERR(charger->charge_gpiod)) { in z2_batt_probe()
211 PTR_ERR(charger->charge_gpiod), in z2_batt_probe()
216 if (charger->charge_gpiod) { in z2_batt_probe()
217 gpiod_set_consumer_name(charger->charge_gpiod, "BATT CHRG"); in z2_batt_probe()
219 irq_set_irq_type(gpiod_to_irq(charger->charge_gpiod), in z2_batt_probe()
221 ret = request_irq(gpiod_to_irq(charger->charge_gpiod), in z2_batt_probe()
223 "AC Detect", charger); in z2_batt_probe()
228 ret = z2_batt_ps_init(charger, props); in z2_batt_probe()
232 INIT_WORK(&charger->bat_work, z2_batt_work); in z2_batt_probe()
234 charger->batt_ps = power_supply_register(&client->dev, in z2_batt_probe()
235 &charger->batt_ps_desc, in z2_batt_probe()
237 if (IS_ERR(charger->batt_ps)) { in z2_batt_probe()
238 ret = PTR_ERR(charger->batt_ps); in z2_batt_probe()
242 schedule_work(&charger->bat_work); in z2_batt_probe()
247 kfree(charger->batt_ps_desc.properties); in z2_batt_probe()
249 if (charger->charge_gpiod) in z2_batt_probe()
250 free_irq(gpiod_to_irq(charger->charge_gpiod), charger); in z2_batt_probe()
252 kfree(charger); in z2_batt_probe()
258 struct z2_charger *charger = i2c_get_clientdata(client); in z2_batt_remove() local
260 cancel_work_sync(&charger->bat_work); in z2_batt_remove()
261 power_supply_unregister(charger->batt_ps); in z2_batt_remove()
263 kfree(charger->batt_ps_desc.properties); in z2_batt_remove()
264 if (charger->charge_gpiod) in z2_batt_remove()
265 free_irq(gpiod_to_irq(charger->charge_gpiod), charger); in z2_batt_remove()
267 kfree(charger); in z2_batt_remove()
276 struct z2_charger *charger = i2c_get_clientdata(client); in z2_batt_suspend() local
278 flush_work(&charger->bat_work); in z2_batt_suspend()
285 struct z2_charger *charger = i2c_get_clientdata(client); in z2_batt_resume() local
287 schedule_work(&charger->bat_work); in z2_batt_resume()