18
18
Sis950 A clone of the IT8705F
19
19
20
20
Copyright (C) 2001 Chris Gauthron
21
- Copyright (C) 2005-2006 Jean Delvare <khali@linux-fr.org>
21
+ Copyright (C) 2005-2007 Jean Delvare <khali@linux-fr.org>
22
22
23
23
This program is free software; you can redistribute it and/or modify
24
24
it under the terms of the GNU General Public License as published by
@@ -780,6 +780,30 @@ static ssize_t show_alarms(struct device *dev, struct device_attribute *attr, ch
780
780
}
781
781
static DEVICE_ATTR (alarms , S_IRUGO , show_alarms , NULL) ;
782
782
783
+ static ssize_t show_alarm (struct device * dev , struct device_attribute * attr ,
784
+ char * buf )
785
+ {
786
+ int bitnr = to_sensor_dev_attr (attr )-> index ;
787
+ struct it87_data * data = it87_update_device (dev );
788
+ return sprintf (buf , "%u\n" , (data -> alarms >> bitnr ) & 1 );
789
+ }
790
+ static SENSOR_DEVICE_ATTR (in0_alarm , S_IRUGO , show_alarm , NULL, 8 ) ;
791
+ static SENSOR_DEVICE_ATTR (in1_alarm , S_IRUGO , show_alarm , NULL, 9 ) ;
792
+ static SENSOR_DEVICE_ATTR (in2_alarm , S_IRUGO , show_alarm , NULL, 10 ) ;
793
+ static SENSOR_DEVICE_ATTR (in3_alarm , S_IRUGO , show_alarm , NULL, 11 ) ;
794
+ static SENSOR_DEVICE_ATTR (in4_alarm , S_IRUGO , show_alarm , NULL, 12 ) ;
795
+ static SENSOR_DEVICE_ATTR (in5_alarm , S_IRUGO , show_alarm , NULL, 13 ) ;
796
+ static SENSOR_DEVICE_ATTR (in6_alarm , S_IRUGO , show_alarm , NULL, 14 ) ;
797
+ static SENSOR_DEVICE_ATTR (in7_alarm , S_IRUGO , show_alarm , NULL, 15 ) ;
798
+ static SENSOR_DEVICE_ATTR (fan1_alarm , S_IRUGO , show_alarm , NULL, 0 ) ;
799
+ static SENSOR_DEVICE_ATTR (fan2_alarm , S_IRUGO , show_alarm , NULL, 1 ) ;
800
+ static SENSOR_DEVICE_ATTR (fan3_alarm , S_IRUGO , show_alarm , NULL, 2 ) ;
801
+ static SENSOR_DEVICE_ATTR (fan4_alarm , S_IRUGO , show_alarm , NULL, 3 ) ;
802
+ static SENSOR_DEVICE_ATTR (fan5_alarm , S_IRUGO , show_alarm , NULL, 6 ) ;
803
+ static SENSOR_DEVICE_ATTR (temp1_alarm , S_IRUGO , show_alarm , NULL, 16 ) ;
804
+ static SENSOR_DEVICE_ATTR (temp2_alarm , S_IRUGO , show_alarm , NULL, 17 ) ;
805
+ static SENSOR_DEVICE_ATTR (temp3_alarm , S_IRUGO , show_alarm , NULL, 18 ) ;
806
+
783
807
static ssize_t
784
808
show_vrm_reg (struct device * dev , struct device_attribute * attr , char * buf )
785
809
{
@@ -841,6 +865,14 @@ static struct attribute *it87_attributes[] = {
841
865
& sensor_dev_attr_in5_max .dev_attr .attr ,
842
866
& sensor_dev_attr_in6_max .dev_attr .attr ,
843
867
& sensor_dev_attr_in7_max .dev_attr .attr ,
868
+ & sensor_dev_attr_in0_alarm .dev_attr .attr ,
869
+ & sensor_dev_attr_in1_alarm .dev_attr .attr ,
870
+ & sensor_dev_attr_in2_alarm .dev_attr .attr ,
871
+ & sensor_dev_attr_in3_alarm .dev_attr .attr ,
872
+ & sensor_dev_attr_in4_alarm .dev_attr .attr ,
873
+ & sensor_dev_attr_in5_alarm .dev_attr .attr ,
874
+ & sensor_dev_attr_in6_alarm .dev_attr .attr ,
875
+ & sensor_dev_attr_in7_alarm .dev_attr .attr ,
844
876
845
877
& sensor_dev_attr_temp1_input .dev_attr .attr ,
846
878
& sensor_dev_attr_temp2_input .dev_attr .attr ,
@@ -854,6 +886,9 @@ static struct attribute *it87_attributes[] = {
854
886
& sensor_dev_attr_temp1_type .dev_attr .attr ,
855
887
& sensor_dev_attr_temp2_type .dev_attr .attr ,
856
888
& sensor_dev_attr_temp3_type .dev_attr .attr ,
889
+ & sensor_dev_attr_temp1_alarm .dev_attr .attr ,
890
+ & sensor_dev_attr_temp2_alarm .dev_attr .attr ,
891
+ & sensor_dev_attr_temp3_alarm .dev_attr .attr ,
857
892
858
893
& dev_attr_alarms .attr ,
859
894
& dev_attr_name .attr ,
@@ -886,6 +921,12 @@ static struct attribute *it87_attributes_opt[] = {
886
921
& sensor_dev_attr_fan3_min .dev_attr .attr ,
887
922
& sensor_dev_attr_fan3_div .dev_attr .attr ,
888
923
924
+ & sensor_dev_attr_fan1_alarm .dev_attr .attr ,
925
+ & sensor_dev_attr_fan2_alarm .dev_attr .attr ,
926
+ & sensor_dev_attr_fan3_alarm .dev_attr .attr ,
927
+ & sensor_dev_attr_fan4_alarm .dev_attr .attr ,
928
+ & sensor_dev_attr_fan5_alarm .dev_attr .attr ,
929
+
889
930
& sensor_dev_attr_pwm1_enable .dev_attr .attr ,
890
931
& sensor_dev_attr_pwm2_enable .dev_attr .attr ,
891
932
& sensor_dev_attr_pwm3_enable .dev_attr .attr ,
@@ -1031,35 +1072,45 @@ static int __devinit it87_probe(struct platform_device *pdev)
1031
1072
if ((err = device_create_file (dev ,
1032
1073
& sensor_dev_attr_fan1_input16 .dev_attr ))
1033
1074
|| (err = device_create_file (dev ,
1034
- & sensor_dev_attr_fan1_min16 .dev_attr )))
1075
+ & sensor_dev_attr_fan1_min16 .dev_attr ))
1076
+ || (err = device_create_file (dev ,
1077
+ & sensor_dev_attr_fan1_alarm .dev_attr )))
1035
1078
goto ERROR4 ;
1036
1079
}
1037
1080
if (data -> has_fan & (1 << 1 )) {
1038
1081
if ((err = device_create_file (dev ,
1039
1082
& sensor_dev_attr_fan2_input16 .dev_attr ))
1040
1083
|| (err = device_create_file (dev ,
1041
- & sensor_dev_attr_fan2_min16 .dev_attr )))
1084
+ & sensor_dev_attr_fan2_min16 .dev_attr ))
1085
+ || (err = device_create_file (dev ,
1086
+ & sensor_dev_attr_fan2_alarm .dev_attr )))
1042
1087
goto ERROR4 ;
1043
1088
}
1044
1089
if (data -> has_fan & (1 << 2 )) {
1045
1090
if ((err = device_create_file (dev ,
1046
1091
& sensor_dev_attr_fan3_input16 .dev_attr ))
1047
1092
|| (err = device_create_file (dev ,
1048
- & sensor_dev_attr_fan3_min16 .dev_attr )))
1093
+ & sensor_dev_attr_fan3_min16 .dev_attr ))
1094
+ || (err = device_create_file (dev ,
1095
+ & sensor_dev_attr_fan3_alarm .dev_attr )))
1049
1096
goto ERROR4 ;
1050
1097
}
1051
1098
if (data -> has_fan & (1 << 3 )) {
1052
1099
if ((err = device_create_file (dev ,
1053
1100
& sensor_dev_attr_fan4_input16 .dev_attr ))
1054
1101
|| (err = device_create_file (dev ,
1055
- & sensor_dev_attr_fan4_min16 .dev_attr )))
1102
+ & sensor_dev_attr_fan4_min16 .dev_attr ))
1103
+ || (err = device_create_file (dev ,
1104
+ & sensor_dev_attr_fan4_alarm .dev_attr )))
1056
1105
goto ERROR4 ;
1057
1106
}
1058
1107
if (data -> has_fan & (1 << 4 )) {
1059
1108
if ((err = device_create_file (dev ,
1060
1109
& sensor_dev_attr_fan5_input16 .dev_attr ))
1061
1110
|| (err = device_create_file (dev ,
1062
- & sensor_dev_attr_fan5_min16 .dev_attr )))
1111
+ & sensor_dev_attr_fan5_min16 .dev_attr ))
1112
+ || (err = device_create_file (dev ,
1113
+ & sensor_dev_attr_fan5_alarm .dev_attr )))
1063
1114
goto ERROR4 ;
1064
1115
}
1065
1116
} else {
@@ -1070,7 +1121,9 @@ static int __devinit it87_probe(struct platform_device *pdev)
1070
1121
|| (err = device_create_file (dev ,
1071
1122
& sensor_dev_attr_fan1_min .dev_attr ))
1072
1123
|| (err = device_create_file (dev ,
1073
- & sensor_dev_attr_fan1_div .dev_attr )))
1124
+ & sensor_dev_attr_fan1_div .dev_attr ))
1125
+ || (err = device_create_file (dev ,
1126
+ & sensor_dev_attr_fan1_alarm .dev_attr )))
1074
1127
goto ERROR4 ;
1075
1128
}
1076
1129
if (data -> has_fan & (1 << 1 )) {
@@ -1079,7 +1132,9 @@ static int __devinit it87_probe(struct platform_device *pdev)
1079
1132
|| (err = device_create_file (dev ,
1080
1133
& sensor_dev_attr_fan2_min .dev_attr ))
1081
1134
|| (err = device_create_file (dev ,
1082
- & sensor_dev_attr_fan2_div .dev_attr )))
1135
+ & sensor_dev_attr_fan2_div .dev_attr ))
1136
+ || (err = device_create_file (dev ,
1137
+ & sensor_dev_attr_fan2_alarm .dev_attr )))
1083
1138
goto ERROR4 ;
1084
1139
}
1085
1140
if (data -> has_fan & (1 << 2 )) {
@@ -1088,7 +1143,9 @@ static int __devinit it87_probe(struct platform_device *pdev)
1088
1143
|| (err = device_create_file (dev ,
1089
1144
& sensor_dev_attr_fan3_min .dev_attr ))
1090
1145
|| (err = device_create_file (dev ,
1091
- & sensor_dev_attr_fan3_div .dev_attr )))
1146
+ & sensor_dev_attr_fan3_div .dev_attr ))
1147
+ || (err = device_create_file (dev ,
1148
+ & sensor_dev_attr_fan3_alarm .dev_attr )))
1092
1149
goto ERROR4 ;
1093
1150
}
1094
1151
}
0 commit comments