Lines Matching refs:data
293 static void w83792d_print_debug(struct w83792d_data *data, struct device *dev);
316 static inline long in_count_from_reg(int nr, struct w83792d_data *data)
319 return (data->in[nr] << 2) | ((data->low_bits >> (2 * nr)) & 0x03);
344 struct w83792d_data *data = w83792d_update_device(dev);
346 IN_FROM_REG(nr, in_count_from_reg(nr, data)));
356 struct w83792d_data *data = w83792d_update_device(dev); \
358 (long)(IN_FROM_REG(nr, data->reg[nr]) * 4)); \
373 struct w83792d_data *data = i2c_get_clientdata(client); \
378 mutex_lock(&data->update_lock); \
379 data->in_##reg[nr] = clamp_val(IN_TO_REG(nr, val) / 4, 0, 255); \
381 data->in_##reg[nr]); \
382 mutex_unlock(&data->update_lock); \
396 struct w83792d_data *data = w83792d_update_device(dev); \
398 FAN_FROM_REG(data->reg[nr], DIV_FROM_REG(data->fan_div[nr]))); \
411 struct w83792d_data *data = i2c_get_clientdata(client);
419 mutex_lock(&data->update_lock);
420 data->fan_min[nr] = FAN_TO_REG(val, DIV_FROM_REG(data->fan_div[nr]));
422 data->fan_min[nr]);
423 mutex_unlock(&data->update_lock);
434 struct w83792d_data *data = w83792d_update_device(dev);
435 return sprintf(buf, "%u\n", DIV_FROM_REG(data->fan_div[nr - 1]));
451 struct w83792d_data *data = i2c_get_clientdata(client);
464 mutex_lock(&data->update_lock);
465 min = FAN_FROM_REG(data->fan_min[nr],
466 DIV_FROM_REG(data->fan_div[nr]));
468 data->fan_div[nr] = DIV_TO_REG(val);
472 tmp_fan_div = (nr & 0x01) ? (((data->fan_div[nr]) << 4) & 0x70)
473 : ((data->fan_div[nr]) & 0x07);
478 data->fan_min[nr] = FAN_TO_REG(min, DIV_FROM_REG(data->fan_div[nr]));
479 w83792d_write_value(client, W83792D_REG_FAN_MIN[nr], data->fan_min[nr]);
480 mutex_unlock(&data->update_lock);
492 struct w83792d_data *data = w83792d_update_device(dev);
493 return sprintf(buf, "%d\n", TEMP1_FROM_REG(data->temp1[nr]));
502 struct w83792d_data *data = i2c_get_clientdata(client);
510 mutex_lock(&data->update_lock);
511 data->temp1[nr] = TEMP1_TO_REG(val);
513 data->temp1[nr]);
514 mutex_unlock(&data->update_lock);
528 struct w83792d_data *data = w83792d_update_device(dev);
530 (long)TEMP_ADD_FROM_REG(data->temp_add[nr][index],
531 data->temp_add[nr][index+1]));
542 struct w83792d_data *data = i2c_get_clientdata(client);
550 mutex_lock(&data->update_lock);
551 data->temp_add[nr][index] = TEMP_ADD_TO_REG_HIGH(val);
552 data->temp_add[nr][index+1] = TEMP_ADD_TO_REG_LOW(val);
554 data->temp_add[nr][index]);
556 data->temp_add[nr][index+1]);
557 mutex_unlock(&data->update_lock);
566 struct w83792d_data *data = w83792d_update_device(dev);
567 return sprintf(buf, "%d\n", data->alarms);
575 struct w83792d_data *data = w83792d_update_device(dev);
576 return sprintf(buf, "%d\n", (data->alarms >> nr) & 1);
585 struct w83792d_data *data = w83792d_update_device(dev);
586 return sprintf(buf, "%d\n", (data->pwm[nr] & 0x0f) << 4);
595 struct w83792d_data *data = w83792d_update_device(dev);
598 switch (data->pwmenable[nr]) {
620 struct w83792d_data *data = i2c_get_clientdata(client);
629 mutex_lock(&data->update_lock);
631 data->pwm[nr] = val;
632 w83792d_write_value(client, W83792D_REG_PWM[nr], data->pwm[nr]);
633 mutex_unlock(&data->update_lock);
645 struct w83792d_data *data = i2c_get_clientdata(client);
657 mutex_lock(&data->update_lock);
660 data->pwmenable[nr] = 0; /* manual mode */
663 data->pwmenable[nr] = 2; /* Smart Fan II */
666 data->pwmenable[nr] = 1; /* thermal cruise/Smart Fan I */
669 cfg1_tmp = data->pwmenable[0];
670 cfg2_tmp = (data->pwmenable[1]) << 2;
671 cfg3_tmp = (data->pwmenable[2]) << 4;
675 mutex_unlock(&data->update_lock);
686 struct w83792d_data *data = w83792d_update_device(dev);
687 return sprintf(buf, "%d\n", data->pwm[nr] >> 7);
697 struct w83792d_data *data = i2c_get_clientdata(client);
707 mutex_lock(&data->update_lock);
708 data->pwm[nr] = w83792d_read_value(client, W83792D_REG_PWM[nr]);
710 data->pwm[nr] |= 0x80;
712 data->pwm[nr] &= 0x7f;
714 w83792d_write_value(client, W83792D_REG_PWM[nr], data->pwm[nr]);
715 mutex_unlock(&data->update_lock);
724 struct w83792d_data *data = w83792d_update_device(dev);
725 return sprintf(buf, "%d\n", data->chassis);
733 struct w83792d_data *data = i2c_get_clientdata(client);
740 mutex_lock(&data->update_lock);
743 data->valid = 0; /* Force cache refresh */
744 mutex_unlock(&data->update_lock);
756 struct w83792d_data *data = w83792d_update_device(dev);
757 return sprintf(buf, "%ld\n", (long)data->thermal_cruise[nr-1]);
767 struct w83792d_data *data = i2c_get_clientdata(client);
778 mutex_lock(&data->update_lock);
781 data->thermal_cruise[nr] = clamp_val(target_tmp, 0, 255);
783 (data->thermal_cruise[nr]) | target_mask);
784 mutex_unlock(&data->update_lock);
796 struct w83792d_data *data = w83792d_update_device(dev);
797 return sprintf(buf, "%ld\n", (long)data->tolerance[nr-1]);
807 struct w83792d_data *data = i2c_get_clientdata(client);
816 mutex_lock(&data->update_lock);
821 data->tolerance[nr] = tol_tmp;
826 mutex_unlock(&data->update_lock);
840 struct w83792d_data *data = w83792d_update_device(dev);
841 return sprintf(buf, "%ld\n", (long)data->sf2_points[index-1][nr-1]);
853 struct w83792d_data *data = i2c_get_clientdata(client);
862 mutex_lock(&data->update_lock);
863 data->sf2_points[index][nr] = clamp_val(val, 0, 127);
867 mask_tmp|data->sf2_points[index][nr]);
868 mutex_unlock(&data->update_lock);
881 struct w83792d_data *data = w83792d_update_device(dev);
883 (((data->sf2_levels[index-1][nr]) * 100) / 15));
895 struct w83792d_data *data = i2c_get_clientdata(client);
904 mutex_lock(&data->update_lock);
905 data->sf2_levels[index][nr] = clamp_val((val * 15) / 100, 0, 15);
909 level_tmp = data->sf2_levels[index][nr];
911 level_tmp = data->sf2_levels[index][nr] << 4;
914 mutex_unlock(&data->update_lock);
1357 struct w83792d_data *data;
1361 data = devm_kzalloc(dev, sizeof(struct w83792d_data), GFP_KERNEL);
1362 if (!data)
1365 i2c_set_clientdata(client, data);
1366 mutex_init(&data->update_lock);
1377 data->fan_min[i] = w83792d_read_value(client,
1417 data->hwmon_dev = hwmon_device_register(dev);
1418 if (IS_ERR(data->hwmon_dev)) {
1419 err = PTR_ERR(data->hwmon_dev);
1435 struct w83792d_data *data = i2c_get_clientdata(client);
1438 hwmon_device_unregister(data->hwmon_dev);
1483 struct w83792d_data *data = i2c_get_clientdata(client);
1487 mutex_lock(&data->update_lock);
1490 (jiffies - data->last_updated, (unsigned long) (HZ * 3))
1491 || time_before(jiffies, data->last_updated) || !data->valid) {
1496 data->in[i] = w83792d_read_value(client,
1498 data->in_max[i] = w83792d_read_value(client,
1500 data->in_min[i] = w83792d_read_value(client,
1503 data->low_bits = w83792d_read_value(client,
1509 data->fan[i] = w83792d_read_value(client,
1511 data->fan_min[i] = w83792d_read_value(client,
1514 data->pwm[i] = w83792d_read_value(client,
1519 data->pwmenable[0] = reg_tmp & 0x03;
1520 data->pwmenable[1] = (reg_tmp>>2) & 0x03;
1521 data->pwmenable[2] = (reg_tmp>>4) & 0x03;
1524 data->temp1[i] = w83792d_read_value(client,
1529 data->temp_add[i][j] = w83792d_read_value(
1539 data->fan_div[0] = reg_array_tmp[0] & 0x07;
1540 data->fan_div[1] = (reg_array_tmp[0] >> 4) & 0x07;
1541 data->fan_div[2] = reg_array_tmp[1] & 0x07;
1542 data->fan_div[3] = (reg_array_tmp[1] >> 4) & 0x07;
1543 data->fan_div[4] = reg_array_tmp[2] & 0x07;
1544 data->fan_div[5] = (reg_array_tmp[2] >> 4) & 0x07;
1545 data->fan_div[6] = reg_array_tmp[3] & 0x07;
1548 data->alarms = w83792d_read_value(client, W83792D_REG_ALARM1) +
1553 data->chassis = (w83792d_read_value(client,
1558 data->thermal_cruise[i] =
1565 data->tolerance[0] = reg_tmp & 0x0f;
1566 data->tolerance[1] = (reg_tmp >> 4) & 0x0f;
1567 data->tolerance[2] = w83792d_read_value(client,
1573 data->sf2_points[i][j]
1583 data->sf2_levels[i][0] = reg_tmp & 0x0f;
1584 data->sf2_levels[i][1] = (reg_tmp >> 4) & 0x0f;
1587 data->sf2_levels[i][2] = (reg_tmp >> 4) & 0x0f;
1588 data->sf2_levels[i][3] = reg_tmp & 0x0f;
1591 data->last_updated = jiffies;
1592 data->valid = 1;
1595 mutex_unlock(&data->update_lock);
1598 w83792d_print_debug(data, dev);
1601 return data;
1605 static void w83792d_print_debug(struct w83792d_data *data, struct device *dev)
1611 dev_dbg(dev, "vin[%d] is: 0x%x\n", i, data->in[i]);
1612 dev_dbg(dev, "vin[%d] max is: 0x%x\n", i, data->in_max[i]);
1613 dev_dbg(dev, "vin[%d] min is: 0x%x\n", i, data->in_min[i]);
1615 dev_dbg(dev, "Low Bit1 is: 0x%x\n", data->low_bits & 0xff);
1616 dev_dbg(dev, "Low Bit2 is: 0x%x\n", data->low_bits >> 8);
1619 dev_dbg(dev, "fan[%d] is: 0x%x\n", i, data->fan[i]);
1620 dev_dbg(dev, "fan[%d] min is: 0x%x\n", i, data->fan_min[i]);
1621 dev_dbg(dev, "pwm[%d] is: 0x%x\n", i, data->pwm[i]);
1625 dev_dbg(dev, "temp1[%d] is: 0x%x\n", i, data->temp1[i]);
1630 data->temp_add[i][j]);
1635 dev_dbg(dev, "fan_div[%d] is: 0x%x\n", i, data->fan_div[i]);