adt7470.c (20c7775aecea04d8ca322039969d49dcf568e0e9) | adt7470.c (ad00a02e34b481396938c5fa62ee642bff7fbb08) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * A hwmon driver for the Analog Devices ADT7470 4 * Copyright (C) 2007 IBM 5 * 6 * Author: Darrick J. Wong <darrick.wong@oracle.com> 7 */ 8 --- 256 unchanged lines hidden (view full) --- 265 break; 266 267 schedule_timeout(msecs_to_jiffies(data->auto_update_interval)); 268 } 269 270 return 0; 271} 272 | 1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * A hwmon driver for the Analog Devices ADT7470 4 * Copyright (C) 2007 IBM 5 * 6 * Author: Darrick J. Wong <darrick.wong@oracle.com> 7 */ 8 --- 256 unchanged lines hidden (view full) --- 265 break; 266 267 schedule_timeout(msecs_to_jiffies(data->auto_update_interval)); 268 } 269 270 return 0; 271} 272 |
273static struct adt7470_data *adt7470_update_device(struct device *dev) | 273static int adt7470_update_sensors(struct adt7470_data *data) |
274{ | 274{ |
275 struct adt7470_data *data = dev_get_drvdata(dev); | |
276 struct i2c_client *client = data->client; | 275 struct i2c_client *client = data->client; |
277 unsigned long local_jiffies = jiffies; | |
278 u8 cfg; 279 int i; | 276 u8 cfg; 277 int i; |
280 int need_sensors = 1; 281 int need_limits = 1; | |
282 | 278 |
283 /* 284 * Figure out if we need to update the shadow registers. 285 * Lockless means that we may occasionally report out of 286 * date data. 287 */ 288 if (time_before(local_jiffies, data->sensors_last_updated + 289 SENSOR_REFRESH_INTERVAL) && 290 data->sensors_valid) 291 need_sensors = 0; 292 293 if (time_before(local_jiffies, data->limits_last_updated + 294 LIMIT_REFRESH_INTERVAL) && 295 data->limits_valid) 296 need_limits = 0; 297 298 if (!need_sensors && !need_limits) 299 return data; 300 301 mutex_lock(&data->lock); 302 if (!need_sensors) 303 goto no_sensor_update; 304 | |
305 if (!data->temperatures_probed) 306 adt7470_read_temperatures(client, data); 307 else 308 for (i = 0; i < ADT7470_TEMP_COUNT; i++) 309 data->temp[i] = i2c_smbus_read_byte_data(client, 310 ADT7470_TEMP_REG(i)); 311 312 for (i = 0; i < ADT7470_FAN_COUNT; i++) --- 34 unchanged lines hidden (view full) --- 347 348 data->alarm = i2c_smbus_read_byte_data(client, ADT7470_REG_ALARM1); 349 if (data->alarm & ADT7470_OOL_ALARM) 350 data->alarm |= ALARM2(i2c_smbus_read_byte_data(client, 351 ADT7470_REG_ALARM2)); 352 data->alarms_mask = adt7470_read_word_data(client, 353 ADT7470_REG_ALARM1_MASK); 354 | 279 if (!data->temperatures_probed) 280 adt7470_read_temperatures(client, data); 281 else 282 for (i = 0; i < ADT7470_TEMP_COUNT; i++) 283 data->temp[i] = i2c_smbus_read_byte_data(client, 284 ADT7470_TEMP_REG(i)); 285 286 for (i = 0; i < ADT7470_FAN_COUNT; i++) --- 34 unchanged lines hidden (view full) --- 321 322 data->alarm = i2c_smbus_read_byte_data(client, ADT7470_REG_ALARM1); 323 if (data->alarm & ADT7470_OOL_ALARM) 324 data->alarm |= ALARM2(i2c_smbus_read_byte_data(client, 325 ADT7470_REG_ALARM2)); 326 data->alarms_mask = adt7470_read_word_data(client, 327 ADT7470_REG_ALARM1_MASK); 328 |
355 data->sensors_last_updated = local_jiffies; 356 data->sensors_valid = 1; | 329 return 0; 330} |
357 | 331 |
358no_sensor_update: 359 if (!need_limits) 360 goto out; | 332static int adt7470_update_limits(struct adt7470_data *data) 333{ 334 struct i2c_client *client = data->client; 335 int i; |
361 362 for (i = 0; i < ADT7470_TEMP_COUNT; i++) { 363 data->temp_min[i] = i2c_smbus_read_byte_data(client, 364 ADT7470_TEMP_MIN_REG(i)); 365 data->temp_max[i] = i2c_smbus_read_byte_data(client, 366 ADT7470_TEMP_MAX_REG(i)); 367 } 368 --- 8 unchanged lines hidden (view full) --- 377 data->pwm_max[i] = i2c_smbus_read_byte_data(client, 378 ADT7470_REG_PWM_MAX(i)); 379 data->pwm_min[i] = i2c_smbus_read_byte_data(client, 380 ADT7470_REG_PWM_MIN(i)); 381 data->pwm_tmin[i] = i2c_smbus_read_byte_data(client, 382 ADT7470_REG_PWM_TMIN(i)); 383 } 384 | 336 337 for (i = 0; i < ADT7470_TEMP_COUNT; i++) { 338 data->temp_min[i] = i2c_smbus_read_byte_data(client, 339 ADT7470_TEMP_MIN_REG(i)); 340 data->temp_max[i] = i2c_smbus_read_byte_data(client, 341 ADT7470_TEMP_MAX_REG(i)); 342 } 343 --- 8 unchanged lines hidden (view full) --- 352 data->pwm_max[i] = i2c_smbus_read_byte_data(client, 353 ADT7470_REG_PWM_MAX(i)); 354 data->pwm_min[i] = i2c_smbus_read_byte_data(client, 355 ADT7470_REG_PWM_MIN(i)); 356 data->pwm_tmin[i] = i2c_smbus_read_byte_data(client, 357 ADT7470_REG_PWM_TMIN(i)); 358 } 359 |
385 data->limits_last_updated = local_jiffies; 386 data->limits_valid = 1; | 360 return 0; 361} |
387 | 362 |
363static struct adt7470_data *adt7470_update_device(struct device *dev) 364{ 365 struct adt7470_data *data = dev_get_drvdata(dev); 366 unsigned long local_jiffies = jiffies; 367 int need_sensors = 1; 368 int need_limits = 1; 369 int err; 370 371 /* 372 * Figure out if we need to update the shadow registers. 373 * Lockless means that we may occasionally report out of 374 * date data. 375 */ 376 if (time_before(local_jiffies, data->sensors_last_updated + 377 SENSOR_REFRESH_INTERVAL) && 378 data->sensors_valid) 379 need_sensors = 0; 380 381 if (time_before(local_jiffies, data->limits_last_updated + 382 LIMIT_REFRESH_INTERVAL) && 383 data->limits_valid) 384 need_limits = 0; 385 386 if (!need_sensors && !need_limits) 387 return data; 388 389 mutex_lock(&data->lock); 390 if (need_sensors) { 391 err = adt7470_update_sensors(data); 392 if (err < 0) 393 goto out; 394 data->sensors_last_updated = local_jiffies; 395 data->sensors_valid = 1; 396 } 397 398 if (need_limits) { 399 err = adt7470_update_limits(data); 400 if (err < 0) 401 goto out; 402 data->limits_last_updated = local_jiffies; 403 data->limits_valid = 1; 404 } |
|
388out: 389 mutex_unlock(&data->lock); | 405out: 406 mutex_unlock(&data->lock); |
390 return data; | 407 408 return err < 0 ? ERR_PTR(err) : data; |
391} 392 393static ssize_t auto_update_interval_show(struct device *dev, 394 struct device_attribute *devattr, 395 char *buf) 396{ 397 struct adt7470_data *data = adt7470_update_device(dev); | 409} 410 411static ssize_t auto_update_interval_show(struct device *dev, 412 struct device_attribute *devattr, 413 char *buf) 414{ 415 struct adt7470_data *data = adt7470_update_device(dev); |
416 417 if (IS_ERR(data)) 418 return PTR_ERR(data); 419 |
|
398 return sprintf(buf, "%d\n", data->auto_update_interval); 399} 400 401static ssize_t auto_update_interval_store(struct device *dev, 402 struct device_attribute *devattr, 403 const char *buf, size_t count) 404{ 405 struct adt7470_data *data = dev_get_drvdata(dev); --- 11 unchanged lines hidden (view full) --- 417 return count; 418} 419 420static ssize_t num_temp_sensors_show(struct device *dev, 421 struct device_attribute *devattr, 422 char *buf) 423{ 424 struct adt7470_data *data = adt7470_update_device(dev); | 420 return sprintf(buf, "%d\n", data->auto_update_interval); 421} 422 423static ssize_t auto_update_interval_store(struct device *dev, 424 struct device_attribute *devattr, 425 const char *buf, size_t count) 426{ 427 struct adt7470_data *data = dev_get_drvdata(dev); --- 11 unchanged lines hidden (view full) --- 439 return count; 440} 441 442static ssize_t num_temp_sensors_show(struct device *dev, 443 struct device_attribute *devattr, 444 char *buf) 445{ 446 struct adt7470_data *data = adt7470_update_device(dev); |
447 448 if (IS_ERR(data)) 449 return PTR_ERR(data); 450 |
|
425 return sprintf(buf, "%d\n", data->num_temp_sensors); 426} 427 428static ssize_t num_temp_sensors_store(struct device *dev, 429 struct device_attribute *devattr, 430 const char *buf, size_t count) 431{ 432 struct adt7470_data *data = dev_get_drvdata(dev); --- 13 unchanged lines hidden (view full) --- 446 return count; 447} 448 449static ssize_t temp_min_show(struct device *dev, 450 struct device_attribute *devattr, char *buf) 451{ 452 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 453 struct adt7470_data *data = adt7470_update_device(dev); | 451 return sprintf(buf, "%d\n", data->num_temp_sensors); 452} 453 454static ssize_t num_temp_sensors_store(struct device *dev, 455 struct device_attribute *devattr, 456 const char *buf, size_t count) 457{ 458 struct adt7470_data *data = dev_get_drvdata(dev); --- 13 unchanged lines hidden (view full) --- 472 return count; 473} 474 475static ssize_t temp_min_show(struct device *dev, 476 struct device_attribute *devattr, char *buf) 477{ 478 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 479 struct adt7470_data *data = adt7470_update_device(dev); |
480 481 if (IS_ERR(data)) 482 return PTR_ERR(data); 483 |
|
454 return sprintf(buf, "%d\n", 1000 * data->temp_min[attr->index]); 455} 456 457static ssize_t temp_min_store(struct device *dev, 458 struct device_attribute *devattr, 459 const char *buf, size_t count) 460{ 461 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); --- 16 unchanged lines hidden (view full) --- 478 return count; 479} 480 481static ssize_t temp_max_show(struct device *dev, 482 struct device_attribute *devattr, char *buf) 483{ 484 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 485 struct adt7470_data *data = adt7470_update_device(dev); | 484 return sprintf(buf, "%d\n", 1000 * data->temp_min[attr->index]); 485} 486 487static ssize_t temp_min_store(struct device *dev, 488 struct device_attribute *devattr, 489 const char *buf, size_t count) 490{ 491 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); --- 16 unchanged lines hidden (view full) --- 508 return count; 509} 510 511static ssize_t temp_max_show(struct device *dev, 512 struct device_attribute *devattr, char *buf) 513{ 514 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 515 struct adt7470_data *data = adt7470_update_device(dev); |
516 517 if (IS_ERR(data)) 518 return PTR_ERR(data); 519 |
|
486 return sprintf(buf, "%d\n", 1000 * data->temp_max[attr->index]); 487} 488 489static ssize_t temp_max_store(struct device *dev, 490 struct device_attribute *devattr, 491 const char *buf, size_t count) 492{ 493 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); --- 16 unchanged lines hidden (view full) --- 510 return count; 511} 512 513static ssize_t temp_show(struct device *dev, struct device_attribute *devattr, 514 char *buf) 515{ 516 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 517 struct adt7470_data *data = adt7470_update_device(dev); | 520 return sprintf(buf, "%d\n", 1000 * data->temp_max[attr->index]); 521} 522 523static ssize_t temp_max_store(struct device *dev, 524 struct device_attribute *devattr, 525 const char *buf, size_t count) 526{ 527 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); --- 16 unchanged lines hidden (view full) --- 544 return count; 545} 546 547static ssize_t temp_show(struct device *dev, struct device_attribute *devattr, 548 char *buf) 549{ 550 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 551 struct adt7470_data *data = adt7470_update_device(dev); |
552 553 if (IS_ERR(data)) 554 return PTR_ERR(data); 555 |
|
518 return sprintf(buf, "%d\n", 1000 * data->temp[attr->index]); 519} 520 521static ssize_t alarm_mask_show(struct device *dev, 522 struct device_attribute *devattr, 523 char *buf) 524{ 525 struct adt7470_data *data = adt7470_update_device(dev); 526 | 556 return sprintf(buf, "%d\n", 1000 * data->temp[attr->index]); 557} 558 559static ssize_t alarm_mask_show(struct device *dev, 560 struct device_attribute *devattr, 561 char *buf) 562{ 563 struct adt7470_data *data = adt7470_update_device(dev); 564 |
565 if (IS_ERR(data)) 566 return PTR_ERR(data); 567 |
|
527 return sprintf(buf, "%x\n", data->alarms_mask); 528} 529 530static ssize_t alarm_mask_store(struct device *dev, 531 struct device_attribute *devattr, 532 const char *buf, size_t count) 533{ 534 struct adt7470_data *data = dev_get_drvdata(dev); --- 14 unchanged lines hidden (view full) --- 549} 550 551static ssize_t fan_max_show(struct device *dev, 552 struct device_attribute *devattr, char *buf) 553{ 554 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 555 struct adt7470_data *data = adt7470_update_device(dev); 556 | 568 return sprintf(buf, "%x\n", data->alarms_mask); 569} 570 571static ssize_t alarm_mask_store(struct device *dev, 572 struct device_attribute *devattr, 573 const char *buf, size_t count) 574{ 575 struct adt7470_data *data = dev_get_drvdata(dev); --- 14 unchanged lines hidden (view full) --- 590} 591 592static ssize_t fan_max_show(struct device *dev, 593 struct device_attribute *devattr, char *buf) 594{ 595 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 596 struct adt7470_data *data = adt7470_update_device(dev); 597 |
598 if (IS_ERR(data)) 599 return PTR_ERR(data); 600 |
|
557 if (FAN_DATA_VALID(data->fan_max[attr->index])) 558 return sprintf(buf, "%d\n", 559 FAN_PERIOD_TO_RPM(data->fan_max[attr->index])); 560 else 561 return sprintf(buf, "0\n"); 562} 563 564static ssize_t fan_max_store(struct device *dev, --- 20 unchanged lines hidden (view full) --- 585} 586 587static ssize_t fan_min_show(struct device *dev, 588 struct device_attribute *devattr, char *buf) 589{ 590 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 591 struct adt7470_data *data = adt7470_update_device(dev); 592 | 601 if (FAN_DATA_VALID(data->fan_max[attr->index])) 602 return sprintf(buf, "%d\n", 603 FAN_PERIOD_TO_RPM(data->fan_max[attr->index])); 604 else 605 return sprintf(buf, "0\n"); 606} 607 608static ssize_t fan_max_store(struct device *dev, --- 20 unchanged lines hidden (view full) --- 629} 630 631static ssize_t fan_min_show(struct device *dev, 632 struct device_attribute *devattr, char *buf) 633{ 634 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 635 struct adt7470_data *data = adt7470_update_device(dev); 636 |
637 if (IS_ERR(data)) 638 return PTR_ERR(data); 639 |
|
593 if (FAN_DATA_VALID(data->fan_min[attr->index])) 594 return sprintf(buf, "%d\n", 595 FAN_PERIOD_TO_RPM(data->fan_min[attr->index])); 596 else 597 return sprintf(buf, "0\n"); 598} 599 600static ssize_t fan_min_store(struct device *dev, --- 20 unchanged lines hidden (view full) --- 621} 622 623static ssize_t fan_show(struct device *dev, struct device_attribute *devattr, 624 char *buf) 625{ 626 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 627 struct adt7470_data *data = adt7470_update_device(dev); 628 | 640 if (FAN_DATA_VALID(data->fan_min[attr->index])) 641 return sprintf(buf, "%d\n", 642 FAN_PERIOD_TO_RPM(data->fan_min[attr->index])); 643 else 644 return sprintf(buf, "0\n"); 645} 646 647static ssize_t fan_min_store(struct device *dev, --- 20 unchanged lines hidden (view full) --- 668} 669 670static ssize_t fan_show(struct device *dev, struct device_attribute *devattr, 671 char *buf) 672{ 673 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 674 struct adt7470_data *data = adt7470_update_device(dev); 675 |
676 if (IS_ERR(data)) 677 return PTR_ERR(data); 678 |
|
629 if (FAN_DATA_VALID(data->fan[attr->index])) 630 return sprintf(buf, "%d\n", 631 FAN_PERIOD_TO_RPM(data->fan[attr->index])); 632 else 633 return sprintf(buf, "0\n"); 634} 635 636static ssize_t force_pwm_max_show(struct device *dev, 637 struct device_attribute *devattr, char *buf) 638{ 639 struct adt7470_data *data = adt7470_update_device(dev); | 679 if (FAN_DATA_VALID(data->fan[attr->index])) 680 return sprintf(buf, "%d\n", 681 FAN_PERIOD_TO_RPM(data->fan[attr->index])); 682 else 683 return sprintf(buf, "0\n"); 684} 685 686static ssize_t force_pwm_max_show(struct device *dev, 687 struct device_attribute *devattr, char *buf) 688{ 689 struct adt7470_data *data = adt7470_update_device(dev); |
690 691 if (IS_ERR(data)) 692 return PTR_ERR(data); 693 |
|
640 return sprintf(buf, "%d\n", data->force_pwm_max); 641} 642 643static ssize_t force_pwm_max_store(struct device *dev, 644 struct device_attribute *devattr, 645 const char *buf, size_t count) 646{ 647 struct adt7470_data *data = dev_get_drvdata(dev); --- 17 unchanged lines hidden (view full) --- 665 return count; 666} 667 668static ssize_t pwm_show(struct device *dev, struct device_attribute *devattr, 669 char *buf) 670{ 671 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 672 struct adt7470_data *data = adt7470_update_device(dev); | 694 return sprintf(buf, "%d\n", data->force_pwm_max); 695} 696 697static ssize_t force_pwm_max_store(struct device *dev, 698 struct device_attribute *devattr, 699 const char *buf, size_t count) 700{ 701 struct adt7470_data *data = dev_get_drvdata(dev); --- 17 unchanged lines hidden (view full) --- 719 return count; 720} 721 722static ssize_t pwm_show(struct device *dev, struct device_attribute *devattr, 723 char *buf) 724{ 725 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 726 struct adt7470_data *data = adt7470_update_device(dev); |
727 728 if (IS_ERR(data)) 729 return PTR_ERR(data); 730 |
|
673 return sprintf(buf, "%d\n", data->pwm[attr->index]); 674} 675 676static ssize_t pwm_store(struct device *dev, struct device_attribute *devattr, 677 const char *buf, size_t count) 678{ 679 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 680 struct adt7470_data *data = dev_get_drvdata(dev); --- 77 unchanged lines hidden (view full) --- 758 return count; 759} 760 761static ssize_t pwm_max_show(struct device *dev, 762 struct device_attribute *devattr, char *buf) 763{ 764 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 765 struct adt7470_data *data = adt7470_update_device(dev); | 731 return sprintf(buf, "%d\n", data->pwm[attr->index]); 732} 733 734static ssize_t pwm_store(struct device *dev, struct device_attribute *devattr, 735 const char *buf, size_t count) 736{ 737 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 738 struct adt7470_data *data = dev_get_drvdata(dev); --- 77 unchanged lines hidden (view full) --- 816 return count; 817} 818 819static ssize_t pwm_max_show(struct device *dev, 820 struct device_attribute *devattr, char *buf) 821{ 822 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 823 struct adt7470_data *data = adt7470_update_device(dev); |
824 825 if (IS_ERR(data)) 826 return PTR_ERR(data); 827 |
|
766 return sprintf(buf, "%d\n", data->pwm_max[attr->index]); 767} 768 769static ssize_t pwm_max_store(struct device *dev, 770 struct device_attribute *devattr, 771 const char *buf, size_t count) 772{ 773 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); --- 15 unchanged lines hidden (view full) --- 789 return count; 790} 791 792static ssize_t pwm_min_show(struct device *dev, 793 struct device_attribute *devattr, char *buf) 794{ 795 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 796 struct adt7470_data *data = adt7470_update_device(dev); | 828 return sprintf(buf, "%d\n", data->pwm_max[attr->index]); 829} 830 831static ssize_t pwm_max_store(struct device *dev, 832 struct device_attribute *devattr, 833 const char *buf, size_t count) 834{ 835 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); --- 15 unchanged lines hidden (view full) --- 851 return count; 852} 853 854static ssize_t pwm_min_show(struct device *dev, 855 struct device_attribute *devattr, char *buf) 856{ 857 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 858 struct adt7470_data *data = adt7470_update_device(dev); |
859 860 if (IS_ERR(data)) 861 return PTR_ERR(data); 862 |
|
797 return sprintf(buf, "%d\n", data->pwm_min[attr->index]); 798} 799 800static ssize_t pwm_min_store(struct device *dev, 801 struct device_attribute *devattr, 802 const char *buf, size_t count) 803{ 804 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); --- 15 unchanged lines hidden (view full) --- 820 return count; 821} 822 823static ssize_t pwm_tmax_show(struct device *dev, 824 struct device_attribute *devattr, char *buf) 825{ 826 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 827 struct adt7470_data *data = adt7470_update_device(dev); | 863 return sprintf(buf, "%d\n", data->pwm_min[attr->index]); 864} 865 866static ssize_t pwm_min_store(struct device *dev, 867 struct device_attribute *devattr, 868 const char *buf, size_t count) 869{ 870 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); --- 15 unchanged lines hidden (view full) --- 886 return count; 887} 888 889static ssize_t pwm_tmax_show(struct device *dev, 890 struct device_attribute *devattr, char *buf) 891{ 892 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 893 struct adt7470_data *data = adt7470_update_device(dev); |
894 895 if (IS_ERR(data)) 896 return PTR_ERR(data); 897 |
|
828 /* the datasheet says that tmax = tmin + 20C */ 829 return sprintf(buf, "%d\n", 1000 * (20 + data->pwm_tmin[attr->index])); 830} 831 832static ssize_t pwm_tmin_show(struct device *dev, 833 struct device_attribute *devattr, char *buf) 834{ 835 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 836 struct adt7470_data *data = adt7470_update_device(dev); | 898 /* the datasheet says that tmax = tmin + 20C */ 899 return sprintf(buf, "%d\n", 1000 * (20 + data->pwm_tmin[attr->index])); 900} 901 902static ssize_t pwm_tmin_show(struct device *dev, 903 struct device_attribute *devattr, char *buf) 904{ 905 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 906 struct adt7470_data *data = adt7470_update_device(dev); |
907 908 if (IS_ERR(data)) 909 return PTR_ERR(data); 910 |
|
837 return sprintf(buf, "%d\n", 1000 * data->pwm_tmin[attr->index]); 838} 839 840static ssize_t pwm_tmin_store(struct device *dev, 841 struct device_attribute *devattr, 842 const char *buf, size_t count) 843{ 844 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); --- 16 unchanged lines hidden (view full) --- 861 return count; 862} 863 864static ssize_t pwm_auto_show(struct device *dev, 865 struct device_attribute *devattr, char *buf) 866{ 867 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 868 struct adt7470_data *data = adt7470_update_device(dev); | 911 return sprintf(buf, "%d\n", 1000 * data->pwm_tmin[attr->index]); 912} 913 914static ssize_t pwm_tmin_store(struct device *dev, 915 struct device_attribute *devattr, 916 const char *buf, size_t count) 917{ 918 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); --- 16 unchanged lines hidden (view full) --- 935 return count; 936} 937 938static ssize_t pwm_auto_show(struct device *dev, 939 struct device_attribute *devattr, char *buf) 940{ 941 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 942 struct adt7470_data *data = adt7470_update_device(dev); |
943 944 if (IS_ERR(data)) 945 return PTR_ERR(data); 946 |
|
869 return sprintf(buf, "%d\n", 1 + data->pwm_automatic[attr->index]); 870} 871 872static ssize_t pwm_auto_store(struct device *dev, 873 struct device_attribute *devattr, 874 const char *buf, size_t count) 875{ 876 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); --- 29 unchanged lines hidden (view full) --- 906 return count; 907} 908 909static ssize_t pwm_auto_temp_show(struct device *dev, 910 struct device_attribute *devattr, char *buf) 911{ 912 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 913 struct adt7470_data *data = adt7470_update_device(dev); | 947 return sprintf(buf, "%d\n", 1 + data->pwm_automatic[attr->index]); 948} 949 950static ssize_t pwm_auto_store(struct device *dev, 951 struct device_attribute *devattr, 952 const char *buf, size_t count) 953{ 954 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); --- 29 unchanged lines hidden (view full) --- 984 return count; 985} 986 987static ssize_t pwm_auto_temp_show(struct device *dev, 988 struct device_attribute *devattr, char *buf) 989{ 990 struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr); 991 struct adt7470_data *data = adt7470_update_device(dev); |
914 u8 ctrl = data->pwm_auto_temp[attr->index]; | 992 u8 ctrl; |
915 | 993 |
994 if (IS_ERR(data)) 995 return PTR_ERR(data); 996 997 ctrl = data->pwm_auto_temp[attr->index]; |
|
916 if (ctrl) 917 return sprintf(buf, "%d\n", 1 << (ctrl - 1)); 918 else 919 return sprintf(buf, "%d\n", ADT7470_PWM_ALL_TEMPS); 920} 921 922static int cvt_auto_temp(int input) 923{ --- 366 unchanged lines hidden --- | 998 if (ctrl) 999 return sprintf(buf, "%d\n", 1 << (ctrl - 1)); 1000 else 1001 return sprintf(buf, "%d\n", ADT7470_PWM_ALL_TEMPS); 1002} 1003 1004static int cvt_auto_temp(int input) 1005{ --- 366 unchanged lines hidden --- |