[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20260203-hwmon-pmbus-mpq8785-add-support-for-mpq8786-v1-1-9ff8c7c50242@amd.com>
Date: Tue, 03 Feb 2026 16:42:58 +0800
From: Carl Lee via B4 Relay <devnull+carl.lee.amd.com@...nel.org>
To: Guenter Roeck <linux@...ck-us.net>
Cc: linux-hwmon@...r.kernel.org, linux-kernel@...r.kernel.org,
carl.lee@....com, peter.shen@....com, colin.huang2@....com
Subject: [PATCH] hwmon: pmbus: mpq8785: add support for MPQ8786
From: Carl Lee <carl.lee@....com>
Add support for the Monolithic Power Systems MPQ8786 digital voltage
regulator.
Signed-off-by: Carl Lee <carl.lee@....com>
---
Documentation/hwmon/mpq8785.rst | 7 +++++++
drivers/hwmon/pmbus/mpq8785.c | 6 +++++-
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/Documentation/hwmon/mpq8785.rst b/Documentation/hwmon/mpq8785.rst
index 198d5dfd7c30..39306033990f 100644
--- a/Documentation/hwmon/mpq8785.rst
+++ b/Documentation/hwmon/mpq8785.rst
@@ -8,6 +8,7 @@ Supported chips:
* MPS MPM3695 family
* MPS MPM82504
* MPS MPQ8785
+ * MPS MPQ8786
Prefix: 'mpq8785'
@@ -38,6 +39,12 @@ buck converter. The MPQ8785 offers a very compact solution that achieves up to
wide input supply range. The MPQ8785 operates at high efficiency over a wide
output current load range.
+The MPQ8786 is a fully integrated, PMBus-compatible, high-frequency, synchronous
+buck converter. The device shares the same PMBus interface and register behavior
+as the MPQ8785, but provides a lower output current capability of up to 25A per
+phase. It offers excellent load and line regulation over a wide input supply
+range and operates at high efficiency over a wide output current load range.
+
The PMBus interface provides converter configurations and key parameters
monitoring.
diff --git a/drivers/hwmon/pmbus/mpq8785.c b/drivers/hwmon/pmbus/mpq8785.c
index 1f56aaf4dde8..f35534836cb8 100644
--- a/drivers/hwmon/pmbus/mpq8785.c
+++ b/drivers/hwmon/pmbus/mpq8785.c
@@ -12,13 +12,14 @@
#define MPM82504_READ_TEMPERATURE_1_SIGN_POS 9
-enum chips { mpm3695, mpm3695_25, mpm82504, mpq8785 };
+enum chips { mpm3695, mpm3695_25, mpm82504, mpq8785, mpq8786 };
static u16 voltage_scale_loop_max_val[] = {
[mpm3695] = GENMASK(9, 0),
[mpm3695_25] = GENMASK(11, 0),
[mpm82504] = GENMASK(9, 0),
[mpq8785] = GENMASK(10, 0),
+ [mpq8786] = GENMASK(10, 0),
};
static int mpq8785_identify(struct i2c_client *client,
@@ -87,6 +88,7 @@ static const struct i2c_device_id mpq8785_id[] = {
{ "mpm3695-25", mpm3695_25 },
{ "mpm82504", mpm82504 },
{ "mpq8785", mpq8785 },
+ { "mpq8786", mpq8786 },
{ },
};
MODULE_DEVICE_TABLE(i2c, mpq8785_id);
@@ -96,6 +98,7 @@ static const struct of_device_id __maybe_unused mpq8785_of_match[] = {
{ .compatible = "mps,mpm3695-25", .data = (void *)mpm3695_25 },
{ .compatible = "mps,mpm82504", .data = (void *)mpm82504 },
{ .compatible = "mps,mpq8785", .data = (void *)mpq8785 },
+ { .compatible = "mps,mpq8786", .data = (void *)mpq8786 },
{}
};
MODULE_DEVICE_TABLE(of, mpq8785_of_match);
@@ -128,6 +131,7 @@ static int mpq8785_probe(struct i2c_client *client)
info->read_word_data = mpm82504_read_word_data;
break;
case mpq8785:
+ case mpq8786:
info->identify = mpq8785_identify;
break;
default:
---
base-commit: 4c87cdd0328495759f6e9f9f4e1e53ef8032a76f
change-id: 20260203-hwmon-pmbus-mpq8785-add-support-for-mpq8786-5e73c796bf13
Best regards,
--
Carl Lee <carl.lee@....com>
Powered by blists - more mailing lists