hwmon: add MP2869,MP29608,MP29612 and MP29816 series driver

Add support for MPS VR mp2869/mp2869a,mp29608/mp29608a,mp29612/mp29612a
and mp29816/mp29816a/mp29816b/mp29816c controller. This driver exposes
telemetry and limit value readings and writtings.

Signed-off-by: Wensheng Wang <wenswang@yeah.net>
Link: https://lore.kernel.org/r/20250805102020.749850-2-wenswang@yeah.net
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
Wensheng Wang
2025-09-07 16:35:18 -07:00
committed by Guenter Roeck
parent c97c66e04c
commit a3a2923aaf
6 changed files with 852 additions and 0 deletions
+1
View File
@@ -173,6 +173,7 @@ Hardware Monitoring Kernel Drivers
menf21bmc
mlxreg-fan
mp2856
mp2869
mp2888
mp2891
mp2975
+175
View File
@@ -0,0 +1,175 @@
.. SPDX-License-Identifier: GPL-2.0
Kernel driver mp2869
====================
Supported chips:
* MPS mp2869
Prefix: 'mp2869'
* MPS mp29608
Prefix: 'mp29608'
* MPS mp29612
Prefix: 'mp29612'
* MPS mp29816
Prefix: 'mp29816'
Author:
Wensheng Wang <wenswang@yeah.net>
Description
-----------
This driver implements support for Monolithic Power Systems, Inc. (MPS)
MP2869 Dual Loop Digital Multi-phase Controller.
Device compliant with:
- PMBus rev 1.3 interface.
The driver exports the following attributes via the 'sysfs' files
for input voltage:
**in1_input**
**in1_label**
**in1_crit**
**in1_crit_alarm**
**in1_lcrit**
**in1_lcrit_alarm**
**in1_min**
**in1_min_alarm**
The driver provides the following attributes for output voltage:
**in2_input**
**in2_label**
**in2_crit**
**in2_crit_alarm**
**in2_lcrit**
**in2_lcrit_alarm**
**in3_input**
**in3_label**
**in3_crit**
**in3_crit_alarm**
**in3_lcrit**
**in3_lcrit_alarm**
The driver provides the following attributes for input current:
**curr1_input**
**curr1_label**
**curr2_input**
**curr2_label**
The driver provides the following attributes for output current:
**curr3_input**
**curr3_label**
**curr3_crit**
**curr3_crit_alarm**
**curr3_max**
**curr3_max_alarm**
**curr4_input**
**curr4_label**
**curr4_crit**
**curr4_crit_alarm**
**curr4_max**
**curr4_max_alarm**
The driver provides the following attributes for input power:
**power1_input**
**power1_label**
**power2_input**
**power2_label**
The driver provides the following attributes for output power:
**power3_input**
**power3_label**
**power3_input**
**power3_label**
**power3_max**
**power3_max_alarm**
**power4_input**
**power4_label**
**power4_input**
**power4_label**
**power4_max**
**power4_max_alarm**
The driver provides the following attributes for temperature:
**temp1_input**
**temp1_crit**
**temp1_crit_alarm**
**temp1_max**
**temp1_max_alarm**
**temp2_input**
**temp2_crit**
**temp2_crit_alarm**
**temp2_max**
**temp2_max_alarm**
+7
View File
@@ -17175,6 +17175,13 @@ S: Maintained
F: Documentation/devicetree/bindings/leds/backlight/mps,mp3309c.yaml
F: drivers/video/backlight/mp3309c.c
MPS MP2869 DRIVER
M: Wensheng Wang <wenswang@yeah.net>
L: linux-hwmon@vger.kernel.org
S: Maintained
F: Documentation/hwmon/mp2869.rst
F: drivers/hwmon/pmbus/mp2869.c
MPS MP2891 DRIVER
M: Noah Wang <noahwang.wang@outlook.com>
L: linux-hwmon@vger.kernel.org
+9
View File
@@ -374,6 +374,15 @@ config SENSORS_MP2856
This driver can also be built as a module. If so, the module will
be called mp2856.
config SENSORS_MP2869
tristate "MPS MP2869"
help
If you say yes here you get hardware monitoring support for MPS
MP2869 Dual Loop Digital Multi-Phase Controller.
This driver can also be built as a module. If so, the module will
be called mp2869.
config SENSORS_MP2888
tristate "MPS MP2888"
help
+1
View File
@@ -37,6 +37,7 @@ obj-$(CONFIG_SENSORS_MAX31785) += max31785.o
obj-$(CONFIG_SENSORS_MAX34440) += max34440.o
obj-$(CONFIG_SENSORS_MAX8688) += max8688.o
obj-$(CONFIG_SENSORS_MP2856) += mp2856.o
obj-$(CONFIG_SENSORS_MP2869) += mp2869.o
obj-$(CONFIG_SENSORS_MP2888) += mp2888.o
obj-$(CONFIG_SENSORS_MP2891) += mp2891.o
obj-$(CONFIG_SENSORS_MP2975) += mp2975.o
File diff suppressed because it is too large Load Diff