2023-07-31 09:45:26

by Naresh Solanki

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

From: Patrick Rudolph <[email protected]>

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 <[email protected]>
Signed-off-by: Naresh Solanki <[email protected]>
---
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



2023-07-31 11:39:50

by Vadim Pasternak

[permalink] [raw]
Subject: RE: [PATCH v2] hwmon: (pmbus/mp2975) Fix PGOOD in READ_STATUS_WORD



> -----Original Message-----
> From: Naresh Solanki <[email protected]>
> Sent: Monday, 31 July 2023 12:22
> To: Guenter Roeck <[email protected]>; Jean Delvare <[email protected]>
> Cc: Vadim Pasternak <[email protected]>; Patrick Rudolph
> <[email protected]>; Naresh Solanki
> <[email protected]>; [email protected]; linux-
> [email protected]
> Subject: [PATCH v2] hwmon: (pmbus/mp2975) Fix PGOOD in
> READ_STATUS_WORD
>
> From: Patrick Rudolph <[email protected]>
>
> 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?

Thanks,
Vadim.

>
> Signed-off-by: Patrick Rudolph <[email protected]>
> Signed-off-by: Naresh Solanki <[email protected]>
> ---
> 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

2023-07-31 13:57:58

by Guenter Roeck

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

On 7/31/23 02:54, Vadim Pasternak wrote:
>
>
>> -----Original Message-----
>> From: Naresh Solanki <[email protected]>
>> Sent: Monday, 31 July 2023 12:22
>> To: Guenter Roeck <[email protected]>; Jean Delvare <[email protected]>
>> Cc: Vadim Pasternak <[email protected]>; Patrick Rudolph
>> <[email protected]>; Naresh Solanki
>> <[email protected]>; [email protected]; linux-
>> [email protected]
>> Subject: [PATCH v2] hwmon: (pmbus/mp2975) Fix PGOOD in
>> READ_STATUS_WORD
>>
>> From: Patrick Rudolph <[email protected]>
>>
>> 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 <[email protected]>
>> Signed-off-by: Naresh Solanki <[email protected]>
>> ---
>> 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
>


2023-07-31 17:42:41

by Guenter Roeck

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

On Mon, Jul 31, 2023 at 11:22:04AM +0200, Naresh Solanki wrote:
> From: Patrick Rudolph <[email protected]>
>
> 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 <[email protected]>
> Signed-off-by: Naresh Solanki <[email protected]>

Applied, after rephrasing description to indicate that MP2975 is likely
not affected. Also added Fixes: tags.

Guenter

> ---
> drivers/hwmon/pmbus/mp2975.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
>
> base-commit: cb7022b8976e3c4d12cea2e7bb820a2944e2fd7b
>
> 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));