Lines Matching defs:charger

29 static unsigned long z2_read_bat(struct z2_charger *charger)
32 data = i2c_smbus_read_byte_data(charger->client,
33 charger->info->batt_I2C_reg);
37 return data * charger->info->batt_mult / charger->info->batt_div;
44 struct z2_charger *charger = power_supply_get_drvdata(batt_ps);
45 struct z2_battery_info *info = charger->info;
49 val->intval = charger->bat_status;
56 val->intval = z2_read_bat(charger);
84 struct z2_charger *charger = power_supply_get_drvdata(batt_ps);
86 schedule_work(&charger->bat_work);
89 static void z2_batt_update(struct z2_charger *charger)
91 int old_status = charger->bat_status;
94 info = charger->info;
96 mutex_lock(&charger->work_lock);
98 charger->bat_status = (info->charge_gpio >= 0) ?
104 if (old_status != charger->bat_status) {
105 pr_debug("%s: %i -> %i\n", charger->batt_ps->desc->name,
107 charger->bat_status);
108 power_supply_changed(charger->batt_ps);
111 mutex_unlock(&charger->work_lock);
116 struct z2_charger *charger;
117 charger = container_of(work, struct z2_charger, bat_work);
118 z2_batt_update(charger);
123 struct z2_charger *charger = devid;
124 schedule_work(&charger->bat_work);
128 static int z2_batt_ps_init(struct z2_charger *charger, int props)
132 struct z2_battery_info *info = charger->info;
162 dev_info(&charger->client->dev,
166 charger->batt_ps_desc.name = Z2_DEFAULT_NAME;
168 charger->batt_ps_desc.name = info->batt_name;
170 charger->batt_ps_desc.properties = prop;
171 charger->batt_ps_desc.num_properties = props;
172 charger->batt_ps_desc.type = POWER_SUPPLY_TYPE_BATTERY;
173 charger->batt_ps_desc.get_property = z2_batt_get_property;
174 charger->batt_ps_desc.external_power_changed =
176 charger->batt_ps_desc.use_for_apm = 1;
186 struct z2_charger *charger;
197 charger = kzalloc(sizeof(*charger), GFP_KERNEL);
198 if (charger == NULL)
201 charger->bat_status = POWER_SUPPLY_STATUS_UNKNOWN;
202 charger->info = info;
203 charger->client = client;
204 i2c_set_clientdata(client, charger);
205 psy_cfg.drv_data = charger;
207 mutex_init(&charger->work_lock);
222 "AC Detect", charger);
227 ret = z2_batt_ps_init(charger, props);
231 INIT_WORK(&charger->bat_work, z2_batt_work);
233 charger->batt_ps = power_supply_register(&client->dev,
234 &charger->batt_ps_desc,
236 if (IS_ERR(charger->batt_ps)) {
237 ret = PTR_ERR(charger->batt_ps);
241 schedule_work(&charger->bat_work);
246 kfree(charger->batt_ps_desc.properties);
249 free_irq(gpio_to_irq(info->charge_gpio), charger);
254 kfree(charger);
260 struct z2_charger *charger = i2c_get_clientdata(client);
261 struct z2_battery_info *info = charger->info;
263 cancel_work_sync(&charger->bat_work);
264 power_supply_unregister(charger->batt_ps);
266 kfree(charger->batt_ps_desc.properties);
268 free_irq(gpio_to_irq(info->charge_gpio), charger);
272 kfree(charger);
281 struct z2_charger *charger = i2c_get_clientdata(client);
283 flush_work(&charger->bat_work);
290 struct z2_charger *charger = i2c_get_clientdata(client);
292 schedule_work(&charger->bat_work);