Lines Matching defs:data
222 * 16-bit registers on the ADT7462 are low-byte first. The data sheet says
242 static int ADT7462_REG_VOLT_MAX(struct adt7462_data *data, int which)
246 if (!(data->pin_cfg[0] & ADT7462_PIN7_INPUT))
252 if (!(data->pin_cfg[1] & ADT7462_PIN22_INPUT))
256 if (!(data->pin_cfg[1] & ADT7462_PIN21_INPUT))
260 if (!(data->pin_cfg[0] & ADT7462_DIODE3_INPUT))
264 if (!(data->pin_cfg[0] & ADT7462_DIODE1_INPUT))
268 if (!(data->pin_cfg[1] & ADT7462_PIN13_INPUT))
272 if (!(data->pin_cfg[1] & ADT7462_PIN8_INPUT))
276 if (!(data->pin_cfg[2] & ADT7462_PIN26_VOLT_INPUT))
280 if (!(data->pin_cfg[2] & ADT7462_PIN25_VOLT_INPUT))
286 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT ==
288 !(data->pin_cfg[0] & ADT7462_VID_INPUT))
292 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT ==
294 !(data->pin_cfg[0] & ADT7462_VID_INPUT))
301 static int ADT7462_REG_VOLT_MIN(struct adt7462_data *data, int which)
305 if (!(data->pin_cfg[0] & ADT7462_PIN7_INPUT))
311 if (!(data->pin_cfg[1] & ADT7462_PIN22_INPUT))
315 if (!(data->pin_cfg[1] & ADT7462_PIN21_INPUT))
319 if (!(data->pin_cfg[0] & ADT7462_DIODE3_INPUT))
323 if (!(data->pin_cfg[0] & ADT7462_DIODE1_INPUT))
327 if (!(data->pin_cfg[1] & ADT7462_PIN13_INPUT))
331 if (!(data->pin_cfg[1] & ADT7462_PIN8_INPUT))
335 if (!(data->pin_cfg[2] & ADT7462_PIN26_VOLT_INPUT))
339 if (!(data->pin_cfg[2] & ADT7462_PIN25_VOLT_INPUT))
345 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT ==
347 !(data->pin_cfg[0] & ADT7462_VID_INPUT))
351 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT ==
353 !(data->pin_cfg[0] & ADT7462_VID_INPUT))
360 static int ADT7462_REG_VOLT(struct adt7462_data *data, int which)
364 if (!(data->pin_cfg[0] & ADT7462_PIN7_INPUT))
370 if (!(data->pin_cfg[1] & ADT7462_PIN22_INPUT))
374 if (!(data->pin_cfg[1] & ADT7462_PIN21_INPUT))
378 if (!(data->pin_cfg[0] & ADT7462_DIODE3_INPUT))
382 if (!(data->pin_cfg[0] & ADT7462_DIODE1_INPUT))
386 if (!(data->pin_cfg[1] & ADT7462_PIN13_INPUT))
390 if (!(data->pin_cfg[1] & ADT7462_PIN8_INPUT))
394 if (!(data->pin_cfg[2] & ADT7462_PIN26_VOLT_INPUT))
398 if (!(data->pin_cfg[2] & ADT7462_PIN25_VOLT_INPUT))
404 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT ==
406 !(data->pin_cfg[0] & ADT7462_VID_INPUT))
410 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT ==
412 !(data->pin_cfg[0] & ADT7462_VID_INPUT))
420 static const char *voltage_label(struct adt7462_data *data, int which)
424 if (!(data->pin_cfg[0] & ADT7462_PIN7_INPUT))
428 switch (MASK_AND_SHIFT(data->pin_cfg[1], ADT7462_PIN23)) {
440 if (!(data->pin_cfg[1] & ADT7462_PIN22_INPUT))
444 if (!(data->pin_cfg[1] & ADT7462_PIN21_INPUT))
448 if (!(data->pin_cfg[0] & ADT7462_DIODE3_INPUT)) {
449 if (data->pin_cfg[1] & ADT7462_PIN19_INPUT)
455 if (!(data->pin_cfg[0] & ADT7462_DIODE1_INPUT)) {
456 if (data->pin_cfg[1] & ADT7462_PIN19_INPUT)
462 if (!(data->pin_cfg[1] & ADT7462_PIN13_INPUT))
466 if (!(data->pin_cfg[1] & ADT7462_PIN8_INPUT))
470 switch (MASK_AND_SHIFT(data->pin_cfg[2], ADT7462_PIN26)) {
478 switch (MASK_AND_SHIFT(data->pin_cfg[2], ADT7462_PIN25)) {
486 switch (MASK_AND_SHIFT(data->pin_cfg[2], ADT7462_PIN24)) {
498 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT ==
500 !(data->pin_cfg[0] & ADT7462_VID_INPUT))
504 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT ==
506 !(data->pin_cfg[0] & ADT7462_VID_INPUT))
514 static int voltage_multiplier(struct adt7462_data *data, int which)
518 if (!(data->pin_cfg[0] & ADT7462_PIN7_INPUT))
522 switch (MASK_AND_SHIFT(data->pin_cfg[1], ADT7462_PIN23)) {
524 if (data->pin_cfg[0] & ADT7462_VID_INPUT)
536 if (!(data->pin_cfg[1] & ADT7462_PIN22_INPUT))
540 if (!(data->pin_cfg[1] & ADT7462_PIN21_INPUT))
544 if (!(data->pin_cfg[0] & ADT7462_DIODE3_INPUT)) {
545 if (data->pin_cfg[1] & ADT7462_PIN19_INPUT)
551 if (!(data->pin_cfg[0] & ADT7462_DIODE1_INPUT)) {
552 if (data->pin_cfg[1] & ADT7462_PIN15_INPUT)
558 if (!(data->pin_cfg[1] & ADT7462_PIN13_INPUT))
562 if (!(data->pin_cfg[1] & ADT7462_PIN8_INPUT))
566 switch (MASK_AND_SHIFT(data->pin_cfg[2], ADT7462_PIN26)) {
574 switch (MASK_AND_SHIFT(data->pin_cfg[2], ADT7462_PIN25)) {
582 switch (MASK_AND_SHIFT(data->pin_cfg[2], ADT7462_PIN24)) {
595 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT ==
597 !(data->pin_cfg[0] & ADT7462_VID_INPUT))
603 static int temp_enabled(struct adt7462_data *data, int which)
610 if (data->pin_cfg[0] & ADT7462_DIODE1_INPUT)
614 if (data->pin_cfg[0] & ADT7462_DIODE3_INPUT)
621 static const char *temp_label(struct adt7462_data *data, int which)
627 if (data->pin_cfg[0] & ADT7462_DIODE1_INPUT)
633 if (data->pin_cfg[0] & ADT7462_DIODE3_INPUT)
674 struct adt7462_data *data = dev_get_drvdata(dev);
675 struct i2c_client *client = data->client;
679 mutex_lock(&data->lock);
680 if (time_before(local_jiffies, data->sensors_last_updated +
682 && data->sensors_valid)
690 data->temp_frac[i] = i2c_smbus_read_byte_data(client,
692 data->temp[i] = i2c_smbus_read_byte_data(client,
697 data->fan[i] = adt7462_read_word_data(client,
700 data->fan_enabled = i2c_smbus_read_byte_data(client,
704 data->pwm[i] = i2c_smbus_read_byte_data(client,
708 data->pin_cfg[i] = i2c_smbus_read_byte_data(client,
712 int reg = ADT7462_REG_VOLT(data, i);
714 data->voltages[i] = 0;
716 data->voltages[i] = i2c_smbus_read_byte_data(client,
720 data->alarms[0] = i2c_smbus_read_byte_data(client, ADT7462_REG_ALARM1);
721 data->alarms[1] = i2c_smbus_read_byte_data(client, ADT7462_REG_ALARM2);
722 data->alarms[2] = i2c_smbus_read_byte_data(client, ADT7462_REG_ALARM3);
723 data->alarms[3] = i2c_smbus_read_byte_data(client, ADT7462_REG_ALARM4);
725 data->sensors_last_updated = local_jiffies;
726 data->sensors_valid = 1;
729 if (time_before(local_jiffies, data->limits_last_updated +
731 && data->limits_valid)
735 data->temp_min[i] = i2c_smbus_read_byte_data(client,
737 data->temp_max[i] = i2c_smbus_read_byte_data(client,
742 data->fan_min[i] = i2c_smbus_read_byte_data(client,
746 int reg = ADT7462_REG_VOLT_MAX(data, i);
747 data->volt_max[i] =
750 reg = ADT7462_REG_VOLT_MIN(data, i);
751 data->volt_min[i] =
756 data->pwm_min[i] = i2c_smbus_read_byte_data(client,
758 data->pwm_tmin[i] = i2c_smbus_read_byte_data(client,
760 data->pwm_trange[i] = i2c_smbus_read_byte_data(client,
762 data->pwm_cfg[i] = i2c_smbus_read_byte_data(client,
766 data->pwm_max = i2c_smbus_read_byte_data(client, ADT7462_REG_PWM_MAX);
768 data->cfg2 = i2c_smbus_read_byte_data(client, ADT7462_REG_CFG2);
770 data->limits_last_updated = local_jiffies;
771 data->limits_valid = 1;
774 mutex_unlock(&data->lock);
775 return data;
782 struct adt7462_data *data = adt7462_update_device(dev);
784 if (!temp_enabled(data, attr->index))
787 return sprintf(buf, "%d\n", 1000 * (data->temp_min[attr->index] - 64));
795 struct adt7462_data *data = dev_get_drvdata(dev);
796 struct i2c_client *client = data->client;
799 if (kstrtol(buf, 10, &temp) || !temp_enabled(data, attr->index))
805 mutex_lock(&data->lock);
806 data->temp_min[attr->index] = temp;
809 mutex_unlock(&data->lock);
818 struct adt7462_data *data = adt7462_update_device(dev);
820 if (!temp_enabled(data, attr->index))
823 return sprintf(buf, "%d\n", 1000 * (data->temp_max[attr->index] - 64));
831 struct adt7462_data *data = dev_get_drvdata(dev);
832 struct i2c_client *client = data->client;
835 if (kstrtol(buf, 10, &temp) || !temp_enabled(data, attr->index))
841 mutex_lock(&data->lock);
842 data->temp_max[attr->index] = temp;
845 mutex_unlock(&data->lock);
854 struct adt7462_data *data = adt7462_update_device(dev);
855 u8 frac = data->temp_frac[attr->index] >> TEMP_FRAC_OFFSET;
857 if (!temp_enabled(data, attr->index))
860 return sprintf(buf, "%d\n", 1000 * (data->temp[attr->index] - 64) +
868 struct adt7462_data *data = adt7462_update_device(dev);
870 return sprintf(buf, "%s\n", temp_label(data, attr->index));
877 struct adt7462_data *data = adt7462_update_device(dev);
878 int x = voltage_multiplier(data, attr->index);
880 x *= data->volt_max[attr->index];
891 struct adt7462_data *data = dev_get_drvdata(dev);
892 struct i2c_client *client = data->client;
893 int x = voltage_multiplier(data, attr->index);
903 mutex_lock(&data->lock);
904 data->volt_max[attr->index] = temp;
906 ADT7462_REG_VOLT_MAX(data, attr->index),
908 mutex_unlock(&data->lock);
917 struct adt7462_data *data = adt7462_update_device(dev);
918 int x = voltage_multiplier(data, attr->index);
920 x *= data->volt_min[attr->index];
931 struct adt7462_data *data = dev_get_drvdata(dev);
932 struct i2c_client *client = data->client;
933 int x = voltage_multiplier(data, attr->index);
943 mutex_lock(&data->lock);
944 data->volt_min[attr->index] = temp;
946 ADT7462_REG_VOLT_MIN(data, attr->index),
948 mutex_unlock(&data->lock);
957 struct adt7462_data *data = adt7462_update_device(dev);
958 int x = voltage_multiplier(data, attr->index);
960 x *= data->voltages[attr->index];
970 struct adt7462_data *data = adt7462_update_device(dev);
972 return sprintf(buf, "%s\n", voltage_label(data, attr->index));
979 struct adt7462_data *data = adt7462_update_device(dev);
983 if (data->alarms[reg] & mask)
989 static int fan_enabled(struct adt7462_data *data, int fan)
991 return data->fan_enabled & (1 << fan);
998 struct adt7462_data *data = adt7462_update_device(dev);
1002 temp = data->fan_min[attr->index];
1005 if (!fan_enabled(data, attr->index) ||
1017 struct adt7462_data *data = dev_get_drvdata(dev);
1018 struct i2c_client *client = data->client;
1022 !fan_enabled(data, attr->index))
1029 mutex_lock(&data->lock);
1030 data->fan_min[attr->index] = temp;
1033 mutex_unlock(&data->lock);
1042 struct adt7462_data *data = adt7462_update_device(dev);
1044 if (!fan_enabled(data, attr->index) ||
1045 !FAN_DATA_VALID(data->fan[attr->index]))
1049 FAN_PERIOD_TO_RPM(data->fan[attr->index]));
1055 struct adt7462_data *data = adt7462_update_device(dev);
1056 return sprintf(buf, "%d\n", (data->cfg2 & ADT7462_FSPD_MASK ? 1 : 0));
1063 struct adt7462_data *data = dev_get_drvdata(dev);
1064 struct i2c_client *client = data->client;
1071 mutex_lock(&data->lock);
1077 data->cfg2 = reg;
1079 mutex_unlock(&data->lock);
1088 struct adt7462_data *data = adt7462_update_device(dev);
1089 return sprintf(buf, "%d\n", data->pwm[attr->index]);
1096 struct adt7462_data *data = dev_get_drvdata(dev);
1097 struct i2c_client *client = data->client;
1105 mutex_lock(&data->lock);
1106 data->pwm[attr->index] = temp;
1108 mutex_unlock(&data->lock);
1116 struct adt7462_data *data = adt7462_update_device(dev);
1117 return sprintf(buf, "%d\n", data->pwm_max);
1124 struct adt7462_data *data = dev_get_drvdata(dev);
1125 struct i2c_client *client = data->client;
1133 mutex_lock(&data->lock);
1134 data->pwm_max = temp;
1136 mutex_unlock(&data->lock);
1145 struct adt7462_data *data = adt7462_update_device(dev);
1146 return sprintf(buf, "%d\n", data->pwm_min[attr->index]);
1154 struct adt7462_data *data = dev_get_drvdata(dev);
1155 struct i2c_client *client = data->client;
1163 mutex_lock(&data->lock);
1164 data->pwm_min[attr->index] = temp;
1167 mutex_unlock(&data->lock);
1176 struct adt7462_data *data = adt7462_update_device(dev);
1178 (data->pwm_trange[attr->index] & ADT7462_PWM_HYST_MASK));
1186 struct adt7462_data *data = dev_get_drvdata(dev);
1187 struct i2c_client *client = data->client;
1198 temp |= data->pwm_trange[attr->index] & ADT7462_PWM_RANGE_MASK;
1200 mutex_lock(&data->lock);
1201 data->pwm_trange[attr->index] = temp;
1204 mutex_unlock(&data->lock);
1213 struct adt7462_data *data = adt7462_update_device(dev);
1216 int trange = trange_values[data->pwm_trange[attr->index] >>
1218 int tmin = (data->pwm_tmin[attr->index] - 64) * 1000;
1229 struct adt7462_data *data = dev_get_drvdata(dev);
1230 struct i2c_client *client = data->client;
1238 tmin = (data->pwm_tmin[attr->index] - 64) * 1000;
1244 temp |= data->pwm_trange[attr->index] & ADT7462_PWM_HYST_MASK;
1246 mutex_lock(&data->lock);
1247 data->pwm_trange[attr->index] = temp;
1250 mutex_unlock(&data->lock);
1259 struct adt7462_data *data = adt7462_update_device(dev);
1260 return sprintf(buf, "%d\n", 1000 * (data->pwm_tmin[attr->index] - 64));
1268 struct adt7462_data *data = dev_get_drvdata(dev);
1269 struct i2c_client *client = data->client;
1278 mutex_lock(&data->lock);
1279 data->pwm_tmin[attr->index] = temp;
1282 mutex_unlock(&data->lock);
1291 struct adt7462_data *data = adt7462_update_device(dev);
1292 int cfg = data->pwm_cfg[attr->index] >> ADT7462_PWM_CHANNEL_SHIFT;
1305 struct adt7462_data *data,
1309 int temp = data->pwm_cfg[which] & ~ADT7462_PWM_CHANNEL_MASK;
1312 mutex_lock(&data->lock);
1313 data->pwm_cfg[which] = temp;
1315 mutex_unlock(&data->lock);
1323 struct adt7462_data *data = dev_get_drvdata(dev);
1324 struct i2c_client *client = data->client;
1332 set_pwm_channel(client, data, attr->index, 4);
1335 set_pwm_channel(client, data, attr->index, 7);
1346 struct adt7462_data *data = adt7462_update_device(dev);
1347 int channel = data->pwm_cfg[attr->index] >> ADT7462_PWM_CHANNEL_SHIFT;
1380 struct adt7462_data *data = dev_get_drvdata(dev);
1381 struct i2c_client *client = data->client;
1391 set_pwm_channel(client, data, attr->index, temp);
1793 struct adt7462_data *data;
1796 data = devm_kzalloc(dev, sizeof(struct adt7462_data), GFP_KERNEL);
1797 if (!data)
1800 data->client = client;
1801 mutex_init(&data->lock);
1806 data,