Lines Matching refs:charger

32 static unsigned long z2_read_bat(struct z2_charger *charger)
35 data = i2c_smbus_read_byte_data(charger->client,
36 charger->info->batt_I2C_reg);
40 return data * charger->info->batt_mult / charger->info->batt_div;
47 struct z2_charger *charger = container_of(batt_ps, struct z2_charger,
49 struct z2_battery_info *info = charger->info;
53 val->intval = charger->bat_status;
60 val->intval = z2_read_bat(charger);
88 struct z2_charger *charger = container_of(batt_ps, struct z2_charger,
90 schedule_work(&charger->bat_work);
93 static void z2_batt_update(struct z2_charger *charger)
95 int old_status = charger->bat_status;
98 info = charger->info;
100 mutex_lock(&charger->work_lock);
102 charger->bat_status = (info->charge_gpio >= 0) ?
108 if (old_status != charger->bat_status) {
109 pr_debug("%s: %i -> %i\n", charger->batt_ps.name, old_status,
110 charger->bat_status);
111 power_supply_changed(&charger->batt_ps);
114 mutex_unlock(&charger->work_lock);
119 struct z2_charger *charger;
120 charger = container_of(work, struct z2_charger, bat_work);
121 z2_batt_update(charger);
126 struct z2_charger *charger = devid;
127 schedule_work(&charger->bat_work);
131 static int z2_batt_ps_init(struct z2_charger *charger, int props)
135 struct z2_battery_info *info = charger->info;
165 dev_info(&charger->client->dev,
169 charger->batt_ps.name = Z2_DEFAULT_NAME;
171 charger->batt_ps.name = info->batt_name;
173 charger->batt_ps.properties = prop;
174 charger->batt_ps.num_properties = props;
175 charger->batt_ps.type = POWER_SUPPLY_TYPE_BATTERY;
176 charger->batt_ps.get_property = z2_batt_get_property;
177 charger->batt_ps.external_power_changed = z2_batt_ext_power_changed;
178 charger->batt_ps.use_for_apm = 1;
188 struct z2_charger *charger;
198 charger = kzalloc(sizeof(*charger), GFP_KERNEL);
199 if (charger == NULL)
202 charger->bat_status = POWER_SUPPLY_STATUS_UNKNOWN;
203 charger->info = info;
204 charger->client = client;
205 i2c_set_clientdata(client, 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 ret = power_supply_register(&client->dev, &charger->batt_ps);
237 schedule_work(&charger->bat_work);
242 kfree(charger->batt_ps.properties);
245 free_irq(gpio_to_irq(info->charge_gpio), charger);
250 kfree(charger);
256 struct z2_charger *charger = i2c_get_clientdata(client);
257 struct z2_battery_info *info = charger->info;
259 cancel_work_sync(&charger->bat_work);
260 power_supply_unregister(&charger->batt_ps);
262 kfree(charger->batt_ps.properties);
264 free_irq(gpio_to_irq(info->charge_gpio), charger);
268 kfree(charger);
277 struct z2_charger *charger = i2c_get_clientdata(client);
279 flush_work_sync(&charger->bat_work);
286 struct z2_charger *charger = i2c_get_clientdata(client);
288 schedule_work(&charger->bat_work);