• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/hwmon/

Lines Matching refs:data

236 static inline u8 vt1211_read8(struct vt1211_data *data, u8 reg)
238 return inb(data->addr + reg);
241 static inline void vt1211_write8(struct vt1211_data *data, u8 reg, u8 val)
243 outb(val, data->addr + reg);
248 struct vt1211_data *data = dev_get_drvdata(dev);
251 mutex_lock(&data->update_lock);
254 if (time_after(jiffies, data->last_updated + HZ) || !data->valid) {
256 data->vid = vt1211_read8(data, VT1211_REG_VID) & 0x1f;
259 for (ix = 0; ix < ARRAY_SIZE(data->in); ix++) {
260 if (ISVOLT(ix, data->uch_config)) {
261 data->in[ix] = vt1211_read8(data,
263 data->in_min[ix] = vt1211_read8(data,
265 data->in_max[ix] = vt1211_read8(data,
271 for (ix = 0; ix < ARRAY_SIZE(data->temp); ix++) {
272 if (ISTEMP(ix, data->uch_config)) {
273 data->temp[ix] = vt1211_read8(data,
275 data->temp_max[ix] = vt1211_read8(data,
277 data->temp_hyst[ix] = vt1211_read8(data,
283 for (ix = 0; ix < ARRAY_SIZE(data->fan); ix++) {
284 data->fan[ix] = vt1211_read8(data,
286 data->fan_min[ix] = vt1211_read8(data,
288 data->pwm[ix] = vt1211_read8(data,
291 val = vt1211_read8(data, VT1211_REG_FAN_DIV);
292 data->fan_div[0] = (val >> 4) & 3;
293 data->fan_div[1] = (val >> 6) & 3;
294 data->fan_ctl = val & 0xf;
296 val = vt1211_read8(data, VT1211_REG_PWM_CTL);
297 data->pwm_ctl[0] = val & 0xf;
298 data->pwm_ctl[1] = (val >> 4) & 0xf;
300 data->pwm_clk = vt1211_read8(data, VT1211_REG_PWM_CLK);
303 data->pwm_auto_pwm[0][1] = vt1211_read8(data,
305 data->pwm_auto_pwm[0][2] = vt1211_read8(data,
307 data->pwm_auto_pwm[1][1] = vt1211_read8(data,
309 data->pwm_auto_pwm[1][2] = vt1211_read8(data,
311 for (ix = 0; ix < ARRAY_SIZE(data->pwm_auto_temp); ix++) {
312 data->pwm_auto_temp[ix] = vt1211_read8(data,
317 data->alarms = (vt1211_read8(data, VT1211_REG_ALARM2) << 8) |
318 vt1211_read8(data, VT1211_REG_ALARM1);
320 data->last_updated = jiffies;
321 data->valid = 1;
324 mutex_unlock(&data->update_lock);
326 return data;
342 struct vt1211_data *data = vt1211_update_device(dev);
351 res = IN_FROM_REG(ix, data->in[ix]);
354 res = IN_FROM_REG(ix, data->in_min[ix]);
357 res = IN_FROM_REG(ix, data->in_max[ix]);
360 res = (data->alarms >> bitalarmin[ix]) & 1;
373 struct vt1211_data *data = dev_get_drvdata(dev);
380 mutex_lock(&data->update_lock);
383 data->in_min[ix] = IN_TO_REG(ix, val);
384 vt1211_write8(data, VT1211_REG_IN_MIN(ix), data->in_min[ix]);
387 data->in_max[ix] = IN_TO_REG(ix, val);
388 vt1211_write8(data, VT1211_REG_IN_MAX(ix), data->in_max[ix]);
393 mutex_unlock(&data->update_lock);
411 struct vt1211_data *data = vt1211_update_device(dev);
420 res = TEMP_FROM_REG(ix, data->temp[ix]);
423 res = TEMP_FROM_REG(ix, data->temp_max[ix]);
426 res = TEMP_FROM_REG(ix, data->temp_hyst[ix]);
429 res = (data->alarms >> bitalarmtemp[ix]) & 1;
442 struct vt1211_data *data = dev_get_drvdata(dev);
449 mutex_lock(&data->update_lock);
452 data->temp_max[ix] = TEMP_TO_REG(ix, val);
453 vt1211_write8(data, regtempmax[ix],
454 data->temp_max[ix]);
457 data->temp_hyst[ix] = TEMP_TO_REG(ix, val);
458 vt1211_write8(data, regtemphyst[ix],
459 data->temp_hyst[ix]);
464 mutex_unlock(&data->update_lock);
482 struct vt1211_data *data = vt1211_update_device(dev);
491 res = RPM_FROM_REG(data->fan[ix], data->fan_div[ix]);
494 res = RPM_FROM_REG(data->fan_min[ix], data->fan_div[ix]);
497 res = DIV_FROM_REG(data->fan_div[ix]);
500 res = (data->alarms >> bitalarmfan[ix]) & 1;
513 struct vt1211_data *data = dev_get_drvdata(dev);
521 mutex_lock(&data->update_lock);
523 /* sync the data cache */
524 reg = vt1211_read8(data, VT1211_REG_FAN_DIV);
525 data->fan_div[0] = (reg >> 4) & 3;
526 data->fan_div[1] = (reg >> 6) & 3;
527 data->fan_ctl = reg & 0xf;
531 data->fan_min[ix] = RPM_TO_REG(val, data->fan_div[ix]);
532 vt1211_write8(data, VT1211_REG_FAN_MIN(ix),
533 data->fan_min[ix]);
537 case 1: data->fan_div[ix] = 0; break;
538 case 2: data->fan_div[ix] = 1; break;
539 case 4: data->fan_div[ix] = 2; break;
540 case 8: data->fan_div[ix] = 3; break;
548 vt1211_write8(data, VT1211_REG_FAN_DIV,
549 ((data->fan_div[1] << 6) |
550 (data->fan_div[0] << 4) |
551 data->fan_ctl));
558 mutex_unlock(&data->update_lock);
575 struct vt1211_data *data = vt1211_update_device(dev);
584 res = data->pwm[ix];
587 res = ((data->pwm_ctl[ix] >> 3) & 1) ? 2 : 0;
590 res = 90000 >> (data->pwm_clk & 7);
593 res = (data->pwm_ctl[ix] & 7) + 1;
606 struct vt1211_data *data = dev_get_drvdata(dev);
614 mutex_lock(&data->update_lock);
618 /* sync the data cache */
619 reg = vt1211_read8(data, VT1211_REG_FAN_DIV);
620 data->fan_div[0] = (reg >> 4) & 3;
621 data->fan_div[1] = (reg >> 6) & 3;
622 data->fan_ctl = reg & 0xf;
623 reg = vt1211_read8(data, VT1211_REG_PWM_CTL);
624 data->pwm_ctl[0] = reg & 0xf;
625 data->pwm_ctl[1] = (reg >> 4) & 0xf;
628 data->pwm_ctl[ix] &= 7;
631 if ((data->pwm_ctl[ix ^ 1] & 1) == 0) {
632 data->fan_ctl &= 0xe;
636 data->pwm_ctl[ix] |= 8;
637 data->fan_ctl |= 1;
645 vt1211_write8(data, VT1211_REG_PWM_CTL,
646 ((data->pwm_ctl[1] << 4) |
647 data->pwm_ctl[0]));
648 vt1211_write8(data, VT1211_REG_FAN_DIV,
649 ((data->fan_div[1] << 6) |
650 (data->fan_div[0] << 4) |
651 data->fan_ctl));
660 /* sync the data cache */
661 reg = vt1211_read8(data, VT1211_REG_PWM_CLK);
662 data->pwm_clk = (reg & 0xf8) | tmp;
663 vt1211_write8(data, VT1211_REG_PWM_CLK, data->pwm_clk);
672 if (!ISTEMP(val - 1, data->uch_config)) {
678 /* sync the data cache */
679 reg = vt1211_read8(data, VT1211_REG_PWM_CTL);
680 data->pwm_ctl[0] = reg & 0xf;
681 data->pwm_ctl[1] = (reg >> 4) & 0xf;
682 data->pwm_ctl[ix] = (data->pwm_ctl[ix] & 8) | (val - 1);
683 vt1211_write8(data, VT1211_REG_PWM_CTL,
684 ((data->pwm_ctl[1] << 4) | data->pwm_ctl[0]));
691 mutex_unlock(&data->update_lock);
723 struct vt1211_data *data = vt1211_update_device(dev);
729 return sprintf(buf, "%d\n", TEMP_FROM_REG(data->pwm_ctl[ix] & 7,
730 data->pwm_auto_temp[ap]));
737 struct vt1211_data *data = dev_get_drvdata(dev);
745 mutex_lock(&data->update_lock);
747 /* sync the data cache */
748 reg = vt1211_read8(data, VT1211_REG_PWM_CTL);
749 data->pwm_ctl[0] = reg & 0xf;
750 data->pwm_ctl[1] = (reg >> 4) & 0xf;
752 data->pwm_auto_temp[ap] = TEMP_TO_REG(data->pwm_ctl[ix] & 7, val);
753 vt1211_write8(data, VT1211_REG_PWM_AUTO_TEMP(ap),
754 data->pwm_auto_temp[ap]);
755 mutex_unlock(&data->update_lock);
781 struct vt1211_data *data = vt1211_update_device(dev);
787 return sprintf(buf, "%d\n", data->pwm_auto_pwm[ix][ap]);
794 struct vt1211_data *data = dev_get_drvdata(dev);
807 mutex_lock(&data->update_lock);
808 data->pwm_auto_pwm[ix][ap] = val;
809 vt1211_write8(data, VT1211_REG_PWM_AUTO_PWM(ix, ap),
810 data->pwm_auto_pwm[ix][ap]);
811 mutex_unlock(&data->update_lock);
823 struct vt1211_data *data = dev_get_drvdata(dev);
825 return sprintf(buf, "%d\n", data->vrm);
831 struct vt1211_data *data = dev_get_drvdata(dev);
834 data->vrm = val;
842 struct vt1211_data *data = dev_get_drvdata(dev);
844 return sprintf(buf, "%d\n", vid_from_reg(data->vid, data->vrm));
850 struct vt1211_data *data = dev_get_drvdata(dev);
852 return sprintf(buf, "%s\n", data->name);
858 struct vt1211_data *data = vt1211_update_device(dev);
860 return sprintf(buf, "%d\n", data->alarms);
1057 static void __devinit vt1211_init_device(struct vt1211_data *data)
1060 data->vrm = vid_which_vrm();
1063 data->uch_config = vt1211_read8(data, VT1211_REG_UCH_CONFIG);
1065 data->uch_config = (data->uch_config & 0x83) |
1067 vt1211_write8(data, VT1211_REG_UCH_CONFIG, data->uch_config);
1082 vt1211_write8(data, VT1211_REG_TEMP1_CONFIG, 0);
1083 vt1211_write8(data, VT1211_REG_TEMP2_CONFIG, 0);
1086 /* Fill in some hard wired values into our data struct */
1087 data->pwm_auto_pwm[0][3] = 255;
1088 data->pwm_auto_pwm[1][3] = 255;
1128 struct vt1211_data *data;
1132 if (!(data = kzalloc(sizeof(struct vt1211_data), GFP_KERNEL))) {
1145 data->addr = res->start;
1146 data->name = DRVNAME;
1147 mutex_init(&data->update_lock);
1149 platform_set_drvdata(pdev, data);
1152 vt1211_init_device(data);
1156 if (ISVOLT(i, data->uch_config)) {
1170 if (ISTEMP(i, data->uch_config)) {
1199 data->hwmon_dev = hwmon_device_register(dev);
1200 if (IS_ERR(data->hwmon_dev)) {
1201 err = PTR_ERR(data->hwmon_dev);
1215 kfree(data);
1222 struct vt1211_data *data = platform_get_drvdata(pdev);
1225 hwmon_device_unregister(data->hwmon_dev);
1228 kfree(data);