Lines Matching refs:data

11  * (Some conversion-factor data were contributed by Jonathan Teh Soon Yew
107 * in[i]=(data[i+2]*25.0+133)*voltagefactor[i];
178 * A fifth-order polynomial fits the unofficial data (provided by Alex van
181 * Here's the fifth-order fit to the 8-bit data:
191 * look-up table stuff. The unofficial data (see below) have effectively
194 * smooth function fit to the data will allow us to get better precision.
243 * an extra term for a good fit to these inverse data!) and then
299 * For each registered chip, we need to keep some data in memory.
327 static inline int via686a_read_value(struct via686a_data *data, u8 reg)
329 return inb_p(data->addr + reg);
332 static inline void via686a_write_value(struct via686a_data *data, u8 reg,
335 outb_p(value, data->addr + reg);
339 static void via686a_init_device(struct via686a_data *data);
346 struct via686a_data *data = via686a_update_device(dev);
349 return sprintf(buf, "%ld\n", IN_FROM_REG(data->in[nr], nr));
354 struct via686a_data *data = via686a_update_device(dev);
357 return sprintf(buf, "%ld\n", IN_FROM_REG(data->in_min[nr], nr));
362 struct via686a_data *data = via686a_update_device(dev);
365 return sprintf(buf, "%ld\n", IN_FROM_REG(data->in_max[nr], nr));
370 struct via686a_data *data = dev_get_drvdata(dev);
380 mutex_lock(&data->update_lock);
381 data->in_min[nr] = IN_TO_REG(val, nr);
382 via686a_write_value(data, VIA686A_REG_IN_MIN(nr),
383 data->in_min[nr]);
384 mutex_unlock(&data->update_lock);
389 struct via686a_data *data = dev_get_drvdata(dev);
399 mutex_lock(&data->update_lock);
400 data->in_max[nr] = IN_TO_REG(val, nr);
401 via686a_write_value(data, VIA686A_REG_IN_MAX(nr),
402 data->in_max[nr]);
403 mutex_unlock(&data->update_lock);
426 struct via686a_data *data = via686a_update_device(dev);
429 return sprintf(buf, "%ld\n", TEMP_FROM_REG10(data->temp[nr]));
433 struct via686a_data *data = via686a_update_device(dev);
436 return sprintf(buf, "%ld\n", TEMP_FROM_REG(data->temp_over[nr]));
440 struct via686a_data *data = via686a_update_device(dev);
443 return sprintf(buf, "%ld\n", TEMP_FROM_REG(data->temp_hyst[nr]));
448 struct via686a_data *data = dev_get_drvdata(dev);
458 mutex_lock(&data->update_lock);
459 data->temp_over[nr] = TEMP_TO_REG(val);
460 via686a_write_value(data, VIA686A_REG_TEMP_OVER[nr],
461 data->temp_over[nr]);
462 mutex_unlock(&data->update_lock);
468 struct via686a_data *data = dev_get_drvdata(dev);
478 mutex_lock(&data->update_lock);
479 data->temp_hyst[nr] = TEMP_TO_REG(val);
480 via686a_write_value(data, VIA686A_REG_TEMP_HYST[nr],
481 data->temp_hyst[nr]);
482 mutex_unlock(&data->update_lock);
499 struct via686a_data *data = via686a_update_device(dev);
502 return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan[nr],
503 DIV_FROM_REG(data->fan_div[nr])));
507 struct via686a_data *data = via686a_update_device(dev);
511 FAN_FROM_REG(data->fan_min[nr],
512 DIV_FROM_REG(data->fan_div[nr])));
516 struct via686a_data *data = via686a_update_device(dev);
519 return sprintf(buf, "%d\n", DIV_FROM_REG(data->fan_div[nr]));
523 struct via686a_data *data = dev_get_drvdata(dev);
533 mutex_lock(&data->update_lock);
534 data->fan_min[nr] = FAN_TO_REG(val, DIV_FROM_REG(data->fan_div[nr]));
535 via686a_write_value(data, VIA686A_REG_FAN_MIN(nr+1), data->fan_min[nr]);
536 mutex_unlock(&data->update_lock);
541 struct via686a_data *data = dev_get_drvdata(dev);
552 mutex_lock(&data->update_lock);
553 old = via686a_read_value(data, VIA686A_REG_FANDIV);
554 data->fan_div[nr] = DIV_TO_REG(val);
555 old = (old & 0x0f) | (data->fan_div[1] << 6) | (data->fan_div[0] << 4);
556 via686a_write_value(data, VIA686A_REG_FANDIV, old);
557 mutex_unlock(&data->update_lock);
572 struct via686a_data *data = via686a_update_device(dev);
573 return sprintf(buf, "%u\n", data->alarms);
582 struct via686a_data *data = via686a_update_device(dev);
583 return sprintf(buf, "%u\n", (data->alarms >> bitnr) & 1);
599 struct via686a_data *data = dev_get_drvdata(dev);
600 return sprintf(buf, "%s\n", data->name);
668 struct via686a_data *data;
681 data = devm_kzalloc(&pdev->dev, sizeof(struct via686a_data),
683 if (!data)
686 platform_set_drvdata(pdev, data);
687 data->addr = res->start;
688 data->name = "via686a";
689 mutex_init(&data->update_lock);
692 via686a_init_device(data);
699 data->hwmon_dev = hwmon_device_register(&pdev->dev);
700 if (IS_ERR(data->hwmon_dev)) {
701 err = PTR_ERR(data->hwmon_dev);
714 struct via686a_data *data = platform_get_drvdata(pdev);
716 hwmon_device_unregister(data->hwmon_dev);
722 static void via686a_update_fan_div(struct via686a_data *data)
724 int reg = via686a_read_value(data, VIA686A_REG_FANDIV);
725 data->fan_div[0] = (reg >> 4) & 0x03;
726 data->fan_div[1] = reg >> 6;
729 static void via686a_init_device(struct via686a_data *data)
734 reg = via686a_read_value(data, VIA686A_REG_CONFIG);
735 via686a_write_value(data, VIA686A_REG_CONFIG, (reg | 0x01) & 0x7F);
738 reg = via686a_read_value(data, VIA686A_REG_TEMP_MODE);
739 via686a_write_value(data, VIA686A_REG_TEMP_MODE,
744 via686a_update_fan_div(data);
749 struct via686a_data *data = dev_get_drvdata(dev);
752 mutex_lock(&data->update_lock);
754 if (time_after(jiffies, data->last_updated + HZ + HZ / 2)
755 || !data->valid) {
757 data->in[i] =
758 via686a_read_value(data, VIA686A_REG_IN(i));
759 data->in_min[i] = via686a_read_value(data,
762 data->in_max[i] =
763 via686a_read_value(data, VIA686A_REG_IN_MAX(i));
766 data->fan[i - 1] =
767 via686a_read_value(data, VIA686A_REG_FAN(i));
768 data->fan_min[i - 1] = via686a_read_value(data,
772 data->temp[i] = via686a_read_value(data,
774 data->temp_over[i] =
775 via686a_read_value(data,
777 data->temp_hyst[i] =
778 via686a_read_value(data,
787 data->temp[0] |= (via686a_read_value(data,
790 data->temp[1] |=
791 (via686a_read_value(data, VIA686A_REG_TEMP_LOW23) &
793 data->temp[2] |=
794 (via686a_read_value(data, VIA686A_REG_TEMP_LOW23) &
797 via686a_update_fan_div(data);
798 data->alarms =
799 via686a_read_value(data,
801 (via686a_read_value(data, VIA686A_REG_ALARM2) << 8);
802 data->last_updated = jiffies;
803 data->valid = 1;
806 mutex_unlock(&data->update_lock);
808 return data;