Lines Matching refs:data
117 * Driver data (common to all clients)
132 * Client data (each client gets its own)
178 struct tmp401_data *data)
181 int num_regs = data->kind == tmp411 ? 6 : 4;
182 int num_sensors = data->kind == tmp432 ? 3 : 2;
188 regaddr = data->kind == tmp432 ?
200 data->temp[j][i] = j == 3 ? val << 8 : val;
208 struct tmp401_data *data = dev_get_drvdata(dev);
209 struct i2c_client *client = data->client;
210 struct tmp401_data *ret = data;
214 mutex_lock(&data->update_lock);
216 next_update = data->last_updated +
217 msecs_to_jiffies(data->update_interval);
218 if (time_after(jiffies, next_update) || !data->valid) {
219 if (data->kind != tmp432) {
229 data->status[0] =
231 data->status[1] =
234 data->status[2] =
237 data->status[3] = val & (TMP401_STATUS_LOCAL_CRIT
240 for (i = 0; i < ARRAY_SIZE(data->status); i++) {
247 data->status[i] = val;
256 data->config = val;
257 val = tmp401_update_device_reg16(client, data);
267 data->temp_crit_hyst = val;
269 data->last_updated = jiffies;
270 data->valid = 1;
274 mutex_unlock(&data->update_lock);
283 struct tmp401_data *data = tmp401_update_device(dev);
285 if (IS_ERR(data))
286 return PTR_ERR(data);
289 tmp401_register_to_temp(data->temp[nr][index], data->config));
297 struct tmp401_data *data = tmp401_update_device(dev);
299 if (IS_ERR(data))
300 return PTR_ERR(data);
302 mutex_lock(&data->update_lock);
303 temp = tmp401_register_to_temp(data->temp[3][index], data->config);
304 temp -= data->temp_crit_hyst * 1000;
305 mutex_unlock(&data->update_lock);
315 struct tmp401_data *data = tmp401_update_device(dev);
317 if (IS_ERR(data))
318 return PTR_ERR(data);
320 return sprintf(buf, "%d\n", !!(data->status[nr] & mask));
329 struct tmp401_data *data = dev_get_drvdata(dev);
330 struct i2c_client *client = data->client;
338 reg = tmp401_temp_to_register(val, data->config, nr == 3 ? 8 : 4);
340 mutex_lock(&data->update_lock);
342 regaddr = data->kind == tmp432 ? TMP432_TEMP_MSB_WRITE[nr][index]
347 /* Hardware expects big endian data --> use _swapped */
350 data->temp[nr][index] = reg;
352 mutex_unlock(&data->update_lock);
362 struct tmp401_data *data = tmp401_update_device(dev);
366 if (IS_ERR(data))
367 return PTR_ERR(data);
372 if (data->config & TMP401_CONFIG_RANGE)
377 mutex_lock(&data->update_lock);
378 temp = tmp401_register_to_temp(data->temp[3][index], data->config);
382 i2c_smbus_write_byte_data(data->client, TMP401_TEMP_CRIT_HYST,
385 data->temp_crit_hyst = reg;
387 mutex_unlock(&data->update_lock);
401 struct tmp401_data *data = dev_get_drvdata(dev);
402 struct i2c_client *client = data->client;
414 mutex_lock(&data->update_lock);
416 data->valid = 0;
417 mutex_unlock(&data->update_lock);
425 struct tmp401_data *data = dev_get_drvdata(dev);
427 return sprintf(buf, "%u\n", data->update_interval);
434 struct tmp401_data *data = dev_get_drvdata(dev);
435 struct i2c_client *client = data->client;
453 mutex_lock(&data->update_lock);
455 data->update_interval = (1 << (7 - rate)) * 125;
456 mutex_unlock(&data->update_lock);
592 static int tmp401_init_client(struct tmp401_data *data,
599 data->update_interval = 500;
693 struct tmp401_data *data;
696 data = devm_kzalloc(dev, sizeof(struct tmp401_data), GFP_KERNEL);
697 if (!data)
700 data->client = client;
701 mutex_init(&data->update_lock);
702 data->kind = i2c_match_id(tmp401_id, client)->driver_data;
705 status = tmp401_init_client(data, client);
710 data->groups[groups++] = &tmp401_group;
713 if (data->kind == tmp411)
714 data->groups[groups++] = &tmp411_group;
717 if (data->kind == tmp432)
718 data->groups[groups++] = &tmp432_group;
720 if (data->kind == tmp461)
721 data->groups[groups++] = &tmp461_group;
724 data, data->groups);
728 dev_info(dev, "Detected TI %s chip\n", names[data->kind]);