Add support for the Monolithic Power Systems MPM3695 device. The device is PMBus compliant and shares characteristics with the MPM82504. Tested with device tree based matching. Signed-off-by: Pawel Dembicki <paweldembicki@xxxxxxxxx> --- Documentation/hwmon/mpq8785.rst | 13 +++++++++++-- drivers/hwmon/pmbus/mpq8785.c | 5 ++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Documentation/hwmon/mpq8785.rst b/Documentation/hwmon/mpq8785.rst index be228ee58ce2..20d43b8bba97 100644 --- a/Documentation/hwmon/mpq8785.rst +++ b/Documentation/hwmon/mpq8785.rst @@ -7,6 +7,7 @@ Supported chips: * MPS MPQ8785 * MPS MPM82504 + * MPS MPM3695-10 Prefix: 'mpq8785' @@ -29,6 +30,13 @@ The device can also operate in parallel with the MPM3695-100 and additional MPM82504 devices to provide a higher output current. The MPM82504 operates at high efficiency across a wide load range. +The MPM3695-10 is a scalable, ultra-thin, fully integrated power module with +a PMBus interface. It offers a complete power solution that achieves up to +10A of output current with excellent load and line regulation across a wide +input voltage range. The device’s 2mm height enables it to be placed on the +backside of a PCB for space optimization. It operates at high efficiency over +a wide load range, and can be paralleled to deliver higher current. + The PMBus interface provides converter configurations and key parameters monitoring. @@ -43,8 +51,9 @@ over-voltage protection (OVP), under-voltage protection (UVP), and over-temperature protection (OTP). All supported modules require a minimal number of readily available, standard -external components. The MPQ8785 is available in a TLGA (5mmx6mm) package -and the MPM82504 is available in a BGA (15mmx30mmx5.18mm) package. +external components. The MPQ8785 is available in a TLGA (5mmx6mm) package, +the MPM82504 is available in a BGA (15mmx30mmx5.18mm) package and the MPM3695-10 +is available in an LGA-45 (8mmx8mmx2mm) package. Device compliant with: diff --git a/drivers/hwmon/pmbus/mpq8785.c b/drivers/hwmon/pmbus/mpq8785.c index 7ee201550554..e6a643856f08 100644 --- a/drivers/hwmon/pmbus/mpq8785.c +++ b/drivers/hwmon/pmbus/mpq8785.c @@ -8,7 +8,7 @@ #include <linux/of_device.h> #include "pmbus.h" -enum chips { mpq8785, mpm82504 }; +enum chips { mpq8785, mpm82504, mpm3695_10 }; static int mpq8785_identify(struct i2c_client *client, struct pmbus_driver_info *info) @@ -60,6 +60,7 @@ static struct pmbus_driver_info mpq8785_info = { static const struct i2c_device_id mpq8785_id[] = { { "mpq8785", mpq8785 }, { "mpm82504", mpm82504 }, + { "mpm3695-10", mpm3695_10 }, { }, }; MODULE_DEVICE_TABLE(i2c, mpq8785_id); @@ -67,6 +68,7 @@ MODULE_DEVICE_TABLE(i2c, mpq8785_id); static const struct of_device_id __maybe_unused mpq8785_of_match[] = { { .compatible = "mps,mpq8785", .data = (void *)mpq8785 }, { .compatible = "mps,mpm82504", .data = (void *)mpm82504 }, + { .compatible = "mps,mpm3695-10", .data = (void *)mpm3695_10 }, {} }; MODULE_DEVICE_TABLE(of, mpq8785_of_match); @@ -92,6 +94,7 @@ static int mpq8785_probe(struct i2c_client *client) break; case mpm82504: + case mpm3695_10: info->format[PSC_VOLTAGE_OUT] = direct; info->m[PSC_VOLTAGE_OUT] = 8; info->b[PSC_VOLTAGE_OUT] = 0; -- 2.43.0