summaryrefslogtreecommitdiffstats
path: root/drivers/hwmon/w83792d.c
diff options
context:
space:
mode:
authorRoger Lucas <vt8231@hiddenengine.co.uk>2015-05-12 17:01:37 -0400
committerJean Delvare <jdelvare@suse.de>2015-07-03 08:39:05 -0400
commitf617f7310cfdca5245a10629979d85682323f1a4 (patch)
tree1eaaffb7cc024f7ad86e98cd54489b54dfe6702e /drivers/hwmon/w83792d.c
parent9bdc771f2c29a11920f477fba05a58e23ee42554 (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.c27
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,
1075static SENSOR_DEVICE_ATTR(pwm1, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 0); 1072static SENSOR_DEVICE_ATTR(pwm1, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 0);
1076static SENSOR_DEVICE_ATTR(pwm2, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 1); 1073static SENSOR_DEVICE_ATTR(pwm2, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 1);
1077static SENSOR_DEVICE_ATTR(pwm3, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 2); 1074static SENSOR_DEVICE_ATTR(pwm3, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 2);
1075static SENSOR_DEVICE_ATTR(pwm4, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 3);
1076static SENSOR_DEVICE_ATTR(pwm5, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 4);
1077static SENSOR_DEVICE_ATTR(pwm6, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 5);
1078static SENSOR_DEVICE_ATTR(pwm7, S_IWUSR | S_IRUGO, show_pwm, store_pwm, 6);
1078static SENSOR_DEVICE_ATTR(pwm1_enable, S_IWUSR | S_IRUGO, 1079static SENSOR_DEVICE_ATTR(pwm1_enable, S_IWUSR | S_IRUGO,
1079 show_pwmenable, store_pwmenable, 1); 1080 show_pwmenable, store_pwmenable, 1);
1080static SENSOR_DEVICE_ATTR(pwm2_enable, S_IWUSR | S_IRUGO, 1081static 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);
1088static SENSOR_DEVICE_ATTR(pwm3_mode, S_IWUSR | S_IRUGO, 1089static 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);
1091static SENSOR_DEVICE_ATTR(pwm4_mode, S_IWUSR | S_IRUGO,
1092 show_pwm_mode, store_pwm_mode, 3);
1093static SENSOR_DEVICE_ATTR(pwm5_mode, S_IWUSR | S_IRUGO,
1094 show_pwm_mode, store_pwm_mode, 4);
1095static SENSOR_DEVICE_ATTR(pwm6_mode, S_IWUSR | S_IRUGO,
1096 show_pwm_mode, store_pwm_mode, 5);
1097static SENSOR_DEVICE_ATTR(pwm7_mode, S_IWUSR | S_IRUGO,
1098 show_pwm_mode, store_pwm_mode, 6);
1090static SENSOR_DEVICE_ATTR(tolerance1, S_IWUSR | S_IRUGO, 1099static SENSOR_DEVICE_ATTR(tolerance1, S_IWUSR | S_IRUGO,
1091 show_tolerance, store_tolerance, 1); 1100 show_tolerance, store_tolerance, 1);
1092static SENSOR_DEVICE_ATTR(tolerance2, S_IWUSR | S_IRUGO, 1101static SENSOR_DEVICE_ATTR(tolerance2, S_IWUSR | S_IRUGO,
@@ -1177,30 +1186,38 @@ static SENSOR_DEVICE_ATTR(fan6_div, S_IWUSR | S_IRUGO,
1177static SENSOR_DEVICE_ATTR(fan7_div, S_IWUSR | S_IRUGO, 1186static 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
1180static struct attribute *w83792d_attributes_fan[4][5] = { 1189static 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};