Lines Matching defs:data

11  * (Some conversion-factor data were contributed by Jonathan Teh Soon Yew
109 * in[i]=(data[i+2]*25.0+133)*voltagefactor[i];
180 * A fifth-order polynomial fits the unofficial data (provided by Alex van
183 * Here's the fifth-order fit to the 8-bit data:
193 * look-up table stuff. The unofficial data (see below) have effectively
196 * smooth function fit to the data will allow us to get better precision.
245 * an extra term for a good fit to these inverse data!) and then
301 * For each registered chip, we need to keep some data in memory.
326 static inline int via686a_read_value(struct via686a_data *data, u8 reg)
328 return inb_p(data->addr + reg);
331 static inline void via686a_write_value(struct via686a_data *data, u8 reg,
334 outb_p(value, data->addr + reg);
337 static void via686a_update_fan_div(struct via686a_data *data)
339 int reg = via686a_read_value(data, VIA686A_REG_FANDIV);
340 data->fan_div[0] = (reg >> 4) & 0x03;
341 data->fan_div[1] = reg >> 6;
346 struct via686a_data *data = dev_get_drvdata(dev);
349 mutex_lock(&data->update_lock);
351 if (time_after(jiffies, data->last_updated + HZ + HZ / 2)
352 || !data->valid) {
354 data->in[i] =
355 via686a_read_value(data, VIA686A_REG_IN(i));
356 data->in_min[i] = via686a_read_value(data,
359 data->in_max[i] =
360 via686a_read_value(data, VIA686A_REG_IN_MAX(i));
363 data->fan[i - 1] =
364 via686a_read_value(data, VIA686A_REG_FAN(i));
365 data->fan_min[i - 1] = via686a_read_value(data,
369 data->temp[i] = via686a_read_value(data,
371 data->temp_over[i] =
372 via686a_read_value(data,
374 data->temp_hyst[i] =
375 via686a_read_value(data,
384 data->temp[0] |= (via686a_read_value(data,
387 data->temp[1] |=
388 (via686a_read_value(data, VIA686A_REG_TEMP_LOW23) &
390 data->temp[2] |=
391 (via686a_read_value(data, VIA686A_REG_TEMP_LOW23) &
394 via686a_update_fan_div(data);
395 data->alarms =
396 via686a_read_value(data,
398 (via686a_read_value(data, VIA686A_REG_ALARM2) << 8);
399 data->last_updated = jiffies;
400 data->valid = true;
403 mutex_unlock(&data->update_lock);
405 return data;
413 struct via686a_data *data = via686a_update_device(dev);
416 return sprintf(buf, "%ld\n", IN_FROM_REG(data->in[nr], nr));
421 struct via686a_data *data = via686a_update_device(dev);
424 return sprintf(buf, "%ld\n", IN_FROM_REG(data->in_min[nr], nr));
429 struct via686a_data *data = via686a_update_device(dev);
432 return sprintf(buf, "%ld\n", IN_FROM_REG(data->in_max[nr], nr));
437 struct via686a_data *data = dev_get_drvdata(dev);
447 mutex_lock(&data->update_lock);
448 data->in_min[nr] = IN_TO_REG(val, nr);
449 via686a_write_value(data, VIA686A_REG_IN_MIN(nr),
450 data->in_min[nr]);
451 mutex_unlock(&data->update_lock);
456 struct via686a_data *data = dev_get_drvdata(dev);
466 mutex_lock(&data->update_lock);
467 data->in_max[nr] = IN_TO_REG(val, nr);
468 via686a_write_value(data, VIA686A_REG_IN_MAX(nr),
469 data->in_max[nr]);
470 mutex_unlock(&data->update_lock);
493 struct via686a_data *data = via686a_update_device(dev);
496 return sprintf(buf, "%ld\n", TEMP_FROM_REG10(data->temp[nr]));
500 struct via686a_data *data = via686a_update_device(dev);
503 return sprintf(buf, "%ld\n", TEMP_FROM_REG(data->temp_over[nr]));
507 struct via686a_data *data = via686a_update_device(dev);
510 return sprintf(buf, "%ld\n", TEMP_FROM_REG(data->temp_hyst[nr]));
515 struct via686a_data *data = dev_get_drvdata(dev);
525 mutex_lock(&data->update_lock);
526 data->temp_over[nr] = TEMP_TO_REG(val);
527 via686a_write_value(data, VIA686A_REG_TEMP_OVER[nr],
528 data->temp_over[nr]);
529 mutex_unlock(&data->update_lock);
535 struct via686a_data *data = dev_get_drvdata(dev);
545 mutex_lock(&data->update_lock);
546 data->temp_hyst[nr] = TEMP_TO_REG(val);
547 via686a_write_value(data, VIA686A_REG_TEMP_HYST[nr],
548 data->temp_hyst[nr]);
549 mutex_unlock(&data->update_lock);
566 struct via686a_data *data = via686a_update_device(dev);
569 return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan[nr],
570 DIV_FROM_REG(data->fan_div[nr])));
574 struct via686a_data *data = via686a_update_device(dev);
578 FAN_FROM_REG(data->fan_min[nr],
579 DIV_FROM_REG(data->fan_div[nr])));
583 struct via686a_data *data = via686a_update_device(dev);
586 return sprintf(buf, "%d\n", DIV_FROM_REG(data->fan_div[nr]));
590 struct via686a_data *data = dev_get_drvdata(dev);
600 mutex_lock(&data->update_lock);
601 data->fan_min[nr] = FAN_TO_REG(val, DIV_FROM_REG(data->fan_div[nr]));
602 via686a_write_value(data, VIA686A_REG_FAN_MIN(nr+1), data->fan_min[nr]);
603 mutex_unlock(&data->update_lock);
608 struct via686a_data *data = dev_get_drvdata(dev);
619 mutex_lock(&data->update_lock);
620 old = via686a_read_value(data, VIA686A_REG_FANDIV);
621 data->fan_div[nr] = DIV_TO_REG(val);
622 old = (old & 0x0f) | (data->fan_div[1] << 6) | (data->fan_div[0] << 4);
623 via686a_write_value(data, VIA686A_REG_FANDIV, old);
624 mutex_unlock(&data->update_lock);
639 struct via686a_data *data = via686a_update_device(dev);
640 return sprintf(buf, "%u\n", data->alarms);
649 struct via686a_data *data = via686a_update_device(dev);
650 return sprintf(buf, "%u\n", (data->alarms >> bitnr) & 1);
666 struct via686a_data *data = dev_get_drvdata(dev);
667 return sprintf(buf, "%s\n", data->name);
724 static void via686a_init_device(struct via686a_data *data)
729 reg = via686a_read_value(data, VIA686A_REG_CONFIG);
730 via686a_write_value(data, VIA686A_REG_CONFIG, (reg | 0x01) & 0x7F);
733 reg = via686a_read_value(data, VIA686A_REG_TEMP_MODE);
734 via686a_write_value(data, VIA686A_REG_TEMP_MODE,
739 via686a_update_fan_div(data);
745 struct via686a_data *data;
758 data = devm_kzalloc(&pdev->dev, sizeof(struct via686a_data),
760 if (!data)
763 platform_set_drvdata(pdev, data);
764 data->addr = res->start;
765 data->name = DRIVER_NAME;
766 mutex_init(&data->update_lock);
769 via686a_init_device(data);
776 data->hwmon_dev = hwmon_device_register(&pdev->dev);
777 if (IS_ERR(data->hwmon_dev)) {
778 err = PTR_ERR(data->hwmon_dev);
791 struct via686a_data *data = platform_get_drvdata(pdev);
793 hwmon_device_unregister(data->hwmon_dev);