habanalabs: provide historical maximum of various sensors

Add support for hwmon_in_highest, hwmon_temp_highest and hwmon_curr_highest
attributes. These attributes retrieve the historical maximum voltage,
temperature and current that were sampled, respectively.

Signed-off-by: Christine Gharzuzi <cgharzuzi@habana.ai>
Reviewed-by: Oded Gabbay <oded.gabbay@gmail.com>
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
This commit is contained in:
Christine Gharzuzi 2020-01-28 15:19:38 +02:00 committed by Oded Gabbay
parent d57b83c3df
commit 0da10e683e
2 changed files with 12 additions and 3 deletions

View File

@ -127,6 +127,7 @@ static int hl_read(struct device *dev, enum hwmon_sensor_types type,
case hwmon_temp_max_hyst: case hwmon_temp_max_hyst:
case hwmon_temp_crit_hyst: case hwmon_temp_crit_hyst:
case hwmon_temp_offset: case hwmon_temp_offset:
case hwmon_temp_highest:
break; break;
default: default:
return -EINVAL; return -EINVAL;
@ -139,6 +140,7 @@ static int hl_read(struct device *dev, enum hwmon_sensor_types type,
case hwmon_in_input: case hwmon_in_input:
case hwmon_in_min: case hwmon_in_min:
case hwmon_in_max: case hwmon_in_max:
case hwmon_in_highest:
break; break;
default: default:
return -EINVAL; return -EINVAL;
@ -151,6 +153,7 @@ static int hl_read(struct device *dev, enum hwmon_sensor_types type,
case hwmon_curr_input: case hwmon_curr_input:
case hwmon_curr_min: case hwmon_curr_min:
case hwmon_curr_max: case hwmon_curr_max:
case hwmon_curr_highest:
break; break;
default: default:
return -EINVAL; return -EINVAL;
@ -230,6 +233,7 @@ static umode_t hl_is_visible(const void *data, enum hwmon_sensor_types type,
case hwmon_temp_max_hyst: case hwmon_temp_max_hyst:
case hwmon_temp_crit: case hwmon_temp_crit:
case hwmon_temp_crit_hyst: case hwmon_temp_crit_hyst:
case hwmon_temp_highest:
return 0444; return 0444;
case hwmon_temp_offset: case hwmon_temp_offset:
return 0644; return 0644;
@ -240,6 +244,7 @@ static umode_t hl_is_visible(const void *data, enum hwmon_sensor_types type,
case hwmon_in_input: case hwmon_in_input:
case hwmon_in_min: case hwmon_in_min:
case hwmon_in_max: case hwmon_in_max:
case hwmon_in_highest:
return 0444; return 0444;
} }
break; break;
@ -248,6 +253,7 @@ static umode_t hl_is_visible(const void *data, enum hwmon_sensor_types type,
case hwmon_curr_input: case hwmon_curr_input:
case hwmon_curr_min: case hwmon_curr_min:
case hwmon_curr_max: case hwmon_curr_max:
case hwmon_curr_highest:
return 0444; return 0444;
} }
break; break;

View File

@ -287,19 +287,22 @@ enum armcp_temp_type {
armcp_temp_max_hyst, armcp_temp_max_hyst,
armcp_temp_crit, armcp_temp_crit,
armcp_temp_crit_hyst, armcp_temp_crit_hyst,
armcp_temp_offset = 19 armcp_temp_offset = 19,
armcp_temp_highest = 22
}; };
enum armcp_in_attributes { enum armcp_in_attributes {
armcp_in_input, armcp_in_input,
armcp_in_min, armcp_in_min,
armcp_in_max armcp_in_max,
armcp_in_highest = 7
}; };
enum armcp_curr_attributes { enum armcp_curr_attributes {
armcp_curr_input, armcp_curr_input,
armcp_curr_min, armcp_curr_min,
armcp_curr_max armcp_curr_max,
armcp_curr_highest = 7
}; };
enum armcp_fan_attributes { enum armcp_fan_attributes {