Commit a3a2923a authored by Wensheng Wang's avatar Wensheng Wang Committed by Guenter Roeck
Browse files

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: default avatarWensheng Wang <wenswang@yeah.net>
Link: https://lore.kernel.org/r/20250805102020.749850-2-wenswang@yeah.net


Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent c97c66e0
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -173,6 +173,7 @@ Hardware Monitoring Kernel Drivers
   menf21bmc
   mlxreg-fan
   mp2856
   mp2869
   mp2888
   mp2891
   mp2975
+175 −0
Original line number Diff line number Diff line
.. 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 −0
Original line number Diff line number Diff line
@@ -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 −0
Original line number Diff line number Diff line
@@ -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 −0
Original line number Diff line number Diff line
@@ -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
Loading