mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 21:21:41 +00:00
hwmon: (pmbus/core) Add support for rated attributes
Adding implementation for new attributes (rated_min/rated_max) to cover PMBus specification about rated values reporting: MFR_VIN_MIN, MFR_VIN_MAX, MFR_IIN_MAX, MFR_PIN_MAX, MFR_VOUT_MIN, MFR_VOUT_MAX, MFR_IOUT_MAX, MFR_POUT_MAX, MFR_MAX_TEMP_1/2/3. Tested with OpenBMC stack. All rated attributes were available and reported correct values. Signed-off-by: Zbigniew Lukwinski <zbigniew.lukwinski@linux.intel.com> Link: https://lore.kernel.org/r/1596224237-32280-4-git-send-email-zbigniew.lukwinski@linux.intel.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
parent
1967f71267
commit
787c095eda
@ -211,6 +211,10 @@ inX_lcrit_alarm Voltage critical low alarm.
|
||||
inX_crit_alarm Voltage critical high alarm.
|
||||
From VOLTAGE_OV_FAULT status.
|
||||
inX_label "vin", "vcap", or "voutY"
|
||||
inX_rated_min Minimum rated voltage.
|
||||
From MFR_VIN_MIN or MFR_VOUT_MIN register.
|
||||
inX_rated_max Maximum rated voltage.
|
||||
From MFR_VIN_MAX or MFR_VOUT_MAX register.
|
||||
|
||||
currX_input Measured current. From READ_IIN or READ_IOUT register.
|
||||
currX_max Maximum current.
|
||||
@ -230,6 +234,8 @@ currX_crit_alarm Current critical high alarm.
|
||||
currX_label "iin", "iinY", "iinY.Z", "ioutY", or "ioutY.Z",
|
||||
where Y reflects the page number and Z reflects the
|
||||
phase.
|
||||
currX_rated_max Maximum rated current.
|
||||
From MFR_IIN_MAX or MFR_IOUT_MAX register.
|
||||
|
||||
powerX_input Measured power. From READ_PIN or READ_POUT register.
|
||||
powerX_cap Output power cap. From POUT_MAX register.
|
||||
@ -244,10 +250,12 @@ powerX_crit_alarm Output power critical high alarm.
|
||||
powerX_label "pin", "pinY", "pinY.Z", "poutY", or "poutY.Z",
|
||||
where Y reflects the page number and Z reflects the
|
||||
phase.
|
||||
powerX_rated_max Maximum rated power.
|
||||
From MFR_PIN_MAX or MFR_POUT_MAX register.
|
||||
|
||||
tempX_input Measured temperature.
|
||||
From READ_TEMPERATURE_X register.
|
||||
tempX_min Mimimum temperature. From UT_WARN_LIMIT register.
|
||||
tempX_min Minimum temperature. From UT_WARN_LIMIT register.
|
||||
tempX_max Maximum temperature. From OT_WARN_LIMIT register.
|
||||
tempX_lcrit Critical low temperature.
|
||||
From UT_FAULT_LIMIT register.
|
||||
@ -265,4 +273,9 @@ tempX_lcrit_alarm Chip temperature critical low alarm. Set by comparing
|
||||
tempX_crit_alarm Chip temperature critical high alarm. Set by comparing
|
||||
READ_TEMPERATURE_X with OT_FAULT_LIMIT if
|
||||
TEMP_OT_FAULT status is set.
|
||||
tempX_rated_min Minimum rated temperature.
|
||||
From MFR_TAMBIENT_MIN register.
|
||||
tempX_rated_max Maximum rated temperature.
|
||||
From MFR_TAMBIENT_MAX, MFR_MAX_TEMP_1, MFR_MAX_TEMP_2 or
|
||||
MFR_MAX_TEMP_3 register.
|
||||
======================= ========================================================
|
||||
|
@ -119,9 +119,22 @@ enum pmbus_regs {
|
||||
PMBUS_MFR_DATE = 0x9D,
|
||||
PMBUS_MFR_SERIAL = 0x9E,
|
||||
|
||||
PMBUS_MFR_VIN_MIN = 0xA0,
|
||||
PMBUS_MFR_VIN_MAX = 0xA1,
|
||||
PMBUS_MFR_IIN_MAX = 0xA2,
|
||||
PMBUS_MFR_PIN_MAX = 0xA3,
|
||||
PMBUS_MFR_VOUT_MIN = 0xA4,
|
||||
PMBUS_MFR_VOUT_MAX = 0xA5,
|
||||
PMBUS_MFR_IOUT_MAX = 0xA6,
|
||||
PMBUS_MFR_POUT_MAX = 0xA7,
|
||||
|
||||
PMBUS_IC_DEVICE_ID = 0xAD,
|
||||
PMBUS_IC_DEVICE_REV = 0xAE,
|
||||
|
||||
PMBUS_MFR_MAX_TEMP_1 = 0xC0,
|
||||
PMBUS_MFR_MAX_TEMP_2 = 0xC1,
|
||||
PMBUS_MFR_MAX_TEMP_3 = 0xC2,
|
||||
|
||||
/*
|
||||
* Virtual registers.
|
||||
* Useful to support attributes which are not supported by standard PMBus
|
||||
|
@ -1404,6 +1404,12 @@ static const struct pmbus_limit_attr vin_limit_attrs[] = {
|
||||
}, {
|
||||
.reg = PMBUS_VIRT_RESET_VIN_HISTORY,
|
||||
.attr = "reset_history",
|
||||
}, {
|
||||
.reg = PMBUS_MFR_VIN_MIN,
|
||||
.attr = "rated_min",
|
||||
}, {
|
||||
.reg = PMBUS_MFR_VIN_MAX,
|
||||
.attr = "rated_max",
|
||||
},
|
||||
};
|
||||
|
||||
@ -1467,7 +1473,13 @@ static const struct pmbus_limit_attr vout_limit_attrs[] = {
|
||||
}, {
|
||||
.reg = PMBUS_VIRT_RESET_VOUT_HISTORY,
|
||||
.attr = "reset_history",
|
||||
}
|
||||
}, {
|
||||
.reg = PMBUS_MFR_VOUT_MIN,
|
||||
.attr = "rated_min",
|
||||
}, {
|
||||
.reg = PMBUS_MFR_VOUT_MAX,
|
||||
.attr = "rated_max",
|
||||
},
|
||||
};
|
||||
|
||||
static const struct pmbus_sensor_attr voltage_attributes[] = {
|
||||
@ -1537,7 +1549,10 @@ static const struct pmbus_limit_attr iin_limit_attrs[] = {
|
||||
}, {
|
||||
.reg = PMBUS_VIRT_RESET_IIN_HISTORY,
|
||||
.attr = "reset_history",
|
||||
}
|
||||
}, {
|
||||
.reg = PMBUS_MFR_IIN_MAX,
|
||||
.attr = "rated_max",
|
||||
},
|
||||
};
|
||||
|
||||
static const struct pmbus_limit_attr iout_limit_attrs[] = {
|
||||
@ -1571,7 +1586,10 @@ static const struct pmbus_limit_attr iout_limit_attrs[] = {
|
||||
}, {
|
||||
.reg = PMBUS_VIRT_RESET_IOUT_HISTORY,
|
||||
.attr = "reset_history",
|
||||
}
|
||||
}, {
|
||||
.reg = PMBUS_MFR_IOUT_MAX,
|
||||
.attr = "rated_max",
|
||||
},
|
||||
};
|
||||
|
||||
static const struct pmbus_sensor_attr current_attributes[] = {
|
||||
@ -1622,7 +1640,10 @@ static const struct pmbus_limit_attr pin_limit_attrs[] = {
|
||||
}, {
|
||||
.reg = PMBUS_VIRT_RESET_PIN_HISTORY,
|
||||
.attr = "reset_history",
|
||||
}
|
||||
}, {
|
||||
.reg = PMBUS_MFR_PIN_MAX,
|
||||
.attr = "rated_max",
|
||||
},
|
||||
};
|
||||
|
||||
static const struct pmbus_limit_attr pout_limit_attrs[] = {
|
||||
@ -1656,7 +1677,10 @@ static const struct pmbus_limit_attr pout_limit_attrs[] = {
|
||||
}, {
|
||||
.reg = PMBUS_VIRT_RESET_POUT_HISTORY,
|
||||
.attr = "reset_history",
|
||||
}
|
||||
}, {
|
||||
.reg = PMBUS_MFR_POUT_MAX,
|
||||
.attr = "rated_max",
|
||||
},
|
||||
};
|
||||
|
||||
static const struct pmbus_sensor_attr power_attributes[] = {
|
||||
@ -1720,7 +1744,10 @@ static const struct pmbus_limit_attr temp_limit_attrs[] = {
|
||||
}, {
|
||||
.reg = PMBUS_VIRT_RESET_TEMP_HISTORY,
|
||||
.attr = "reset_history",
|
||||
}
|
||||
}, {
|
||||
.reg = PMBUS_MFR_MAX_TEMP_1,
|
||||
.attr = "rated_max",
|
||||
},
|
||||
};
|
||||
|
||||
static const struct pmbus_limit_attr temp_limit_attrs2[] = {
|
||||
@ -1758,7 +1785,10 @@ static const struct pmbus_limit_attr temp_limit_attrs2[] = {
|
||||
}, {
|
||||
.reg = PMBUS_VIRT_RESET_TEMP2_HISTORY,
|
||||
.attr = "reset_history",
|
||||
}
|
||||
}, {
|
||||
.reg = PMBUS_MFR_MAX_TEMP_2,
|
||||
.attr = "rated_max",
|
||||
},
|
||||
};
|
||||
|
||||
static const struct pmbus_limit_attr temp_limit_attrs3[] = {
|
||||
@ -1784,7 +1814,10 @@ static const struct pmbus_limit_attr temp_limit_attrs3[] = {
|
||||
.attr = "crit",
|
||||
.alarm = "crit_alarm",
|
||||
.sbit = PB_TEMP_OT_FAULT,
|
||||
}
|
||||
}, {
|
||||
.reg = PMBUS_MFR_MAX_TEMP_3,
|
||||
.attr = "rated_max",
|
||||
},
|
||||
};
|
||||
|
||||
static const struct pmbus_sensor_attr temp_attributes[] = {
|
||||
|
Loading…
Reference in New Issue
Block a user