[PATCH 2/2] hwmon: (pmbus/tps53679) Add support for TPS53622 and TPS53659
From: Pradhan, Sanman
Date: Tue Sep 01 2026 - 17:21:06 EST
From: Sanman Pradhan <psanman@xxxxxxxxxxx>
TPS53622 and TPS53659 are dual-channel D-CAP+ step-down controllers that
use the VID VOUT format and VOUT_MODE identification like the existing
TPS53679/TPS53688, so they reuse tps53679_identify().
Shorten the Kconfig prompt to the family name and list the supported
chips in the help text instead; this also adds TPS53685, which is already
supported by the driver but was missing from the list. Update the driver
documentation, including the per-attribute lists, and fix an existing
"TPS53588" typo (should be TPS53688) in those lists.
Signed-off-by: Sanman Pradhan <psanman@xxxxxxxxxxx>
---
Documentation/hwmon/tps53679.rst | 24 ++++++++++++++++++++----
drivers/hwmon/pmbus/Kconfig | 5 +++--
drivers/hwmon/pmbus/tps53679.c | 9 ++++++++-
3 files changed, 31 insertions(+), 7 deletions(-)
diff --git a/Documentation/hwmon/tps53679.rst b/Documentation/hwmon/tps53679.rst
index dd5e4a37375d..2280e043c4de 100644
--- a/Documentation/hwmon/tps53679.rst
+++ b/Documentation/hwmon/tps53679.rst
@@ -3,6 +3,14 @@ Kernel driver tps53679
Supported chips:
+ * Texas Instruments TPS53622
+
+ Prefix: 'tps53622'
+
+ Addresses scanned: -
+
+ Datasheet: https://www.ti.com/lit/gpn/TPS53622
+
* Texas Instruments TPS53647
Prefix: 'tps53647'
@@ -11,6 +19,14 @@ Supported chips:
Datasheet: https://www.ti.com/lit/gpn/tps53647
+ * Texas Instruments TPS53659
+
+ Prefix: 'tps53659'
+
+ Addresses scanned: -
+
+ Datasheet: https://www.ti.com/lit/gpn/TPS53659
+
* Texas Instruments TPS53667
Prefix: 'tps53667'
@@ -108,7 +124,7 @@ in1_crit_alarm Input voltage critical high alarm.
in[N]_label "vout[1-2]"
- TPS53647, TPS53667: N=2
- - TPS53679, TPS53588: N=2,3
+ - TPS53622, TPS53659, TPS53679, TPS53688: N=2,3
in[N]_input Measured output voltage.
@@ -135,7 +151,7 @@ in[N]_crit_alarm Output voltage critical high alarm.
temp[N]_input Measured temperature.
- TPS53647, TPS53667: N=1
- - TPS53679, TPS53681, TPS53588: N=1,2
+ - TPS53622, TPS53659, TPS53679, TPS53681, TPS53688: N=1,2
temp[N]_max Maximum temperature.
@@ -152,7 +168,7 @@ power1_input Measured input power.
power[N]_label "pout[1-2]".
- TPS53647, TPS53667: N=2
- - TPS53676, TPS53679, TPS53681, TPS53588: N=2,3
+ - TPS53622, TPS53659, TPS53676, TPS53679, TPS53681, TPS53688: N=2,3
power[N]_input Measured output power.
@@ -175,7 +191,7 @@ curr[N]_label "iout[1-2]" or "iout1.[0-5]".
telemetry supported on TPS53676 and TPS53681 only.
- TPS53647, TPS53667: N=2
- - TPS53679, TPS53588: N=2,3
+ - TPS53622, TPS53659, TPS53679, TPS53688: N=2,3
- TPS53676: N=2-8
- TPS53681: N=2-9
diff --git a/drivers/hwmon/pmbus/Kconfig b/drivers/hwmon/pmbus/Kconfig
index eb71a0ac044b..bcfdc4ce4c10 100644
--- a/drivers/hwmon/pmbus/Kconfig
+++ b/drivers/hwmon/pmbus/Kconfig
@@ -790,10 +790,11 @@ config SENSORS_TPS40422
be called tps40422.
config SENSORS_TPS53679
- tristate "TI TPS53647, TPS53667, TPS53676, TPS53679, TPS53681, TPS53688"
+ tristate "TI TPS536xx family"
help
If you say yes here you get hardware monitoring support for TI
- TPS53647, TPS53667, TPS53676, TPS53679, TPS53681, and TPS53688.
+ TPS53622, TPS53647, TPS53659, TPS53667, TPS53676, TPS53679, TPS53681,
+ TPS53685, and TPS53688.
This driver can also be built as a module. If so, the module will
be called tps53679.
diff --git a/drivers/hwmon/pmbus/tps53679.c b/drivers/hwmon/pmbus/tps53679.c
index 31e54608b3c9..fa0fdf1e3e6c 100644
--- a/drivers/hwmon/pmbus/tps53679.c
+++ b/drivers/hwmon/pmbus/tps53679.c
@@ -16,7 +16,8 @@
#include "pmbus.h"
enum chips {
- tps53647, tps53667, tps53676, tps53679, tps53681, tps53685, tps53688
+ tps53622, tps53647, tps53659, tps53667, tps53676, tps53679, tps53681,
+ tps53685, tps53688
};
#define TPS53647_PAGE_NUM 1
@@ -268,6 +269,8 @@ static int tps53679_probe(struct i2c_client *client)
case tps53676:
info->identify = tps53676_identify;
break;
+ case tps53622:
+ case tps53659:
case tps53679:
case tps53688:
info->pages = TPS53679_PAGE_NUM;
@@ -292,7 +295,9 @@ static int tps53679_probe(struct i2c_client *client)
static const struct i2c_device_id tps53679_id[] = {
{ .name = "bmr474", .driver_data = tps53676 },
+ { .name = "tps53622", .driver_data = tps53622 },
{ .name = "tps53647", .driver_data = tps53647 },
+ { .name = "tps53659", .driver_data = tps53659 },
{ .name = "tps53667", .driver_data = tps53667 },
{ .name = "tps53676", .driver_data = tps53676 },
{ .name = "tps53679", .driver_data = tps53679 },
@@ -305,7 +310,9 @@ static const struct i2c_device_id tps53679_id[] = {
MODULE_DEVICE_TABLE(i2c, tps53679_id);
static const struct of_device_id __maybe_unused tps53679_of_match[] = {
+ {.compatible = "ti,tps53622", .data = (void *)tps53622},
{.compatible = "ti,tps53647", .data = (void *)tps53647},
+ {.compatible = "ti,tps53659", .data = (void *)tps53659},
{.compatible = "ti,tps53667", .data = (void *)tps53667},
{.compatible = "ti,tps53676", .data = (void *)tps53676},
{.compatible = "ti,tps53679", .data = (void *)tps53679},
--
2.34.1