Lines Matching refs:data

78 	struct ina209_data *data = dev_get_drvdata(dev);
79 struct i2c_client *client = data->client;
80 struct ina209_data *ret = data;
84 mutex_lock(&data->update_lock);
86 if (!data->valid ||
87 time_after(jiffies, data->last_updated + data->update_interval)) {
88 for (i = 0; i < ARRAY_SIZE(data->regs); i++) {
94 data->regs[i] = val;
96 data->last_updated = jiffies;
97 data->valid = true;
100 mutex_unlock(&data->update_lock);
234 struct ina209_data *data = ina209_update_device(dev);
239 if (IS_ERR(data))
240 return PTR_ERR(data);
246 mutex_lock(&data->update_lock);
247 regval = ina209_reg_from_interval(data->regs[INA209_CONFIGURATION],
249 i2c_smbus_write_word_swapped(data->client, INA209_CONFIGURATION,
251 data->regs[INA209_CONFIGURATION] = regval;
252 data->update_interval = ina209_interval_from_reg(regval);
253 mutex_unlock(&data->update_lock);
260 struct ina209_data *data = dev_get_drvdata(dev);
262 return sysfs_emit(buf, "%d\n", data->update_interval);
284 struct ina209_data *data = dev_get_drvdata(dev);
285 struct i2c_client *client = data->client;
294 mutex_lock(&data->update_lock);
300 data->valid = false;
301 mutex_unlock(&data->update_lock);
309 struct ina209_data *data = ina209_update_device(dev);
315 if (IS_ERR(data))
316 return PTR_ERR(data);
322 mutex_lock(&data->update_lock);
323 ret = ina209_to_reg(reg, data->regs[reg], val);
328 i2c_smbus_write_word_swapped(data->client, reg, ret);
329 data->regs[reg] = ret;
331 mutex_unlock(&data->update_lock);
339 struct ina209_data *data = ina209_update_device(dev);
342 if (IS_ERR(data))
343 return PTR_ERR(data);
345 val = ina209_from_reg(attr->index, data->regs[attr->index]);
353 struct ina209_data *data = ina209_update_device(dev);
357 if (IS_ERR(data))
358 return PTR_ERR(data);
360 status = data->regs[INA209_STATUS];
478 struct ina209_data *data)
482 data->config_orig);
484 data->calibration_orig);
488 struct ina209_data *data)
497 data->calibration_orig = reg;
502 data->config_orig = reg;
513 shunt = data->calibration_orig ?
514 40960000 / data->calibration_orig : INA209_SHUNT_DEFAULT;
519 data->update_interval = ina209_interval_from_reg(INA209_CONFIG_DEFAULT);
537 struct ina209_data *data;
544 data = devm_kzalloc(&client->dev, sizeof(*data), GFP_KERNEL);
545 if (!data)
548 i2c_set_clientdata(client, data);
549 data->client = client;
550 mutex_init(&data->update_lock);
552 ret = ina209_init_client(client, data);
558 data, ina209_groups);
567 ina209_restore_conf(client, data);
573 struct ina209_data *data = i2c_get_clientdata(client);
575 ina209_restore_conf(client, data);