Re: [PATCH] hwmon: (pmbus/mp2975) Fix PGOOD in READ_STATUS_WORD

From: Naresh Solanki
Date: Fri Jul 28 2023 - 07:28:57 EST


Hi Guenter,


On Fri, 28 Jul 2023 at 15:30, Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
>
> On 7/28/23 01:25, Naresh Solanki wrote:
> > From: Patrick Rudolph <patrick.rudolph@xxxxxxxxxxxxx>
> >
> > MPS returns PGOOD instead of PB_STATUS_POWER_GOOD_N.
> > Fix that in the read_word_data hook.
> >
> Datasheets are not public, so I can not verify, but the code below
> only handles MP2973 and MP2971. What about MP2975 ?
I dont have MP2975 to even verify. I'm not sure if its applicable.
>
> Either case, this appears to affect most Monolithic chips, but
> not all of them. Please limit the statement to known to be affected
> chips.
Yes. With what we observed, this affects mp2973 & mp2971.
Will update accordingly.
>
> > Signed-off-by: Patrick Rudolph <patrick.rudolph@xxxxxxxxxxxxx>
> > Signed-off-by: Naresh Solanki <Naresh.Solanki@xxxxxxxxxxxxx>
> > ---
> > drivers/hwmon/pmbus/mp2975.c | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> > diff --git a/drivers/hwmon/pmbus/mp2975.c b/drivers/hwmon/pmbus/mp2975.c
> > index 28f33f4618fa..410b6eae6d02 100644
> > --- a/drivers/hwmon/pmbus/mp2975.c
> > +++ b/drivers/hwmon/pmbus/mp2975.c
> > @@ -297,6 +297,10 @@ static int mp2973_read_word_data(struct i2c_client *client, int page,
> > int ret;
> >
> > switch (reg) {
> > + case PMBUS_STATUS_WORD:
> > + ret = pmbus_read_word_data(client, page, phase, reg);
>
> if (ret < 0)
> return ret;
>
> Please add a comment explaining what is going on.
Sure.
>
> > + ret ^= PB_STATUS_POWER_GOOD_N;
> > + break;
> > case PMBUS_OT_FAULT_LIMIT:
> > ret = mp2975_read_word_helper(client, page, phase, reg,
> > GENMASK(7, 0));
> >
> > base-commit: a4bb1ce5b9e3ca403c04e20ebeae77fd6447cb11
>