* [PATCH v2 0/2] hwmon: (pmbus/tps53679) Select page 0 for single-page parts
@ 2026-09-16 23:54 Pradhan, Sanman
2026-09-16 23:54 ` [PATCH v2 1/2] hwmon: (pmbus/tps53679) Select page 0 for single-page TPS53676 Pradhan, Sanman
2026-09-16 23:54 ` [PATCH v2 2/2] hwmon: (pmbus/tps53679) Select page 0 for single-page TPS536C7 Pradhan, Sanman
0 siblings, 2 replies; 5+ messages in thread
From: Pradhan, Sanman @ 2026-09-16 23:54 UTC (permalink / raw)
To: Guenter Roeck
Cc: Jonathan Corbet, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-hwmon@vger.kernel.org, devicetree@vger.kernel.org,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
stable@vger.kernel.org, Sanman Pradhan
From: Sanman Pradhan <psanman@juniper.net>
For single-page TPS53676 and TPS536C7 configurations the PAGE register is
never normalised: pmbus_set_page() only writes PAGE when info->pages > 1,
so a page left selected by the boot firmware persists and telemetry is
read from the wrong page. Select page 0 explicitly in the two identify
routines.
Patch 1 fixes the pre-existing TPS53676 issue and carries Fixes/stable
tags. Patch 2 fixes the newly added TPS536C7 support; the TPS536C7 series
has already been applied by the hwmon maintainer but is not yet in a
released kernel, so patch 2 carries no stable tag.
These patches are based on top of the previously submitted TPS536C7
series.
Changes in v2:
- Drop the PAGE read-back/verify; just write PAGE = 0.
Sanman Pradhan (2):
hwmon: (pmbus/tps53679) Select page 0 for single-page TPS53676
hwmon: (pmbus/tps53679) Select page 0 for single-page TPS536C7
drivers/hwmon/pmbus/tps53679.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
--
2.34.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2 1/2] hwmon: (pmbus/tps53679) Select page 0 for single-page TPS53676
2026-09-16 23:54 [PATCH v2 0/2] hwmon: (pmbus/tps53679) Select page 0 for single-page parts Pradhan, Sanman
@ 2026-09-16 23:54 ` Pradhan, Sanman
2026-09-17 0:05 ` Guenter Roeck
2026-09-16 23:54 ` [PATCH v2 2/2] hwmon: (pmbus/tps53679) Select page 0 for single-page TPS536C7 Pradhan, Sanman
1 sibling, 1 reply; 5+ messages in thread
From: Pradhan, Sanman @ 2026-09-16 23:54 UTC (permalink / raw)
To: Guenter Roeck
Cc: Jonathan Corbet, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-hwmon@vger.kernel.org, devicetree@vger.kernel.org,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
stable@vger.kernel.org, Sanman Pradhan
From: Sanman Pradhan <psanman@juniper.net>
tps53676_identify() derives the number of PMBus pages but does not
ensure that page 0 is selected for single-page configurations.
pmbus_set_page() does not update the PAGE register when info->pages is
1, so if boot firmware leaves PAGE set to another value subsequent
register accesses may target the wrong page.
For single-page devices, select page 0 explicitly.
Fixes: cb3d37b59012 ("hwmon: (pmbus/tps53679) Add support for TI TPS53676")
Cc: stable@vger.kernel.org
Signed-off-by: Sanman Pradhan <psanman@juniper.net>
---
drivers/hwmon/pmbus/tps53679.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/hwmon/pmbus/tps53679.c b/drivers/hwmon/pmbus/tps53679.c
index dcd4250b679d..4f91b0a43ad0 100644
--- a/drivers/hwmon/pmbus/tps53679.c
+++ b/drivers/hwmon/pmbus/tps53679.c
@@ -246,6 +246,15 @@ static int tps53676_identify(struct i2c_client *client,
if (phases_b > 0) {
info->pages = 2;
info->phases[1] = phases_b;
+ } else {
+ /*
+ * pmbus_set_page() does not update the PAGE register on
+ * single-page devices, so select page 0 explicitly in case
+ * the boot firmware left the device on another page.
+ */
+ ret = i2c_smbus_write_byte_data(client, PMBUS_PAGE, 0);
+ if (ret < 0)
+ return ret;
}
return 0;
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 2/2] hwmon: (pmbus/tps53679) Select page 0 for single-page TPS536C7
2026-09-16 23:54 [PATCH v2 0/2] hwmon: (pmbus/tps53679) Select page 0 for single-page parts Pradhan, Sanman
2026-09-16 23:54 ` [PATCH v2 1/2] hwmon: (pmbus/tps53679) Select page 0 for single-page TPS53676 Pradhan, Sanman
@ 2026-09-16 23:54 ` Pradhan, Sanman
2026-09-17 0:06 ` Guenter Roeck
1 sibling, 1 reply; 5+ messages in thread
From: Pradhan, Sanman @ 2026-09-16 23:54 UTC (permalink / raw)
To: Guenter Roeck
Cc: Jonathan Corbet, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-hwmon@vger.kernel.org, devicetree@vger.kernel.org,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
stable@vger.kernel.org, Sanman Pradhan
From: Sanman Pradhan <psanman@juniper.net>
tps536c7_identify() sets info->pages to 1 for a single-channel part and
then accesses page 0 (writing PMBUS_PHASE) without ensuring PAGE is
actually 0. pmbus_set_page() does not update the PAGE register when
info->pages is 1, so if boot firmware left PAGE set to another value the
PHASE writes and subsequent telemetry may target the wrong page.
Select page 0 explicitly before configuring PHASE.
Signed-off-by: Sanman Pradhan <psanman@juniper.net>
---
drivers/hwmon/pmbus/tps53679.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/drivers/hwmon/pmbus/tps53679.c b/drivers/hwmon/pmbus/tps53679.c
index 4f91b0a43ad0..df21bc5aa128 100644
--- a/drivers/hwmon/pmbus/tps53679.c
+++ b/drivers/hwmon/pmbus/tps53679.c
@@ -284,6 +284,17 @@ static int tps536c7_identify(struct i2c_client *client,
*/
info->pages = phases_b ? 2 : 1;
+ /*
+ * pmbus_set_page() does not update the PAGE register on single-page
+ * devices, so select page 0 explicitly in case the boot firmware
+ * left the device on another page.
+ */
+ if (info->pages == 1) {
+ ret = i2c_smbus_write_byte_data(client, PMBUS_PAGE, 0);
+ if (ret < 0)
+ return ret;
+ }
+
/*
* With info->phases[] left unset the PMBus core never programs the
* PHASE selector, so make sure each page reports the aggregate
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/2] hwmon: (pmbus/tps53679) Select page 0 for single-page TPS53676
2026-09-16 23:54 ` [PATCH v2 1/2] hwmon: (pmbus/tps53679) Select page 0 for single-page TPS53676 Pradhan, Sanman
@ 2026-09-17 0:05 ` Guenter Roeck
0 siblings, 0 replies; 5+ messages in thread
From: Guenter Roeck @ 2026-09-17 0:05 UTC (permalink / raw)
To: Pradhan, Sanman
Cc: Jonathan Corbet, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-hwmon@vger.kernel.org, devicetree@vger.kernel.org,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
stable@vger.kernel.org, Sanman Pradhan
On Wed, Sep 16, 2026 at 11:54:17PM +0000, Pradhan, Sanman wrote:
> From: Sanman Pradhan <psanman@juniper.net>
>
> tps53676_identify() derives the number of PMBus pages but does not
> ensure that page 0 is selected for single-page configurations.
> pmbus_set_page() does not update the PAGE register when info->pages is
> 1, so if boot firmware leaves PAGE set to another value subsequent
> register accesses may target the wrong page.
>
> For single-page devices, select page 0 explicitly.
>
> Fixes: cb3d37b59012 ("hwmon: (pmbus/tps53679) Add support for TI TPS53676")
> Cc: stable@vger.kernel.org
> Signed-off-by: Sanman Pradhan <psanman@juniper.net>
Applied.
Thanks,
Guenter
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 2/2] hwmon: (pmbus/tps53679) Select page 0 for single-page TPS536C7
2026-09-16 23:54 ` [PATCH v2 2/2] hwmon: (pmbus/tps53679) Select page 0 for single-page TPS536C7 Pradhan, Sanman
@ 2026-09-17 0:06 ` Guenter Roeck
0 siblings, 0 replies; 5+ messages in thread
From: Guenter Roeck @ 2026-09-17 0:06 UTC (permalink / raw)
To: Pradhan, Sanman
Cc: Jonathan Corbet, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-hwmon@vger.kernel.org, devicetree@vger.kernel.org,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
stable@vger.kernel.org, Sanman Pradhan
On Wed, Sep 16, 2026 at 11:54:21PM +0000, Pradhan, Sanman wrote:
> From: Sanman Pradhan <psanman@juniper.net>
>
> tps536c7_identify() sets info->pages to 1 for a single-channel part and
> then accesses page 0 (writing PMBUS_PHASE) without ensuring PAGE is
> actually 0. pmbus_set_page() does not update the PAGE register when
> info->pages is 1, so if boot firmware left PAGE set to another value the
> PHASE writes and subsequent telemetry may target the wrong page.
>
> Select page 0 explicitly before configuring PHASE.
>
> Signed-off-by: Sanman Pradhan <psanman@juniper.net>
Applied.
Thanks,
Guenter
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-09-17 0:06 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-16 23:54 [PATCH v2 0/2] hwmon: (pmbus/tps53679) Select page 0 for single-page parts Pradhan, Sanman
2026-09-16 23:54 ` [PATCH v2 1/2] hwmon: (pmbus/tps53679) Select page 0 for single-page TPS53676 Pradhan, Sanman
2026-09-17 0:05 ` Guenter Roeck
2026-09-16 23:54 ` [PATCH v2 2/2] hwmon: (pmbus/tps53679) Select page 0 for single-page TPS536C7 Pradhan, Sanman
2026-09-17 0:06 ` Guenter Roeck
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox