.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
---|
1 | 2 | /* |
---|
2 | 3 | * Support for the FTS Systemmonitoring Chip "Teutates" |
---|
3 | 4 | * |
---|
4 | 5 | * Copyright (C) 2016 Fujitsu Technology Solutions GmbH, |
---|
5 | 6 | * Thilo Cestonaro <thilo.cestonaro@ts.fujitsu.com> |
---|
6 | | - * |
---|
7 | | - * This program is free software; you can redistribute it and/or modify |
---|
8 | | - * it under the terms of the GNU General Public License as published by |
---|
9 | | - * the Free Software Foundation; either version 2 of the License, or |
---|
10 | | - * (at your option) any later version. |
---|
11 | | - * |
---|
12 | | - * This program is distributed in the hope that it will be useful, |
---|
13 | | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
14 | | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
---|
15 | | - * GNU General Public License for more details. |
---|
16 | | - * |
---|
17 | 7 | */ |
---|
18 | 8 | #include <linux/err.h> |
---|
19 | 9 | #include <linux/fs.h> |
---|
.. | .. |
---|
352 | 342 | /*****************************************************************************/ |
---|
353 | 343 | /* SysFS handler functions */ |
---|
354 | 344 | /*****************************************************************************/ |
---|
355 | | -static ssize_t show_in_value(struct device *dev, |
---|
| 345 | +static ssize_t in_value_show(struct device *dev, |
---|
356 | 346 | struct device_attribute *devattr, char *buf) |
---|
357 | 347 | { |
---|
358 | 348 | struct fts_data *data = dev_get_drvdata(dev); |
---|
.. | .. |
---|
366 | 356 | return sprintf(buf, "%u\n", data->volt[index]); |
---|
367 | 357 | } |
---|
368 | 358 | |
---|
369 | | -static ssize_t show_temp_value(struct device *dev, |
---|
| 359 | +static ssize_t temp_value_show(struct device *dev, |
---|
370 | 360 | struct device_attribute *devattr, char *buf) |
---|
371 | 361 | { |
---|
372 | 362 | struct fts_data *data = dev_get_drvdata(dev); |
---|
.. | .. |
---|
380 | 370 | return sprintf(buf, "%u\n", data->temp_input[index]); |
---|
381 | 371 | } |
---|
382 | 372 | |
---|
383 | | -static ssize_t show_temp_fault(struct device *dev, |
---|
| 373 | +static ssize_t temp_fault_show(struct device *dev, |
---|
384 | 374 | struct device_attribute *devattr, char *buf) |
---|
385 | 375 | { |
---|
386 | 376 | struct fts_data *data = dev_get_drvdata(dev); |
---|
.. | .. |
---|
395 | 385 | return sprintf(buf, "%d\n", data->temp_input[index] == 0); |
---|
396 | 386 | } |
---|
397 | 387 | |
---|
398 | | -static ssize_t show_temp_alarm(struct device *dev, |
---|
| 388 | +static ssize_t temp_alarm_show(struct device *dev, |
---|
399 | 389 | struct device_attribute *devattr, char *buf) |
---|
400 | 390 | { |
---|
401 | 391 | struct fts_data *data = dev_get_drvdata(dev); |
---|
.. | .. |
---|
410 | 400 | } |
---|
411 | 401 | |
---|
412 | 402 | static ssize_t |
---|
413 | | -clear_temp_alarm(struct device *dev, struct device_attribute *devattr, |
---|
| 403 | +temp_alarm_store(struct device *dev, struct device_attribute *devattr, |
---|
414 | 404 | const char *buf, size_t count) |
---|
415 | 405 | { |
---|
416 | 406 | struct fts_data *data = dev_get_drvdata(dev); |
---|
.. | .. |
---|
441 | 431 | return ret; |
---|
442 | 432 | } |
---|
443 | 433 | |
---|
444 | | -static ssize_t show_fan_value(struct device *dev, |
---|
| 434 | +static ssize_t fan_value_show(struct device *dev, |
---|
445 | 435 | struct device_attribute *devattr, char *buf) |
---|
446 | 436 | { |
---|
447 | 437 | struct fts_data *data = dev_get_drvdata(dev); |
---|
.. | .. |
---|
455 | 445 | return sprintf(buf, "%u\n", data->fan_input[index]); |
---|
456 | 446 | } |
---|
457 | 447 | |
---|
458 | | -static ssize_t show_fan_source(struct device *dev, |
---|
| 448 | +static ssize_t fan_source_show(struct device *dev, |
---|
459 | 449 | struct device_attribute *devattr, char *buf) |
---|
460 | 450 | { |
---|
461 | 451 | struct fts_data *data = dev_get_drvdata(dev); |
---|
.. | .. |
---|
469 | 459 | return sprintf(buf, "%u\n", data->fan_source[index]); |
---|
470 | 460 | } |
---|
471 | 461 | |
---|
472 | | -static ssize_t show_fan_alarm(struct device *dev, |
---|
| 462 | +static ssize_t fan_alarm_show(struct device *dev, |
---|
473 | 463 | struct device_attribute *devattr, char *buf) |
---|
474 | 464 | { |
---|
475 | 465 | struct fts_data *data = dev_get_drvdata(dev); |
---|
.. | .. |
---|
484 | 474 | } |
---|
485 | 475 | |
---|
486 | 476 | static ssize_t |
---|
487 | | -clear_fan_alarm(struct device *dev, struct device_attribute *devattr, |
---|
| 477 | +fan_alarm_store(struct device *dev, struct device_attribute *devattr, |
---|
488 | 478 | const char *buf, size_t count) |
---|
489 | 479 | { |
---|
490 | 480 | struct fts_data *data = dev_get_drvdata(dev); |
---|
.. | .. |
---|
520 | 510 | /*****************************************************************************/ |
---|
521 | 511 | |
---|
522 | 512 | /* Temprature sensors */ |
---|
523 | | -static SENSOR_DEVICE_ATTR(temp1_input, S_IRUGO, show_temp_value, NULL, 0); |
---|
524 | | -static SENSOR_DEVICE_ATTR(temp2_input, S_IRUGO, show_temp_value, NULL, 1); |
---|
525 | | -static SENSOR_DEVICE_ATTR(temp3_input, S_IRUGO, show_temp_value, NULL, 2); |
---|
526 | | -static SENSOR_DEVICE_ATTR(temp4_input, S_IRUGO, show_temp_value, NULL, 3); |
---|
527 | | -static SENSOR_DEVICE_ATTR(temp5_input, S_IRUGO, show_temp_value, NULL, 4); |
---|
528 | | -static SENSOR_DEVICE_ATTR(temp6_input, S_IRUGO, show_temp_value, NULL, 5); |
---|
529 | | -static SENSOR_DEVICE_ATTR(temp7_input, S_IRUGO, show_temp_value, NULL, 6); |
---|
530 | | -static SENSOR_DEVICE_ATTR(temp8_input, S_IRUGO, show_temp_value, NULL, 7); |
---|
531 | | -static SENSOR_DEVICE_ATTR(temp9_input, S_IRUGO, show_temp_value, NULL, 8); |
---|
532 | | -static SENSOR_DEVICE_ATTR(temp10_input, S_IRUGO, show_temp_value, NULL, 9); |
---|
533 | | -static SENSOR_DEVICE_ATTR(temp11_input, S_IRUGO, show_temp_value, NULL, 10); |
---|
534 | | -static SENSOR_DEVICE_ATTR(temp12_input, S_IRUGO, show_temp_value, NULL, 11); |
---|
535 | | -static SENSOR_DEVICE_ATTR(temp13_input, S_IRUGO, show_temp_value, NULL, 12); |
---|
536 | | -static SENSOR_DEVICE_ATTR(temp14_input, S_IRUGO, show_temp_value, NULL, 13); |
---|
537 | | -static SENSOR_DEVICE_ATTR(temp15_input, S_IRUGO, show_temp_value, NULL, 14); |
---|
538 | | -static SENSOR_DEVICE_ATTR(temp16_input, S_IRUGO, show_temp_value, NULL, 15); |
---|
| 513 | +static SENSOR_DEVICE_ATTR_RO(temp1_input, temp_value, 0); |
---|
| 514 | +static SENSOR_DEVICE_ATTR_RO(temp2_input, temp_value, 1); |
---|
| 515 | +static SENSOR_DEVICE_ATTR_RO(temp3_input, temp_value, 2); |
---|
| 516 | +static SENSOR_DEVICE_ATTR_RO(temp4_input, temp_value, 3); |
---|
| 517 | +static SENSOR_DEVICE_ATTR_RO(temp5_input, temp_value, 4); |
---|
| 518 | +static SENSOR_DEVICE_ATTR_RO(temp6_input, temp_value, 5); |
---|
| 519 | +static SENSOR_DEVICE_ATTR_RO(temp7_input, temp_value, 6); |
---|
| 520 | +static SENSOR_DEVICE_ATTR_RO(temp8_input, temp_value, 7); |
---|
| 521 | +static SENSOR_DEVICE_ATTR_RO(temp9_input, temp_value, 8); |
---|
| 522 | +static SENSOR_DEVICE_ATTR_RO(temp10_input, temp_value, 9); |
---|
| 523 | +static SENSOR_DEVICE_ATTR_RO(temp11_input, temp_value, 10); |
---|
| 524 | +static SENSOR_DEVICE_ATTR_RO(temp12_input, temp_value, 11); |
---|
| 525 | +static SENSOR_DEVICE_ATTR_RO(temp13_input, temp_value, 12); |
---|
| 526 | +static SENSOR_DEVICE_ATTR_RO(temp14_input, temp_value, 13); |
---|
| 527 | +static SENSOR_DEVICE_ATTR_RO(temp15_input, temp_value, 14); |
---|
| 528 | +static SENSOR_DEVICE_ATTR_RO(temp16_input, temp_value, 15); |
---|
539 | 529 | |
---|
540 | | -static SENSOR_DEVICE_ATTR(temp1_fault, S_IRUGO, show_temp_fault, NULL, 0); |
---|
541 | | -static SENSOR_DEVICE_ATTR(temp2_fault, S_IRUGO, show_temp_fault, NULL, 1); |
---|
542 | | -static SENSOR_DEVICE_ATTR(temp3_fault, S_IRUGO, show_temp_fault, NULL, 2); |
---|
543 | | -static SENSOR_DEVICE_ATTR(temp4_fault, S_IRUGO, show_temp_fault, NULL, 3); |
---|
544 | | -static SENSOR_DEVICE_ATTR(temp5_fault, S_IRUGO, show_temp_fault, NULL, 4); |
---|
545 | | -static SENSOR_DEVICE_ATTR(temp6_fault, S_IRUGO, show_temp_fault, NULL, 5); |
---|
546 | | -static SENSOR_DEVICE_ATTR(temp7_fault, S_IRUGO, show_temp_fault, NULL, 6); |
---|
547 | | -static SENSOR_DEVICE_ATTR(temp8_fault, S_IRUGO, show_temp_fault, NULL, 7); |
---|
548 | | -static SENSOR_DEVICE_ATTR(temp9_fault, S_IRUGO, show_temp_fault, NULL, 8); |
---|
549 | | -static SENSOR_DEVICE_ATTR(temp10_fault, S_IRUGO, show_temp_fault, NULL, 9); |
---|
550 | | -static SENSOR_DEVICE_ATTR(temp11_fault, S_IRUGO, show_temp_fault, NULL, 10); |
---|
551 | | -static SENSOR_DEVICE_ATTR(temp12_fault, S_IRUGO, show_temp_fault, NULL, 11); |
---|
552 | | -static SENSOR_DEVICE_ATTR(temp13_fault, S_IRUGO, show_temp_fault, NULL, 12); |
---|
553 | | -static SENSOR_DEVICE_ATTR(temp14_fault, S_IRUGO, show_temp_fault, NULL, 13); |
---|
554 | | -static SENSOR_DEVICE_ATTR(temp15_fault, S_IRUGO, show_temp_fault, NULL, 14); |
---|
555 | | -static SENSOR_DEVICE_ATTR(temp16_fault, S_IRUGO, show_temp_fault, NULL, 15); |
---|
| 530 | +static SENSOR_DEVICE_ATTR_RO(temp1_fault, temp_fault, 0); |
---|
| 531 | +static SENSOR_DEVICE_ATTR_RO(temp2_fault, temp_fault, 1); |
---|
| 532 | +static SENSOR_DEVICE_ATTR_RO(temp3_fault, temp_fault, 2); |
---|
| 533 | +static SENSOR_DEVICE_ATTR_RO(temp4_fault, temp_fault, 3); |
---|
| 534 | +static SENSOR_DEVICE_ATTR_RO(temp5_fault, temp_fault, 4); |
---|
| 535 | +static SENSOR_DEVICE_ATTR_RO(temp6_fault, temp_fault, 5); |
---|
| 536 | +static SENSOR_DEVICE_ATTR_RO(temp7_fault, temp_fault, 6); |
---|
| 537 | +static SENSOR_DEVICE_ATTR_RO(temp8_fault, temp_fault, 7); |
---|
| 538 | +static SENSOR_DEVICE_ATTR_RO(temp9_fault, temp_fault, 8); |
---|
| 539 | +static SENSOR_DEVICE_ATTR_RO(temp10_fault, temp_fault, 9); |
---|
| 540 | +static SENSOR_DEVICE_ATTR_RO(temp11_fault, temp_fault, 10); |
---|
| 541 | +static SENSOR_DEVICE_ATTR_RO(temp12_fault, temp_fault, 11); |
---|
| 542 | +static SENSOR_DEVICE_ATTR_RO(temp13_fault, temp_fault, 12); |
---|
| 543 | +static SENSOR_DEVICE_ATTR_RO(temp14_fault, temp_fault, 13); |
---|
| 544 | +static SENSOR_DEVICE_ATTR_RO(temp15_fault, temp_fault, 14); |
---|
| 545 | +static SENSOR_DEVICE_ATTR_RO(temp16_fault, temp_fault, 15); |
---|
556 | 546 | |
---|
557 | | -static SENSOR_DEVICE_ATTR(temp1_alarm, S_IRUGO | S_IWUSR, show_temp_alarm, |
---|
558 | | - clear_temp_alarm, 0); |
---|
559 | | -static SENSOR_DEVICE_ATTR(temp2_alarm, S_IRUGO | S_IWUSR, show_temp_alarm, |
---|
560 | | - clear_temp_alarm, 1); |
---|
561 | | -static SENSOR_DEVICE_ATTR(temp3_alarm, S_IRUGO | S_IWUSR, show_temp_alarm, |
---|
562 | | - clear_temp_alarm, 2); |
---|
563 | | -static SENSOR_DEVICE_ATTR(temp4_alarm, S_IRUGO | S_IWUSR, show_temp_alarm, |
---|
564 | | - clear_temp_alarm, 3); |
---|
565 | | -static SENSOR_DEVICE_ATTR(temp5_alarm, S_IRUGO | S_IWUSR, show_temp_alarm, |
---|
566 | | - clear_temp_alarm, 4); |
---|
567 | | -static SENSOR_DEVICE_ATTR(temp6_alarm, S_IRUGO | S_IWUSR, show_temp_alarm, |
---|
568 | | - clear_temp_alarm, 5); |
---|
569 | | -static SENSOR_DEVICE_ATTR(temp7_alarm, S_IRUGO | S_IWUSR, show_temp_alarm, |
---|
570 | | - clear_temp_alarm, 6); |
---|
571 | | -static SENSOR_DEVICE_ATTR(temp8_alarm, S_IRUGO | S_IWUSR, show_temp_alarm, |
---|
572 | | - clear_temp_alarm, 7); |
---|
573 | | -static SENSOR_DEVICE_ATTR(temp9_alarm, S_IRUGO | S_IWUSR, show_temp_alarm, |
---|
574 | | - clear_temp_alarm, 8); |
---|
575 | | -static SENSOR_DEVICE_ATTR(temp10_alarm, S_IRUGO | S_IWUSR, show_temp_alarm, |
---|
576 | | - clear_temp_alarm, 9); |
---|
577 | | -static SENSOR_DEVICE_ATTR(temp11_alarm, S_IRUGO | S_IWUSR, show_temp_alarm, |
---|
578 | | - clear_temp_alarm, 10); |
---|
579 | | -static SENSOR_DEVICE_ATTR(temp12_alarm, S_IRUGO | S_IWUSR, show_temp_alarm, |
---|
580 | | - clear_temp_alarm, 11); |
---|
581 | | -static SENSOR_DEVICE_ATTR(temp13_alarm, S_IRUGO | S_IWUSR, show_temp_alarm, |
---|
582 | | - clear_temp_alarm, 12); |
---|
583 | | -static SENSOR_DEVICE_ATTR(temp14_alarm, S_IRUGO | S_IWUSR, show_temp_alarm, |
---|
584 | | - clear_temp_alarm, 13); |
---|
585 | | -static SENSOR_DEVICE_ATTR(temp15_alarm, S_IRUGO | S_IWUSR, show_temp_alarm, |
---|
586 | | - clear_temp_alarm, 14); |
---|
587 | | -static SENSOR_DEVICE_ATTR(temp16_alarm, S_IRUGO | S_IWUSR, show_temp_alarm, |
---|
588 | | - clear_temp_alarm, 15); |
---|
| 547 | +static SENSOR_DEVICE_ATTR_RW(temp1_alarm, temp_alarm, 0); |
---|
| 548 | +static SENSOR_DEVICE_ATTR_RW(temp2_alarm, temp_alarm, 1); |
---|
| 549 | +static SENSOR_DEVICE_ATTR_RW(temp3_alarm, temp_alarm, 2); |
---|
| 550 | +static SENSOR_DEVICE_ATTR_RW(temp4_alarm, temp_alarm, 3); |
---|
| 551 | +static SENSOR_DEVICE_ATTR_RW(temp5_alarm, temp_alarm, 4); |
---|
| 552 | +static SENSOR_DEVICE_ATTR_RW(temp6_alarm, temp_alarm, 5); |
---|
| 553 | +static SENSOR_DEVICE_ATTR_RW(temp7_alarm, temp_alarm, 6); |
---|
| 554 | +static SENSOR_DEVICE_ATTR_RW(temp8_alarm, temp_alarm, 7); |
---|
| 555 | +static SENSOR_DEVICE_ATTR_RW(temp9_alarm, temp_alarm, 8); |
---|
| 556 | +static SENSOR_DEVICE_ATTR_RW(temp10_alarm, temp_alarm, 9); |
---|
| 557 | +static SENSOR_DEVICE_ATTR_RW(temp11_alarm, temp_alarm, 10); |
---|
| 558 | +static SENSOR_DEVICE_ATTR_RW(temp12_alarm, temp_alarm, 11); |
---|
| 559 | +static SENSOR_DEVICE_ATTR_RW(temp13_alarm, temp_alarm, 12); |
---|
| 560 | +static SENSOR_DEVICE_ATTR_RW(temp14_alarm, temp_alarm, 13); |
---|
| 561 | +static SENSOR_DEVICE_ATTR_RW(temp15_alarm, temp_alarm, 14); |
---|
| 562 | +static SENSOR_DEVICE_ATTR_RW(temp16_alarm, temp_alarm, 15); |
---|
589 | 563 | |
---|
590 | 564 | static struct attribute *fts_temp_attrs[] = { |
---|
591 | 565 | &sensor_dev_attr_temp1_input.dev_attr.attr, |
---|
.. | .. |
---|
642 | 616 | }; |
---|
643 | 617 | |
---|
644 | 618 | /* Fans */ |
---|
645 | | -static SENSOR_DEVICE_ATTR(fan1_input, S_IRUGO, show_fan_value, NULL, 0); |
---|
646 | | -static SENSOR_DEVICE_ATTR(fan2_input, S_IRUGO, show_fan_value, NULL, 1); |
---|
647 | | -static SENSOR_DEVICE_ATTR(fan3_input, S_IRUGO, show_fan_value, NULL, 2); |
---|
648 | | -static SENSOR_DEVICE_ATTR(fan4_input, S_IRUGO, show_fan_value, NULL, 3); |
---|
649 | | -static SENSOR_DEVICE_ATTR(fan5_input, S_IRUGO, show_fan_value, NULL, 4); |
---|
650 | | -static SENSOR_DEVICE_ATTR(fan6_input, S_IRUGO, show_fan_value, NULL, 5); |
---|
651 | | -static SENSOR_DEVICE_ATTR(fan7_input, S_IRUGO, show_fan_value, NULL, 6); |
---|
652 | | -static SENSOR_DEVICE_ATTR(fan8_input, S_IRUGO, show_fan_value, NULL, 7); |
---|
| 619 | +static SENSOR_DEVICE_ATTR_RO(fan1_input, fan_value, 0); |
---|
| 620 | +static SENSOR_DEVICE_ATTR_RO(fan2_input, fan_value, 1); |
---|
| 621 | +static SENSOR_DEVICE_ATTR_RO(fan3_input, fan_value, 2); |
---|
| 622 | +static SENSOR_DEVICE_ATTR_RO(fan4_input, fan_value, 3); |
---|
| 623 | +static SENSOR_DEVICE_ATTR_RO(fan5_input, fan_value, 4); |
---|
| 624 | +static SENSOR_DEVICE_ATTR_RO(fan6_input, fan_value, 5); |
---|
| 625 | +static SENSOR_DEVICE_ATTR_RO(fan7_input, fan_value, 6); |
---|
| 626 | +static SENSOR_DEVICE_ATTR_RO(fan8_input, fan_value, 7); |
---|
653 | 627 | |
---|
654 | | -static SENSOR_DEVICE_ATTR(fan1_source, S_IRUGO, show_fan_source, NULL, 0); |
---|
655 | | -static SENSOR_DEVICE_ATTR(fan2_source, S_IRUGO, show_fan_source, NULL, 1); |
---|
656 | | -static SENSOR_DEVICE_ATTR(fan3_source, S_IRUGO, show_fan_source, NULL, 2); |
---|
657 | | -static SENSOR_DEVICE_ATTR(fan4_source, S_IRUGO, show_fan_source, NULL, 3); |
---|
658 | | -static SENSOR_DEVICE_ATTR(fan5_source, S_IRUGO, show_fan_source, NULL, 4); |
---|
659 | | -static SENSOR_DEVICE_ATTR(fan6_source, S_IRUGO, show_fan_source, NULL, 5); |
---|
660 | | -static SENSOR_DEVICE_ATTR(fan7_source, S_IRUGO, show_fan_source, NULL, 6); |
---|
661 | | -static SENSOR_DEVICE_ATTR(fan8_source, S_IRUGO, show_fan_source, NULL, 7); |
---|
| 628 | +static SENSOR_DEVICE_ATTR_RO(fan1_source, fan_source, 0); |
---|
| 629 | +static SENSOR_DEVICE_ATTR_RO(fan2_source, fan_source, 1); |
---|
| 630 | +static SENSOR_DEVICE_ATTR_RO(fan3_source, fan_source, 2); |
---|
| 631 | +static SENSOR_DEVICE_ATTR_RO(fan4_source, fan_source, 3); |
---|
| 632 | +static SENSOR_DEVICE_ATTR_RO(fan5_source, fan_source, 4); |
---|
| 633 | +static SENSOR_DEVICE_ATTR_RO(fan6_source, fan_source, 5); |
---|
| 634 | +static SENSOR_DEVICE_ATTR_RO(fan7_source, fan_source, 6); |
---|
| 635 | +static SENSOR_DEVICE_ATTR_RO(fan8_source, fan_source, 7); |
---|
662 | 636 | |
---|
663 | | -static SENSOR_DEVICE_ATTR(fan1_alarm, S_IRUGO | S_IWUSR, |
---|
664 | | - show_fan_alarm, clear_fan_alarm, 0); |
---|
665 | | -static SENSOR_DEVICE_ATTR(fan2_alarm, S_IRUGO | S_IWUSR, |
---|
666 | | - show_fan_alarm, clear_fan_alarm, 1); |
---|
667 | | -static SENSOR_DEVICE_ATTR(fan3_alarm, S_IRUGO | S_IWUSR, |
---|
668 | | - show_fan_alarm, clear_fan_alarm, 2); |
---|
669 | | -static SENSOR_DEVICE_ATTR(fan4_alarm, S_IRUGO | S_IWUSR, |
---|
670 | | - show_fan_alarm, clear_fan_alarm, 3); |
---|
671 | | -static SENSOR_DEVICE_ATTR(fan5_alarm, S_IRUGO | S_IWUSR, |
---|
672 | | - show_fan_alarm, clear_fan_alarm, 4); |
---|
673 | | -static SENSOR_DEVICE_ATTR(fan6_alarm, S_IRUGO | S_IWUSR, |
---|
674 | | - show_fan_alarm, clear_fan_alarm, 5); |
---|
675 | | -static SENSOR_DEVICE_ATTR(fan7_alarm, S_IRUGO | S_IWUSR, |
---|
676 | | - show_fan_alarm, clear_fan_alarm, 6); |
---|
677 | | -static SENSOR_DEVICE_ATTR(fan8_alarm, S_IRUGO | S_IWUSR, |
---|
678 | | - show_fan_alarm, clear_fan_alarm, 7); |
---|
| 637 | +static SENSOR_DEVICE_ATTR_RW(fan1_alarm, fan_alarm, 0); |
---|
| 638 | +static SENSOR_DEVICE_ATTR_RW(fan2_alarm, fan_alarm, 1); |
---|
| 639 | +static SENSOR_DEVICE_ATTR_RW(fan3_alarm, fan_alarm, 2); |
---|
| 640 | +static SENSOR_DEVICE_ATTR_RW(fan4_alarm, fan_alarm, 3); |
---|
| 641 | +static SENSOR_DEVICE_ATTR_RW(fan5_alarm, fan_alarm, 4); |
---|
| 642 | +static SENSOR_DEVICE_ATTR_RW(fan6_alarm, fan_alarm, 5); |
---|
| 643 | +static SENSOR_DEVICE_ATTR_RW(fan7_alarm, fan_alarm, 6); |
---|
| 644 | +static SENSOR_DEVICE_ATTR_RW(fan8_alarm, fan_alarm, 7); |
---|
679 | 645 | |
---|
680 | 646 | static struct attribute *fts_fan_attrs[] = { |
---|
681 | 647 | &sensor_dev_attr_fan1_input.dev_attr.attr, |
---|
.. | .. |
---|
708 | 674 | }; |
---|
709 | 675 | |
---|
710 | 676 | /* Voltages */ |
---|
711 | | -static SENSOR_DEVICE_ATTR(in1_input, S_IRUGO, show_in_value, NULL, 0); |
---|
712 | | -static SENSOR_DEVICE_ATTR(in2_input, S_IRUGO, show_in_value, NULL, 1); |
---|
713 | | -static SENSOR_DEVICE_ATTR(in3_input, S_IRUGO, show_in_value, NULL, 2); |
---|
714 | | -static SENSOR_DEVICE_ATTR(in4_input, S_IRUGO, show_in_value, NULL, 3); |
---|
| 677 | +static SENSOR_DEVICE_ATTR_RO(in1_input, in_value, 0); |
---|
| 678 | +static SENSOR_DEVICE_ATTR_RO(in2_input, in_value, 1); |
---|
| 679 | +static SENSOR_DEVICE_ATTR_RO(in3_input, in_value, 2); |
---|
| 680 | +static SENSOR_DEVICE_ATTR_RO(in4_input, in_value, 3); |
---|
715 | 681 | static struct attribute *fts_voltage_attrs[] = { |
---|
716 | 682 | &sensor_dev_attr_in1_input.dev_attr.attr, |
---|
717 | 683 | &sensor_dev_attr_in2_input.dev_attr.attr, |
---|
.. | .. |
---|
786 | 752 | return 0; |
---|
787 | 753 | } |
---|
788 | 754 | |
---|
789 | | -static int fts_probe(struct i2c_client *client, const struct i2c_device_id *id) |
---|
| 755 | +static int fts_probe(struct i2c_client *client) |
---|
790 | 756 | { |
---|
791 | 757 | u8 revision; |
---|
792 | 758 | struct fts_data *data; |
---|
.. | .. |
---|
853 | 819 | .name = "ftsteutates", |
---|
854 | 820 | }, |
---|
855 | 821 | .id_table = fts_id, |
---|
856 | | - .probe = fts_probe, |
---|
| 822 | + .probe_new = fts_probe, |
---|
857 | 823 | .remove = fts_remove, |
---|
858 | 824 | .detect = fts_detect, |
---|
859 | 825 | .address_list = normal_i2c, |
---|