diff options
author | Guenter Roeck <linux@roeck-us.net> | 2016-06-25 22:52:13 -0400 |
---|---|---|
committer | Guenter Roeck <linux@roeck-us.net> | 2016-09-09 00:34:15 -0400 |
commit | 8faee73f92cd4dd4928e6860001315a0cc834c99 (patch) | |
tree | 81534423dfd81831cd094fe4bf3b1cdcf7344421 | |
parent | 6bfcca44a6e7b0a6d92eab39c4cb830516b9568c (diff) |
hwmon: (core) Add fan attribute support to new API
Acked-by: Punit Agrawal <punit.agrawal@arm.com>
Reviewed-by: Jonathan Cameron <jic23@kernel.org>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
-rw-r--r-- | drivers/hwmon/hwmon.c | 16 | ||||
-rw-r--r-- | include/linux/hwmon.h | 27 |
2 files changed, 43 insertions, 0 deletions
diff --git a/drivers/hwmon/hwmon.c b/drivers/hwmon/hwmon.c index 2dd4e0acfe12..4729d4742ab7 100644 --- a/drivers/hwmon/hwmon.c +++ b/drivers/hwmon/hwmon.c | |||
@@ -372,6 +372,20 @@ static const char * const hwmon_humidity_attr_templates[] = { | |||
372 | [hwmon_humidity_fault] = "humidity%d_fault", | 372 | [hwmon_humidity_fault] = "humidity%d_fault", |
373 | }; | 373 | }; |
374 | 374 | ||
375 | static const char * const hwmon_fan_attr_templates[] = { | ||
376 | [hwmon_fan_input] = "fan%d_input", | ||
377 | [hwmon_fan_label] = "fan%d_label", | ||
378 | [hwmon_fan_min] = "fan%d_min", | ||
379 | [hwmon_fan_max] = "fan%d_max", | ||
380 | [hwmon_fan_div] = "fan%d_div", | ||
381 | [hwmon_fan_pulses] = "fan%d_pulses", | ||
382 | [hwmon_fan_target] = "fan%d_target", | ||
383 | [hwmon_fan_alarm] = "fan%d_alarm", | ||
384 | [hwmon_fan_min_alarm] = "fan%d_min_alarm", | ||
385 | [hwmon_fan_max_alarm] = "fan%d_max_alarm", | ||
386 | [hwmon_fan_fault] = "fan%d_fault", | ||
387 | }; | ||
388 | |||
375 | static const char * const *__templates[] = { | 389 | static const char * const *__templates[] = { |
376 | [hwmon_chip] = hwmon_chip_attr_templates, | 390 | [hwmon_chip] = hwmon_chip_attr_templates, |
377 | [hwmon_temp] = hwmon_temp_attr_templates, | 391 | [hwmon_temp] = hwmon_temp_attr_templates, |
@@ -380,6 +394,7 @@ static const char * const *__templates[] = { | |||
380 | [hwmon_power] = hwmon_power_attr_templates, | 394 | [hwmon_power] = hwmon_power_attr_templates, |
381 | [hwmon_energy] = hwmon_energy_attr_templates, | 395 | [hwmon_energy] = hwmon_energy_attr_templates, |
382 | [hwmon_humidity] = hwmon_humidity_attr_templates, | 396 | [hwmon_humidity] = hwmon_humidity_attr_templates, |
397 | [hwmon_fan] = hwmon_fan_attr_templates, | ||
383 | }; | 398 | }; |
384 | 399 | ||
385 | static const int __templates_size[] = { | 400 | static const int __templates_size[] = { |
@@ -390,6 +405,7 @@ static const int __templates_size[] = { | |||
390 | [hwmon_power] = ARRAY_SIZE(hwmon_power_attr_templates), | 405 | [hwmon_power] = ARRAY_SIZE(hwmon_power_attr_templates), |
391 | [hwmon_energy] = ARRAY_SIZE(hwmon_energy_attr_templates), | 406 | [hwmon_energy] = ARRAY_SIZE(hwmon_energy_attr_templates), |
392 | [hwmon_humidity] = ARRAY_SIZE(hwmon_humidity_attr_templates), | 407 | [hwmon_humidity] = ARRAY_SIZE(hwmon_humidity_attr_templates), |
408 | [hwmon_fan] = ARRAY_SIZE(hwmon_fan_attr_templates), | ||
393 | }; | 409 | }; |
394 | 410 | ||
395 | static int hwmon_num_channel_attrs(const struct hwmon_channel_info *info) | 411 | static int hwmon_num_channel_attrs(const struct hwmon_channel_info *info) |
diff --git a/include/linux/hwmon.h b/include/linux/hwmon.h index 57d92f1d779b..74e89d45ff67 100644 --- a/include/linux/hwmon.h +++ b/include/linux/hwmon.h | |||
@@ -27,6 +27,7 @@ enum hwmon_sensor_types { | |||
27 | hwmon_power, | 27 | hwmon_power, |
28 | hwmon_energy, | 28 | hwmon_energy, |
29 | hwmon_humidity, | 29 | hwmon_humidity, |
30 | hwmon_fan, | ||
30 | }; | 31 | }; |
31 | 32 | ||
32 | enum hwmon_chip_attributes { | 33 | enum hwmon_chip_attributes { |
@@ -245,6 +246,32 @@ enum hwmon_humidity_attributes { | |||
245 | #define HWMON_H_ALARM BIT(hwmon_humidity_alarm) | 246 | #define HWMON_H_ALARM BIT(hwmon_humidity_alarm) |
246 | #define HWMON_H_FAULT BIT(hwmon_humidity_fault) | 247 | #define HWMON_H_FAULT BIT(hwmon_humidity_fault) |
247 | 248 | ||
249 | enum hwmon_fan_attributes { | ||
250 | hwmon_fan_input, | ||
251 | hwmon_fan_label, | ||
252 | hwmon_fan_min, | ||
253 | hwmon_fan_max, | ||
254 | hwmon_fan_div, | ||
255 | hwmon_fan_pulses, | ||
256 | hwmon_fan_target, | ||
257 | hwmon_fan_alarm, | ||
258 | hwmon_fan_min_alarm, | ||
259 | hwmon_fan_max_alarm, | ||
260 | hwmon_fan_fault, | ||
261 | }; | ||
262 | |||
263 | #define HWMON_F_INPUT BIT(hwmon_fan_input) | ||
264 | #define HWMON_F_LABEL BIT(hwmon_fan_label) | ||
265 | #define HWMON_F_MIN BIT(hwmon_fan_min) | ||
266 | #define HWMON_F_MAX BIT(hwmon_fan_max) | ||
267 | #define HWMON_F_DIV BIT(hwmon_fan_div) | ||
268 | #define HWMON_F_PULSES BIT(hwmon_fan_pulses) | ||
269 | #define HWMON_F_TARGET BIT(hwmon_fan_target) | ||
270 | #define HWMON_F_ALARM BIT(hwmon_fan_alarm) | ||
271 | #define HWMON_F_MIN_ALARM BIT(hwmon_fan_min_alarm) | ||
272 | #define HWMON_F_MAX_ALARM BIT(hwmon_fan_max_alarm) | ||
273 | #define HWMON_F_FAULT BIT(hwmon_fan_fault) | ||
274 | |||
248 | /** | 275 | /** |
249 | * struct hwmon_ops - hwmon device operations | 276 | * struct hwmon_ops - hwmon device operations |
250 | * @is_visible: Callback to return attribute visibility. Mandatory. | 277 | * @is_visible: Callback to return attribute visibility. Mandatory. |