[PATCH] hwmon: (pmbus) Add Vin unit off handling
Brandon Wyman
bjwyman at gmail.com
Sat Mar 19 11:29:36 AEDT 2022
Joel,
Can you merge this, and the dependent patch to the openbmc/linux kernel?
Dependent patch is in v5.17-rc6 or later kernels: 35f165f08950 (""hwmon:
(pmbus) Clear pmbus fault/warning bits after read").
On 2022-03-18 00:31, Guenter Roeck wrote:
> On Thu, Mar 17, 2022 at 11:21:23PM +0000, Brandon Wyman wrote:
>> If there is an input undervoltage fault, reported in STATUS_INPUT
>> command response, there is quite likely a "Unit Off For Insufficient
>> Input Voltage" condition as well.
>>
>> Add a constant for bit 3 of STATUS_INPUT. Update the Vin limit
>> attributes to include both bits in the mask for clearing faults.
>>
>> If an input undervoltage fault occurs, causing a unit off for
>> insufficient input voltage, but the unit is off bit is not cleared, the
>> STATUS_WORD will not be updated to clear the input fault condition.
>> Including the unit is off bit (bit 3) allows for the input fault
>> condition to completely clear.
>>
>> Signed-off-by: Brandon Wyman <bjwyman at gmail.com>
> Applied.
>
> Thanks,
> Guenter
>
>> ---
>> drivers/hwmon/pmbus/pmbus.h | 1 +
>> drivers/hwmon/pmbus/pmbus_core.c | 2 +-
>> 2 files changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/hwmon/pmbus/pmbus.h b/drivers/hwmon/pmbus/pmbus.h
>> index e0aa8aa46d8c..ef3a8ecde4df 100644
>> --- a/drivers/hwmon/pmbus/pmbus.h
>> +++ b/drivers/hwmon/pmbus/pmbus.h
>> @@ -319,6 +319,7 @@ enum pmbus_fan_mode { percent = 0, rpm };
>> /*
>> * STATUS_VOUT, STATUS_INPUT
>> */
>> +#define PB_VOLTAGE_VIN_OFF BIT(3)
>> #define PB_VOLTAGE_UV_FAULT BIT(4)
>> #define PB_VOLTAGE_UV_WARNING BIT(5)
>> #define PB_VOLTAGE_OV_WARNING BIT(6)
>> diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c
>> index ac2fbee1ba9c..a0d899dc81f0 100644
>> --- a/drivers/hwmon/pmbus/pmbus_core.c
>> +++ b/drivers/hwmon/pmbus/pmbus_core.c
>> @@ -1373,7 +1373,7 @@ static const struct pmbus_limit_attr vin_limit_attrs[] = {
>> .reg = PMBUS_VIN_UV_FAULT_LIMIT,
>> .attr = "lcrit",
>> .alarm = "lcrit_alarm",
>> - .sbit = PB_VOLTAGE_UV_FAULT,
>> + .sbit = (PB_VOLTAGE_UV_FAULT | PB_VOLTAGE_VIN_OFF),
>> }, {
>> .reg = PMBUS_VIN_OV_WARN_LIMIT,
>> .attr = "max",
More information about the openbmc
mailing list