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

From: Guenter Roeck
Date: Mon Jul 31 2023 - 09:53:41 EST


On 7/31/23 02:54, Vadim Pasternak wrote:


-----Original Message-----
From: Naresh Solanki <naresh.solanki@xxxxxxxxxxxxx>
Sent: Monday, 31 July 2023 12:22
To: Guenter Roeck <linux@xxxxxxxxxxxx>; Jean Delvare <jdelvare@xxxxxxxx>
Cc: Vadim Pasternak <vadimp@xxxxxxxxxx>; Patrick Rudolph
<patrick.rudolph@xxxxxxxxxxxxx>; Naresh Solanki
<Naresh.Solanki@xxxxxxxxxxxxx>; linux-hwmon@xxxxxxxxxxxxxxx; linux-
kernel@xxxxxxxxxxxxxxx
Subject: [PATCH v2] hwmon: (pmbus/mp2975) Fix PGOOD in
READ_STATUS_WORD

From: Patrick Rudolph <patrick.rudolph@xxxxxxxxxxxxx>

MP2973 & MP2971 returns PGOOD instead of PB_STATUS_POWER_GOOD_N.
Fix that in the read_word_data hook.
MP2975 might be affected but needs verification.

Hi,

According to MP2975 regmap datasheet for STATUS_WORD, bit 11 reports:
11 POWER_GOOD_N 1’b0: PG is active.
1’b1: PG not active has occurred
Is it the same what stays MP2971 and MP2973 docs?


I don't have a datasheet for any of the chips, so I can not confirm
either way. The above looks like the standard definition, suggesting
that MP2975 would not be affected.

If that is the case, the commit should say that MP2975 is not affected
according to the datasheet, but that this has not been confirmed on
real hardware (unless you can confirm it).

Thanks,
Guenter

Thanks,
Vadim.


Signed-off-by: Patrick Rudolph <patrick.rudolph@xxxxxxxxxxxxx>
Signed-off-by: Naresh Solanki <Naresh.Solanki@xxxxxxxxxxxxx>
---
drivers/hwmon/pmbus/mp2975.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/drivers/hwmon/pmbus/mp2975.c
b/drivers/hwmon/pmbus/mp2975.c index 28f33f4618fa..27bb39370662
100644
--- a/drivers/hwmon/pmbus/mp2975.c
+++ b/drivers/hwmon/pmbus/mp2975.c
@@ -297,6 +297,11 @@ static int mp2973_read_word_data(struct i2c_client
*client, int page,
int ret;

switch (reg) {
+ case PMBUS_STATUS_WORD:
+ /* MP2973 & MP2971 returns PGOOD instead of
PB_STATUS_POWER_GOOD_N. */
+ ret = pmbus_read_word_data(client, page, phase, reg);
+ 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: cb7022b8976e3c4d12cea2e7bb820a2944e2fd7b
--
2.41.0