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

From: Naresh Solanki
Date: Mon Jul 31 2023 - 05:24:22 EST


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.

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