Lines Matching refs:data

56 /* Each client has this additional data */
78 struct thmc50_data *data = dev_get_drvdata(dev);
79 struct i2c_client *client = data->client;
80 int timeout = HZ / 5 + (data->type == thmc50 ? HZ : 0);
82 mutex_lock(&data->update_lock);
84 if (time_after(jiffies, data->last_updated + timeout)
85 || !data->valid) {
87 int temps = data->has_temp3 ? 3 : 2;
94 data->temp_input[i] = i2c_smbus_read_byte_data(client,
96 data->temp_max[i] = i2c_smbus_read_byte_data(client,
98 data->temp_min[i] = i2c_smbus_read_byte_data(client,
100 data->temp_critical[i] =
105 data->analog_out =
107 data->alarms =
109 data->last_updated = jiffies;
110 data->valid = true;
113 mutex_unlock(&data->update_lock);
115 return data;
121 struct thmc50_data *data = thmc50_update_device(dev);
122 return sprintf(buf, "%d\n", data->analog_out);
129 struct thmc50_data *data = dev_get_drvdata(dev);
130 struct i2c_client *client = data->client;
139 mutex_lock(&data->update_lock);
140 data->analog_out = clamp_val(tmp, 0, 255);
142 data->analog_out);
145 if (data->analog_out == 0)
151 mutex_unlock(&data->update_lock);
167 struct thmc50_data *data = thmc50_update_device(dev);
168 return sprintf(buf, "%d\n", data->temp_input[nr] * 1000);
175 struct thmc50_data *data = thmc50_update_device(dev);
176 return sprintf(buf, "%d\n", data->temp_min[nr] * 1000);
184 struct thmc50_data *data = dev_get_drvdata(dev);
185 struct i2c_client *client = data->client;
193 mutex_lock(&data->update_lock);
194 data->temp_min[nr] = clamp_val(val / 1000, -128, 127);
196 data->temp_min[nr]);
197 mutex_unlock(&data->update_lock);
205 struct thmc50_data *data = thmc50_update_device(dev);
206 return sprintf(buf, "%d\n", data->temp_max[nr] * 1000);
214 struct thmc50_data *data = dev_get_drvdata(dev);
215 struct i2c_client *client = data->client;
223 mutex_lock(&data->update_lock);
224 data->temp_max[nr] = clamp_val(val / 1000, -128, 127);
226 data->temp_max[nr]);
227 mutex_unlock(&data->update_lock);
235 struct thmc50_data *data = thmc50_update_device(dev);
236 return sprintf(buf, "%d\n", data->temp_critical[nr] * 1000);
243 struct thmc50_data *data = thmc50_update_device(dev);
245 return sprintf(buf, "%u\n", (data->alarms >> index) & 1);
317 pr_debug("thmc50: detect failed, smbus byte data not supported!\n");
360 static void thmc50_init_client(struct thmc50_data *data)
362 struct i2c_client *client = data->client;
365 data->analog_out = i2c_smbus_read_byte_data(client,
368 if (data->analog_out == 0) {
369 data->analog_out = 1;
371 data->analog_out);
375 if (data->type == adm1022 && (config & (1 << 7)))
376 data->has_temp3 = 1;
385 struct thmc50_data *data;
389 data = devm_kzalloc(dev, sizeof(struct thmc50_data), GFP_KERNEL);
390 if (!data)
393 data->client = client;
394 data->type = i2c_match_id(thmc50_id, client)->driver_data;
395 mutex_init(&data->update_lock);
397 thmc50_init_client(data);
400 data->groups[idx++] = &thmc50_group;
403 if (data->has_temp3)
404 data->groups[idx++] = &temp3_group;
407 data, data->groups);