diff options
author | Roger Lucas <vt8231@hiddenengine.co.uk> | 2015-05-12 17:01:37 -0400 |
---|---|---|
committer | Jean Delvare <jdelvare@suse.de> | 2015-07-03 08:39:05 -0400 |
commit | f617f7310cfdca5245a10629979d85682323f1a4 (patch) | |
tree | 1eaaffb7cc024f7ad86e98cd54489b54dfe6702e /drivers/hwmon/w83792d.c | |
parent | 9bdc771f2c29a11920f477fba05a58e23ee42554 (diff) |
hwmon: (w83792d) Additional PWM outputs support
Add pwm[4-7] and the associated pwm[4-7]_mode attributes.
Signed-off-by: Roger Lucas <vt8231@hiddenengine.co.uk>
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Diffstat (limited to 'drivers/hwmon/w83792d.c')
-rw-r--r-- | drivers/hwmon/w83792d.c | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/drivers/hwmon/w83792d.c b/drivers/hwmon/w83792d.c index 4068db4d9580..0a8bce726b4b 100644 --- a/drivers/hwmon/w83792d.c +++ b/drivers/hwmon/w83792d.c | |||
@@ -289,10 +289,7 @@ struct w83792d_data { | |||
289 | u8 temp1[3]; /* current, over, thyst */ | 289 | u8 temp1[3]; /* current, over, thyst */ |
290 | u8 temp_add[2][6]; /* Register value */ | 290 | u8 temp_add[2][6]; /* Register value */ |
291 | u8 fan_div[7]; /* Register encoding, shifted right */ | 291 | u8 fan_div[7]; /* Register encoding, shifted right */ |
292 | u8 pwm[7]; /* | 292 | u8 pwm[7]; /* The 7 PWM outputs */ |
293 | * We only consider the first 3 set of pwm, | ||
294 | * although 792 chip has 7 set of pwm. | ||
295 | */ | ||
296 | u8 pwmenable[3]; | 293 | u8 pwmenable[3]; |
297 | u32 alarms; /* realtime status register encoding,combined */ | 294 | u32 alarms; /* realtime status register encoding,combined */ |
298 | u8 chassis; /* Chassis status */ | 295 | u8 chassis; /* Chassis status */ |
@@ -1075,6 +1072,10 @@ static DEVICE_ATTR(intrusion0_alarm, S_IRUGO | S_IWUSR, | |||
1075 | static SENSOR_DEVICE_ATTR(pwm1, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 0); | 1072 | static SENSOR_DEVICE_ATTR(pwm1, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 0); |
1076 | static SENSOR_DEVICE_ATTR(pwm2, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 1); | 1073 | static SENSOR_DEVICE_ATTR(pwm2, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 1); |
1077 | static SENSOR_DEVICE_ATTR(pwm3, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 2); | 1074 | static SENSOR_DEVICE_ATTR(pwm3, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 2); |
1075 | static SENSOR_DEVICE_ATTR(pwm4, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 3); | ||
1076 | static SENSOR_DEVICE_ATTR(pwm5, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 4); | ||
1077 | static SENSOR_DEVICE_ATTR(pwm6, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 5); | ||
1078 | static SENSOR_DEVICE_ATTR(pwm7, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 6); | ||
1078 | static SENSOR_DEVICE_ATTR(pwm1_enable, S_IWUSR | S_IRUGO, | 1079 | static SENSOR_DEVICE_ATTR(pwm1_enable, S_IWUSR | S_IRUGO, |
1079 | show_pwmenable, store_pwmenable, 1); | 1080 | show_pwmenable, store_pwmenable, 1); |
1080 | static SENSOR_DEVICE_ATTR(pwm2_enable, S_IWUSR | S_IRUGO, | 1081 | static SENSOR_DEVICE_ATTR(pwm2_enable, S_IWUSR | S_IRUGO, |
@@ -1087,6 +1088,14 @@ static SENSOR_DEVICE_ATTR(pwm2_mode, S_IWUSR | S_IRUGO, | |||
1087 | show_pwm_mode, store_pwm_mode, 1); | 1088 | show_pwm_mode, store_pwm_mode, 1); |
1088 | static SENSOR_DEVICE_ATTR(pwm3_mode, S_IWUSR | S_IRUGO, | 1089 | static SENSOR_DEVICE_ATTR(pwm3_mode, S_IWUSR | S_IRUGO, |
1089 | show_pwm_mode, store_pwm_mode, 2); | 1090 | show_pwm_mode, store_pwm_mode, 2); |
1091 | static SENSOR_DEVICE_ATTR(pwm4_mode, S_IWUSR | S_IRUGO, | ||
1092 | show_pwm_mode, store_pwm_mode, 3); | ||
1093 | static SENSOR_DEVICE_ATTR(pwm5_mode, S_IWUSR | S_IRUGO, | ||
1094 | show_pwm_mode, store_pwm_mode, 4); | ||
1095 | static SENSOR_DEVICE_ATTR(pwm6_mode, S_IWUSR | S_IRUGO, | ||
1096 | show_pwm_mode, store_pwm_mode, 5); | ||
1097 | static SENSOR_DEVICE_ATTR(pwm7_mode, S_IWUSR | S_IRUGO, | ||
1098 | show_pwm_mode, store_pwm_mode, 6); | ||
1090 | static SENSOR_DEVICE_ATTR(tolerance1, S_IWUSR | S_IRUGO, | 1099 | static SENSOR_DEVICE_ATTR(tolerance1, S_IWUSR | S_IRUGO, |
1091 | show_tolerance, store_tolerance, 1); | 1100 | show_tolerance, store_tolerance, 1); |
1092 | static SENSOR_DEVICE_ATTR(tolerance2, S_IWUSR | S_IRUGO, | 1101 | static SENSOR_DEVICE_ATTR(tolerance2, S_IWUSR | S_IRUGO, |
@@ -1177,30 +1186,38 @@ static SENSOR_DEVICE_ATTR(fan6_div, S_IWUSR | S_IRUGO, | |||
1177 | static SENSOR_DEVICE_ATTR(fan7_div, S_IWUSR | S_IRUGO, | 1186 | static SENSOR_DEVICE_ATTR(fan7_div, S_IWUSR | S_IRUGO, |
1178 | show_fan_div, store_fan_div, 7); | 1187 | show_fan_div, store_fan_div, 7); |
1179 | 1188 | ||
1180 | static struct attribute *w83792d_attributes_fan[4][5] = { | 1189 | static struct attribute *w83792d_attributes_fan[4][7] = { |
1181 | { | 1190 | { |
1182 | &sensor_dev_attr_fan4_input.dev_attr.attr, | 1191 | &sensor_dev_attr_fan4_input.dev_attr.attr, |
1183 | &sensor_dev_attr_fan4_min.dev_attr.attr, | 1192 | &sensor_dev_attr_fan4_min.dev_attr.attr, |
1184 | &sensor_dev_attr_fan4_div.dev_attr.attr, | 1193 | &sensor_dev_attr_fan4_div.dev_attr.attr, |
1185 | &sensor_dev_attr_fan4_alarm.dev_attr.attr, | 1194 | &sensor_dev_attr_fan4_alarm.dev_attr.attr, |
1195 | &sensor_dev_attr_pwm4.dev_attr.attr, | ||
1196 | &sensor_dev_attr_pwm4_mode.dev_attr.attr, | ||
1186 | NULL | 1197 | NULL |
1187 | }, { | 1198 | }, { |
1188 | &sensor_dev_attr_fan5_input.dev_attr.attr, | 1199 | &sensor_dev_attr_fan5_input.dev_attr.attr, |
1189 | &sensor_dev_attr_fan5_min.dev_attr.attr, | 1200 | &sensor_dev_attr_fan5_min.dev_attr.attr, |
1190 | &sensor_dev_attr_fan5_div.dev_attr.attr, | 1201 | &sensor_dev_attr_fan5_div.dev_attr.attr, |
1191 | &sensor_dev_attr_fan5_alarm.dev_attr.attr, | 1202 | &sensor_dev_attr_fan5_alarm.dev_attr.attr, |
1203 | &sensor_dev_attr_pwm5.dev_attr.attr, | ||
1204 | &sensor_dev_attr_pwm5_mode.dev_attr.attr, | ||
1192 | NULL | 1205 | NULL |
1193 | }, { | 1206 | }, { |
1194 | &sensor_dev_attr_fan6_input.dev_attr.attr, | 1207 | &sensor_dev_attr_fan6_input.dev_attr.attr, |
1195 | &sensor_dev_attr_fan6_min.dev_attr.attr, | 1208 | &sensor_dev_attr_fan6_min.dev_attr.attr, |
1196 | &sensor_dev_attr_fan6_div.dev_attr.attr, | 1209 | &sensor_dev_attr_fan6_div.dev_attr.attr, |
1197 | &sensor_dev_attr_fan6_alarm.dev_attr.attr, | 1210 | &sensor_dev_attr_fan6_alarm.dev_attr.attr, |
1211 | &sensor_dev_attr_pwm6.dev_attr.attr, | ||
1212 | &sensor_dev_attr_pwm6_mode.dev_attr.attr, | ||
1198 | NULL | 1213 | NULL |
1199 | }, { | 1214 | }, { |
1200 | &sensor_dev_attr_fan7_input.dev_attr.attr, | 1215 | &sensor_dev_attr_fan7_input.dev_attr.attr, |
1201 | &sensor_dev_attr_fan7_min.dev_attr.attr, | 1216 | &sensor_dev_attr_fan7_min.dev_attr.attr, |
1202 | &sensor_dev_attr_fan7_div.dev_attr.attr, | 1217 | &sensor_dev_attr_fan7_div.dev_attr.attr, |
1203 | &sensor_dev_attr_fan7_alarm.dev_attr.attr, | 1218 | &sensor_dev_attr_fan7_alarm.dev_attr.attr, |
1219 | &sensor_dev_attr_pwm7.dev_attr.attr, | ||
1220 | &sensor_dev_attr_pwm7_mode.dev_attr.attr, | ||
1204 | NULL | 1221 | NULL |
1205 | } | 1222 | } |
1206 | }; | 1223 | }; |