Lines Matching refs:data
112 #define BEEP_MASK_TO_REG(val) ((val) & 0x7f & data->alarm_mask)
164 struct gl518_data *data = dev_get_drvdata(dev); in gl518_update_device() local
165 struct i2c_client *client = data->client; in gl518_update_device()
168 mutex_lock(&data->update_lock); in gl518_update_device()
170 if (time_after(jiffies, data->last_updated + HZ + HZ / 2) in gl518_update_device()
171 || !data->valid) { in gl518_update_device()
174 data->alarms = gl518_read_value(client, GL518_REG_INT); in gl518_update_device()
175 data->beep_mask = gl518_read_value(client, GL518_REG_ALARM); in gl518_update_device()
178 data->voltage_min[0] = val & 0xff; in gl518_update_device()
179 data->voltage_max[0] = (val >> 8) & 0xff; in gl518_update_device()
181 data->voltage_min[1] = val & 0xff; in gl518_update_device()
182 data->voltage_max[1] = (val >> 8) & 0xff; in gl518_update_device()
184 data->voltage_min[2] = val & 0xff; in gl518_update_device()
185 data->voltage_max[2] = (val >> 8) & 0xff; in gl518_update_device()
187 data->voltage_min[3] = val & 0xff; in gl518_update_device()
188 data->voltage_max[3] = (val >> 8) & 0xff; in gl518_update_device()
191 data->fan_in[0] = (val >> 8) & 0xff; in gl518_update_device()
192 data->fan_in[1] = val & 0xff; in gl518_update_device()
195 data->fan_min[0] = (val >> 8) & 0xff; in gl518_update_device()
196 data->fan_min[1] = val & 0xff; in gl518_update_device()
198 data->temp_in = gl518_read_value(client, GL518_REG_TEMP_IN); in gl518_update_device()
199 data->temp_max = in gl518_update_device()
201 data->temp_hyst = in gl518_update_device()
205 data->fan_div[0] = (val >> 6) & 0x03; in gl518_update_device()
206 data->fan_div[1] = (val >> 4) & 0x03; in gl518_update_device()
207 data->fan_auto1 = (val >> 3) & 0x01; in gl518_update_device()
209 data->alarms &= data->alarm_mask; in gl518_update_device()
212 data->beep_enable = (val >> 2) & 1; in gl518_update_device()
214 if (data->type != gl518sm_r00) { in gl518_update_device()
215 data->voltage_in[0] = in gl518_update_device()
217 data->voltage_in[1] = in gl518_update_device()
219 data->voltage_in[2] = in gl518_update_device()
222 data->voltage_in[3] = in gl518_update_device()
225 data->last_updated = jiffies; in gl518_update_device()
226 data->valid = 1; in gl518_update_device()
229 mutex_unlock(&data->update_lock); in gl518_update_device()
231 return data; in gl518_update_device()
242 struct gl518_data *data = gl518_update_device(dev); \
243 return sprintf(buf, "%d\n", type##_FROM_REG(data->value)); \
270 struct gl518_data *data = gl518_update_device(dev); in show_fan_input() local
271 return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan_in[nr], in show_fan_input()
272 DIV_FROM_REG(data->fan_div[nr]))); in show_fan_input()
279 struct gl518_data *data = gl518_update_device(dev); in show_fan_min() local
280 return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan_min[nr], in show_fan_min()
281 DIV_FROM_REG(data->fan_div[nr]))); in show_fan_min()
288 struct gl518_data *data = gl518_update_device(dev); in show_fan_div() local
289 return sprintf(buf, "%d\n", DIV_FROM_REG(data->fan_div[nr])); in show_fan_div()
297 struct gl518_data *data = dev_get_drvdata(dev); \
298 struct i2c_client *client = data->client; \
304 mutex_lock(&data->update_lock); \
305 data->value = type##_TO_REG(val); \
306 gl518_write_value(client, reg, data->value); \
307 mutex_unlock(&data->update_lock); \
316 struct gl518_data *data = dev_get_drvdata(dev); \
317 struct i2c_client *client = data->client; \
324 mutex_lock(&data->update_lock); \
326 data->value = type##_TO_REG(val); \
327 regvalue = (regvalue & ~mask) | (data->value << shift); \
329 mutex_unlock(&data->update_lock); \
355 struct gl518_data *data = dev_get_drvdata(dev); in set_fan_min() local
356 struct i2c_client *client = data->client; in set_fan_min()
366 mutex_lock(&data->update_lock); in set_fan_min()
368 data->fan_min[nr] = FAN_TO_REG(val, DIV_FROM_REG(data->fan_div[nr])); in set_fan_min()
370 | (data->fan_min[nr] << (8 * (1 - nr))); in set_fan_min()
373 data->beep_mask = gl518_read_value(client, GL518_REG_ALARM); in set_fan_min()
374 if (data->fan_min[nr] == 0) in set_fan_min()
375 data->alarm_mask &= ~(0x20 << nr); in set_fan_min()
377 data->alarm_mask |= (0x20 << nr); in set_fan_min()
378 data->beep_mask &= data->alarm_mask; in set_fan_min()
379 gl518_write_value(client, GL518_REG_ALARM, data->beep_mask); in set_fan_min()
381 mutex_unlock(&data->update_lock); in set_fan_min()
388 struct gl518_data *data = dev_get_drvdata(dev); in set_fan_div() local
389 struct i2c_client *client = data->client; in set_fan_div()
419 mutex_lock(&data->update_lock); in set_fan_div()
421 data->fan_div[nr] = val; in set_fan_div()
423 | (data->fan_div[nr] << (6 - 2 * nr)); in set_fan_div()
425 mutex_unlock(&data->update_lock); in set_fan_div()
466 struct gl518_data *data = gl518_update_device(dev); in show_alarm() local
467 return sprintf(buf, "%u\n", (data->alarms >> bitnr) & 1); in show_alarm()
482 struct gl518_data *data = gl518_update_device(dev); in show_beep() local
483 return sprintf(buf, "%u\n", (data->beep_mask >> bitnr) & 1); in show_beep()
489 struct gl518_data *data = dev_get_drvdata(dev); in set_beep() local
490 struct i2c_client *client = data->client; in set_beep()
502 mutex_lock(&data->update_lock); in set_beep()
503 data->beep_mask = gl518_read_value(client, GL518_REG_ALARM); in set_beep()
505 data->beep_mask |= (1 << bitnr); in set_beep()
507 data->beep_mask &= ~(1 << bitnr); in set_beep()
508 gl518_write_value(client, GL518_REG_ALARM, data->beep_mask); in set_beep()
509 mutex_unlock(&data->update_lock); in set_beep()
633 struct gl518_data *data; in gl518_probe() local
636 data = devm_kzalloc(dev, sizeof(struct gl518_data), GFP_KERNEL); in gl518_probe()
637 if (!data) in gl518_probe()
640 data->client = client; in gl518_probe()
642 data->type = revision == 0x80 ? gl518sm_r80 : gl518sm_r00; in gl518_probe()
643 mutex_init(&data->update_lock); in gl518_probe()
646 data->alarm_mask = 0xff; in gl518_probe()
650 data->groups[0] = &gl518_group; in gl518_probe()
651 if (data->type == gl518sm_r80) in gl518_probe()
652 data->groups[1] = &gl518_group_r80; in gl518_probe()
655 data, data->groups); in gl518_probe()