Lines Matching refs:data

255 static int ADT7462_REG_VOLT_MAX(struct adt7462_data *data, int which)  in ADT7462_REG_VOLT_MAX()  argument
259 if (!(data->pin_cfg[0] & ADT7462_PIN7_INPUT)) in ADT7462_REG_VOLT_MAX()
265 if (!(data->pin_cfg[1] & ADT7462_PIN22_INPUT)) in ADT7462_REG_VOLT_MAX()
269 if (!(data->pin_cfg[1] & ADT7462_PIN21_INPUT)) in ADT7462_REG_VOLT_MAX()
273 if (!(data->pin_cfg[0] & ADT7462_DIODE3_INPUT)) in ADT7462_REG_VOLT_MAX()
277 if (!(data->pin_cfg[0] & ADT7462_DIODE1_INPUT)) in ADT7462_REG_VOLT_MAX()
281 if (!(data->pin_cfg[1] & ADT7462_PIN13_INPUT)) in ADT7462_REG_VOLT_MAX()
285 if (!(data->pin_cfg[1] & ADT7462_PIN8_INPUT)) in ADT7462_REG_VOLT_MAX()
289 if (!(data->pin_cfg[2] & ADT7462_PIN26_VOLT_INPUT)) in ADT7462_REG_VOLT_MAX()
293 if (!(data->pin_cfg[2] & ADT7462_PIN25_VOLT_INPUT)) in ADT7462_REG_VOLT_MAX()
299 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT == in ADT7462_REG_VOLT_MAX()
301 !(data->pin_cfg[0] & ADT7462_VID_INPUT)) in ADT7462_REG_VOLT_MAX()
305 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT == in ADT7462_REG_VOLT_MAX()
307 !(data->pin_cfg[0] & ADT7462_VID_INPUT)) in ADT7462_REG_VOLT_MAX()
314 static int ADT7462_REG_VOLT_MIN(struct adt7462_data *data, int which) in ADT7462_REG_VOLT_MIN() argument
318 if (!(data->pin_cfg[0] & ADT7462_PIN7_INPUT)) in ADT7462_REG_VOLT_MIN()
324 if (!(data->pin_cfg[1] & ADT7462_PIN22_INPUT)) in ADT7462_REG_VOLT_MIN()
328 if (!(data->pin_cfg[1] & ADT7462_PIN21_INPUT)) in ADT7462_REG_VOLT_MIN()
332 if (!(data->pin_cfg[0] & ADT7462_DIODE3_INPUT)) in ADT7462_REG_VOLT_MIN()
336 if (!(data->pin_cfg[0] & ADT7462_DIODE1_INPUT)) in ADT7462_REG_VOLT_MIN()
340 if (!(data->pin_cfg[1] & ADT7462_PIN13_INPUT)) in ADT7462_REG_VOLT_MIN()
344 if (!(data->pin_cfg[1] & ADT7462_PIN8_INPUT)) in ADT7462_REG_VOLT_MIN()
348 if (!(data->pin_cfg[2] & ADT7462_PIN26_VOLT_INPUT)) in ADT7462_REG_VOLT_MIN()
352 if (!(data->pin_cfg[2] & ADT7462_PIN25_VOLT_INPUT)) in ADT7462_REG_VOLT_MIN()
358 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT == in ADT7462_REG_VOLT_MIN()
360 !(data->pin_cfg[0] & ADT7462_VID_INPUT)) in ADT7462_REG_VOLT_MIN()
364 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT == in ADT7462_REG_VOLT_MIN()
366 !(data->pin_cfg[0] & ADT7462_VID_INPUT)) in ADT7462_REG_VOLT_MIN()
373 static int ADT7462_REG_VOLT(struct adt7462_data *data, int which) in ADT7462_REG_VOLT() argument
377 if (!(data->pin_cfg[0] & ADT7462_PIN7_INPUT)) in ADT7462_REG_VOLT()
383 if (!(data->pin_cfg[1] & ADT7462_PIN22_INPUT)) in ADT7462_REG_VOLT()
387 if (!(data->pin_cfg[1] & ADT7462_PIN21_INPUT)) in ADT7462_REG_VOLT()
391 if (!(data->pin_cfg[0] & ADT7462_DIODE3_INPUT)) in ADT7462_REG_VOLT()
395 if (!(data->pin_cfg[0] & ADT7462_DIODE1_INPUT)) in ADT7462_REG_VOLT()
399 if (!(data->pin_cfg[1] & ADT7462_PIN13_INPUT)) in ADT7462_REG_VOLT()
403 if (!(data->pin_cfg[1] & ADT7462_PIN8_INPUT)) in ADT7462_REG_VOLT()
407 if (!(data->pin_cfg[2] & ADT7462_PIN26_VOLT_INPUT)) in ADT7462_REG_VOLT()
411 if (!(data->pin_cfg[2] & ADT7462_PIN25_VOLT_INPUT)) in ADT7462_REG_VOLT()
417 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT == in ADT7462_REG_VOLT()
419 !(data->pin_cfg[0] & ADT7462_VID_INPUT)) in ADT7462_REG_VOLT()
423 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT == in ADT7462_REG_VOLT()
425 !(data->pin_cfg[0] & ADT7462_VID_INPUT)) in ADT7462_REG_VOLT()
433 static const char *voltage_label(struct adt7462_data *data, int which) in voltage_label() argument
437 if (!(data->pin_cfg[0] & ADT7462_PIN7_INPUT)) in voltage_label()
441 switch (MASK_AND_SHIFT(data->pin_cfg[1], ADT7462_PIN23)) { in voltage_label()
452 if (!(data->pin_cfg[1] & ADT7462_PIN22_INPUT)) in voltage_label()
456 if (!(data->pin_cfg[1] & ADT7462_PIN21_INPUT)) in voltage_label()
460 if (!(data->pin_cfg[0] & ADT7462_DIODE3_INPUT)) { in voltage_label()
461 if (data->pin_cfg[1] & ADT7462_PIN19_INPUT) in voltage_label()
467 if (!(data->pin_cfg[0] & ADT7462_DIODE1_INPUT)) { in voltage_label()
468 if (data->pin_cfg[1] & ADT7462_PIN19_INPUT) in voltage_label()
474 if (!(data->pin_cfg[1] & ADT7462_PIN13_INPUT)) in voltage_label()
478 if (!(data->pin_cfg[1] & ADT7462_PIN8_INPUT)) in voltage_label()
482 switch (MASK_AND_SHIFT(data->pin_cfg[2], ADT7462_PIN26)) { in voltage_label()
490 switch (MASK_AND_SHIFT(data->pin_cfg[2], ADT7462_PIN25)) { in voltage_label()
498 switch (MASK_AND_SHIFT(data->pin_cfg[2], ADT7462_PIN24)) { in voltage_label()
509 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT == in voltage_label()
511 !(data->pin_cfg[0] & ADT7462_VID_INPUT)) in voltage_label()
515 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT == in voltage_label()
517 !(data->pin_cfg[0] & ADT7462_VID_INPUT)) in voltage_label()
525 static int voltage_multiplier(struct adt7462_data *data, int which) in voltage_multiplier() argument
529 if (!(data->pin_cfg[0] & ADT7462_PIN7_INPUT)) in voltage_multiplier()
533 switch (MASK_AND_SHIFT(data->pin_cfg[1], ADT7462_PIN23)) { in voltage_multiplier()
535 if (data->pin_cfg[0] & ADT7462_VID_INPUT) in voltage_multiplier()
546 if (!(data->pin_cfg[1] & ADT7462_PIN22_INPUT)) in voltage_multiplier()
550 if (!(data->pin_cfg[1] & ADT7462_PIN21_INPUT)) in voltage_multiplier()
554 if (!(data->pin_cfg[0] & ADT7462_DIODE3_INPUT)) { in voltage_multiplier()
555 if (data->pin_cfg[1] & ADT7462_PIN19_INPUT) in voltage_multiplier()
561 if (!(data->pin_cfg[0] & ADT7462_DIODE1_INPUT)) { in voltage_multiplier()
562 if (data->pin_cfg[1] & ADT7462_PIN15_INPUT) in voltage_multiplier()
568 if (!(data->pin_cfg[1] & ADT7462_PIN13_INPUT)) in voltage_multiplier()
572 if (!(data->pin_cfg[1] & ADT7462_PIN8_INPUT)) in voltage_multiplier()
576 switch (MASK_AND_SHIFT(data->pin_cfg[2], ADT7462_PIN26)) { in voltage_multiplier()
584 switch (MASK_AND_SHIFT(data->pin_cfg[2], ADT7462_PIN25)) { in voltage_multiplier()
592 switch (MASK_AND_SHIFT(data->pin_cfg[2], ADT7462_PIN24)) { in voltage_multiplier()
604 if (data->pin_cfg[3] >> ADT7462_PIN28_SHIFT == in voltage_multiplier()
606 !(data->pin_cfg[0] & ADT7462_VID_INPUT)) in voltage_multiplier()
612 static int temp_enabled(struct adt7462_data *data, int which) in temp_enabled() argument
619 if (data->pin_cfg[0] & ADT7462_DIODE1_INPUT) in temp_enabled()
623 if (data->pin_cfg[0] & ADT7462_DIODE3_INPUT) in temp_enabled()
630 static const char *temp_label(struct adt7462_data *data, int which) in temp_label() argument
636 if (data->pin_cfg[0] & ADT7462_DIODE1_INPUT) in temp_label()
642 if (data->pin_cfg[0] & ADT7462_DIODE3_INPUT) in temp_label()
683 struct adt7462_data *data = dev_get_drvdata(dev); in adt7462_update_device() local
684 struct i2c_client *client = data->client; in adt7462_update_device()
688 mutex_lock(&data->lock); in adt7462_update_device()
689 if (time_before(local_jiffies, data->sensors_last_updated + in adt7462_update_device()
691 && data->sensors_valid) in adt7462_update_device()
699 data->temp_frac[i] = i2c_smbus_read_byte_data(client, in adt7462_update_device()
701 data->temp[i] = i2c_smbus_read_byte_data(client, in adt7462_update_device()
706 data->fan[i] = adt7462_read_word_data(client, in adt7462_update_device()
709 data->fan_enabled = i2c_smbus_read_byte_data(client, in adt7462_update_device()
713 data->pwm[i] = i2c_smbus_read_byte_data(client, in adt7462_update_device()
717 data->pin_cfg[i] = i2c_smbus_read_byte_data(client, in adt7462_update_device()
721 int reg = ADT7462_REG_VOLT(data, i); in adt7462_update_device()
723 data->voltages[i] = 0; in adt7462_update_device()
725 data->voltages[i] = i2c_smbus_read_byte_data(client, in adt7462_update_device()
729 data->alarms[0] = i2c_smbus_read_byte_data(client, ADT7462_REG_ALARM1); in adt7462_update_device()
730 data->alarms[1] = i2c_smbus_read_byte_data(client, ADT7462_REG_ALARM2); in adt7462_update_device()
731 data->alarms[2] = i2c_smbus_read_byte_data(client, ADT7462_REG_ALARM3); in adt7462_update_device()
732 data->alarms[3] = i2c_smbus_read_byte_data(client, ADT7462_REG_ALARM4); in adt7462_update_device()
734 data->sensors_last_updated = local_jiffies; in adt7462_update_device()
735 data->sensors_valid = 1; in adt7462_update_device()
738 if (time_before(local_jiffies, data->limits_last_updated + in adt7462_update_device()
740 && data->limits_valid) in adt7462_update_device()
744 data->temp_min[i] = i2c_smbus_read_byte_data(client, in adt7462_update_device()
746 data->temp_max[i] = i2c_smbus_read_byte_data(client, in adt7462_update_device()
751 data->fan_min[i] = i2c_smbus_read_byte_data(client, in adt7462_update_device()
755 int reg = ADT7462_REG_VOLT_MAX(data, i); in adt7462_update_device()
756 data->volt_max[i] = in adt7462_update_device()
759 reg = ADT7462_REG_VOLT_MIN(data, i); in adt7462_update_device()
760 data->volt_min[i] = in adt7462_update_device()
765 data->pwm_min[i] = i2c_smbus_read_byte_data(client, in adt7462_update_device()
767 data->pwm_tmin[i] = i2c_smbus_read_byte_data(client, in adt7462_update_device()
769 data->pwm_trange[i] = i2c_smbus_read_byte_data(client, in adt7462_update_device()
771 data->pwm_cfg[i] = i2c_smbus_read_byte_data(client, in adt7462_update_device()
775 data->pwm_max = i2c_smbus_read_byte_data(client, ADT7462_REG_PWM_MAX); in adt7462_update_device()
777 data->cfg2 = i2c_smbus_read_byte_data(client, ADT7462_REG_CFG2); in adt7462_update_device()
779 data->limits_last_updated = local_jiffies; in adt7462_update_device()
780 data->limits_valid = 1; in adt7462_update_device()
783 mutex_unlock(&data->lock); in adt7462_update_device()
784 return data; in adt7462_update_device()
792 struct adt7462_data *data = adt7462_update_device(dev); in show_temp_min() local
794 if (!temp_enabled(data, attr->index)) in show_temp_min()
797 return sprintf(buf, "%d\n", 1000 * (data->temp_min[attr->index] - 64)); in show_temp_min()
806 struct adt7462_data *data = dev_get_drvdata(dev); in set_temp_min() local
807 struct i2c_client *client = data->client; in set_temp_min()
810 if (kstrtol(buf, 10, &temp) || !temp_enabled(data, attr->index)) in set_temp_min()
816 mutex_lock(&data->lock); in set_temp_min()
817 data->temp_min[attr->index] = temp; in set_temp_min()
820 mutex_unlock(&data->lock); in set_temp_min()
830 struct adt7462_data *data = adt7462_update_device(dev); in show_temp_max() local
832 if (!temp_enabled(data, attr->index)) in show_temp_max()
835 return sprintf(buf, "%d\n", 1000 * (data->temp_max[attr->index] - 64)); in show_temp_max()
844 struct adt7462_data *data = dev_get_drvdata(dev); in set_temp_max() local
845 struct i2c_client *client = data->client; in set_temp_max()
848 if (kstrtol(buf, 10, &temp) || !temp_enabled(data, attr->index)) in set_temp_max()
854 mutex_lock(&data->lock); in set_temp_max()
855 data->temp_max[attr->index] = temp; in set_temp_max()
858 mutex_unlock(&data->lock); in set_temp_max()
867 struct adt7462_data *data = adt7462_update_device(dev); in show_temp() local
868 u8 frac = data->temp_frac[attr->index] >> TEMP_FRAC_OFFSET; in show_temp()
870 if (!temp_enabled(data, attr->index)) in show_temp()
873 return sprintf(buf, "%d\n", 1000 * (data->temp[attr->index] - 64) + in show_temp()
882 struct adt7462_data *data = adt7462_update_device(dev); in show_temp_label() local
884 return sprintf(buf, "%s\n", temp_label(data, attr->index)); in show_temp_label()
892 struct adt7462_data *data = adt7462_update_device(dev); in show_volt_max() local
893 int x = voltage_multiplier(data, attr->index); in show_volt_max()
895 x *= data->volt_max[attr->index]; in show_volt_max()
907 struct adt7462_data *data = dev_get_drvdata(dev); in set_volt_max() local
908 struct i2c_client *client = data->client; in set_volt_max()
909 int x = voltage_multiplier(data, attr->index); in set_volt_max()
919 mutex_lock(&data->lock); in set_volt_max()
920 data->volt_max[attr->index] = temp; in set_volt_max()
922 ADT7462_REG_VOLT_MAX(data, attr->index), in set_volt_max()
924 mutex_unlock(&data->lock); in set_volt_max()
934 struct adt7462_data *data = adt7462_update_device(dev); in show_volt_min() local
935 int x = voltage_multiplier(data, attr->index); in show_volt_min()
937 x *= data->volt_min[attr->index]; in show_volt_min()
949 struct adt7462_data *data = dev_get_drvdata(dev); in set_volt_min() local
950 struct i2c_client *client = data->client; in set_volt_min()
951 int x = voltage_multiplier(data, attr->index); in set_volt_min()
961 mutex_lock(&data->lock); in set_volt_min()
962 data->volt_min[attr->index] = temp; in set_volt_min()
964 ADT7462_REG_VOLT_MIN(data, attr->index), in set_volt_min()
966 mutex_unlock(&data->lock); in set_volt_min()
976 struct adt7462_data *data = adt7462_update_device(dev); in show_voltage() local
977 int x = voltage_multiplier(data, attr->index); in show_voltage()
979 x *= data->voltages[attr->index]; in show_voltage()
990 struct adt7462_data *data = adt7462_update_device(dev); in show_voltage_label() local
992 return sprintf(buf, "%s\n", voltage_label(data, attr->index)); in show_voltage_label()
1000 struct adt7462_data *data = adt7462_update_device(dev); in show_alarm() local
1004 if (data->alarms[reg] & mask) in show_alarm()
1010 static int fan_enabled(struct adt7462_data *data, int fan) in fan_enabled() argument
1012 return data->fan_enabled & (1 << fan); in fan_enabled()
1020 struct adt7462_data *data = adt7462_update_device(dev); in show_fan_min() local
1024 temp = data->fan_min[attr->index]; in show_fan_min()
1027 if (!fan_enabled(data, attr->index) || in show_fan_min()
1039 struct adt7462_data *data = dev_get_drvdata(dev); in set_fan_min() local
1040 struct i2c_client *client = data->client; in set_fan_min()
1044 !fan_enabled(data, attr->index)) in set_fan_min()
1051 mutex_lock(&data->lock); in set_fan_min()
1052 data->fan_min[attr->index] = temp; in set_fan_min()
1055 mutex_unlock(&data->lock); in set_fan_min()
1064 struct adt7462_data *data = adt7462_update_device(dev); in show_fan() local
1066 if (!fan_enabled(data, attr->index) || in show_fan()
1067 !FAN_DATA_VALID(data->fan[attr->index])) in show_fan()
1071 FAN_PERIOD_TO_RPM(data->fan[attr->index])); in show_fan()
1078 struct adt7462_data *data = adt7462_update_device(dev); in show_force_pwm_max() local
1079 return sprintf(buf, "%d\n", (data->cfg2 & ADT7462_FSPD_MASK ? 1 : 0)); in show_force_pwm_max()
1087 struct adt7462_data *data = dev_get_drvdata(dev); in set_force_pwm_max() local
1088 struct i2c_client *client = data->client; in set_force_pwm_max()
1095 mutex_lock(&data->lock); in set_force_pwm_max()
1101 data->cfg2 = reg; in set_force_pwm_max()
1103 mutex_unlock(&data->lock); in set_force_pwm_max()
1112 struct adt7462_data *data = adt7462_update_device(dev); in show_pwm() local
1113 return sprintf(buf, "%d\n", data->pwm[attr->index]); in show_pwm()
1120 struct adt7462_data *data = dev_get_drvdata(dev); in set_pwm() local
1121 struct i2c_client *client = data->client; in set_pwm()
1129 mutex_lock(&data->lock); in set_pwm()
1130 data->pwm[attr->index] = temp; in set_pwm()
1132 mutex_unlock(&data->lock); in set_pwm()
1141 struct adt7462_data *data = adt7462_update_device(dev); in show_pwm_max() local
1142 return sprintf(buf, "%d\n", data->pwm_max); in show_pwm_max()
1150 struct adt7462_data *data = dev_get_drvdata(dev); in set_pwm_max() local
1151 struct i2c_client *client = data->client; in set_pwm_max()
1159 mutex_lock(&data->lock); in set_pwm_max()
1160 data->pwm_max = temp; in set_pwm_max()
1162 mutex_unlock(&data->lock); in set_pwm_max()
1172 struct adt7462_data *data = adt7462_update_device(dev); in show_pwm_min() local
1173 return sprintf(buf, "%d\n", data->pwm_min[attr->index]); in show_pwm_min()
1182 struct adt7462_data *data = dev_get_drvdata(dev); in set_pwm_min() local
1183 struct i2c_client *client = data->client; in set_pwm_min()
1191 mutex_lock(&data->lock); in set_pwm_min()
1192 data->pwm_min[attr->index] = temp; in set_pwm_min()
1195 mutex_unlock(&data->lock); in set_pwm_min()
1205 struct adt7462_data *data = adt7462_update_device(dev); in show_pwm_hyst() local
1207 (data->pwm_trange[attr->index] & ADT7462_PWM_HYST_MASK)); in show_pwm_hyst()
1216 struct adt7462_data *data = dev_get_drvdata(dev); in set_pwm_hyst() local
1217 struct i2c_client *client = data->client; in set_pwm_hyst()
1228 temp |= data->pwm_trange[attr->index] & ADT7462_PWM_RANGE_MASK; in set_pwm_hyst()
1230 mutex_lock(&data->lock); in set_pwm_hyst()
1231 data->pwm_trange[attr->index] = temp; in set_pwm_hyst()
1234 mutex_unlock(&data->lock); in set_pwm_hyst()
1244 struct adt7462_data *data = adt7462_update_device(dev); in show_pwm_tmax() local
1247 int trange = trange_values[data->pwm_trange[attr->index] >> in show_pwm_tmax()
1249 int tmin = (data->pwm_tmin[attr->index] - 64) * 1000; in show_pwm_tmax()
1261 struct adt7462_data *data = dev_get_drvdata(dev); in set_pwm_tmax() local
1262 struct i2c_client *client = data->client; in set_pwm_tmax()
1270 tmin = (data->pwm_tmin[attr->index] - 64) * 1000; in set_pwm_tmax()
1276 temp |= data->pwm_trange[attr->index] & ADT7462_PWM_HYST_MASK; in set_pwm_tmax()
1278 mutex_lock(&data->lock); in set_pwm_tmax()
1279 data->pwm_trange[attr->index] = temp; in set_pwm_tmax()
1282 mutex_unlock(&data->lock); in set_pwm_tmax()
1292 struct adt7462_data *data = adt7462_update_device(dev); in show_pwm_tmin() local
1293 return sprintf(buf, "%d\n", 1000 * (data->pwm_tmin[attr->index] - 64)); in show_pwm_tmin()
1302 struct adt7462_data *data = dev_get_drvdata(dev); in set_pwm_tmin() local
1303 struct i2c_client *client = data->client; in set_pwm_tmin()
1312 mutex_lock(&data->lock); in set_pwm_tmin()
1313 data->pwm_tmin[attr->index] = temp; in set_pwm_tmin()
1316 mutex_unlock(&data->lock); in set_pwm_tmin()
1326 struct adt7462_data *data = adt7462_update_device(dev); in show_pwm_auto() local
1327 int cfg = data->pwm_cfg[attr->index] >> ADT7462_PWM_CHANNEL_SHIFT; in show_pwm_auto()
1340 struct adt7462_data *data, in set_pwm_channel() argument
1344 int temp = data->pwm_cfg[which] & ~ADT7462_PWM_CHANNEL_MASK; in set_pwm_channel()
1347 mutex_lock(&data->lock); in set_pwm_channel()
1348 data->pwm_cfg[which] = temp; in set_pwm_channel()
1350 mutex_unlock(&data->lock); in set_pwm_channel()
1359 struct adt7462_data *data = dev_get_drvdata(dev); in set_pwm_auto() local
1360 struct i2c_client *client = data->client; in set_pwm_auto()
1368 set_pwm_channel(client, data, attr->index, 4); in set_pwm_auto()
1371 set_pwm_channel(client, data, attr->index, 7); in set_pwm_auto()
1383 struct adt7462_data *data = adt7462_update_device(dev); in show_pwm_auto_temp() local
1384 int channel = data->pwm_cfg[attr->index] >> ADT7462_PWM_CHANNEL_SHIFT; in show_pwm_auto_temp()
1418 struct adt7462_data *data = dev_get_drvdata(dev); in set_pwm_auto_temp() local
1419 struct i2c_client *client = data->client; in set_pwm_auto_temp()
1429 set_pwm_channel(client, data, attr->index, temp); in set_pwm_auto_temp()
1907 struct adt7462_data *data; in adt7462_probe() local
1910 data = devm_kzalloc(dev, sizeof(struct adt7462_data), GFP_KERNEL); in adt7462_probe()
1911 if (!data) in adt7462_probe()
1914 data->client = client; in adt7462_probe()
1915 mutex_init(&data->lock); in adt7462_probe()
1920 data, in adt7462_probe()