Commit 38b2b022 authored by Noah Wang's avatar Noah Wang Committed by Guenter Roeck
Browse files

hwmon: add MP2891 driver



Add support for MPS VR controller mp2891. This driver exposes
telemetry and limit value readings and writtings.

Signed-off-by: default avatarNoah Wang <noahwang.wang@outlook.com>
Link: https://lore.kernel.org/r/SEYPR04MB64828A352836982C0184AA10FAD62@SEYPR04MB6482.apcprd04.prod.outlook.com


Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent 45158b93
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -165,6 +165,7 @@ Hardware Monitoring Kernel Drivers
   mlxreg-fan
   mp2856
   mp2888
   mp2891
   mp2975
   mp2993
   mp5023
+179 −0
Original line number Diff line number Diff line
.. SPDX-License-Identifier: GPL-2.0

Kernel driver mp2891
====================

Supported chips:

  * MPS mp2891

    Prefix: 'mp2891'

  * Datasheet

    Publicly available at the MPS website : https://www.monolithicpower.com/en/mp2891.html

Author:

	Noah Wang <noahwang.wang@outlook.com>

Description
-----------

This driver implements support for Monolithic Power Systems, Inc. (MPS)
MP2891 Multi-phase Digital VR Controller.

Device compliant with:

- PMBus rev 1.3 interface.

Device supports direct and linear format for reading input voltage,
output voltage, input current, output current, input power, output
power, and temperature.

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**

**in2_min**

**in2_min_alarm**

**in3_input**

**in3_label**

**in3_crit**

**in3_crit_alarm**

**in3_lcrit**

**in3_lcrit_alarm**

**in3_min**

**in3_min_alarm**

The driver provides the following attributes for input current:

**curr1_input**

**curr1_label**

**curr1_max**

**curr1_max_alarm**

**curr2_input**

**curr2_label**

**curr2_max**

**curr2_max_alarm**

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**

**power1_max**

**power1_alarm**

**power2_input**

**power2_label**

**power2_max**

**power2_alarm**

The driver provides the following attributes for output power:

**power3_input**

**power3_label**

**power4_input**

**power4_label**

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
@@ -15258,6 +15258,13 @@ S: Maintained
F:	Documentation/devicetree/bindings/leds/backlight/mps,mp3309c.yaml
F:	drivers/video/backlight/mp3309c.c
MPS MP2891 DRIVER
M:	Noah Wang <noahwang.wang@outlook.com>
L:	linux-hwmon@vger.kernel.org
S:	Maintained
F:	Documentation/hwmon/mp2891.rst
F:	drivers/hwmon/pmbus/mp2891.c
MPS MP2993 DRIVER
M:	Noah Wang <noahwang.wang@outlook.com>
L:	linux-hwmon@vger.kernel.org
+9 −0
Original line number Diff line number Diff line
@@ -337,6 +337,15 @@ config SENSORS_MP2888
	  This driver can also be built as a module. If so, the module will
	  be called mp2888.

config SENSORS_MP2891
    tristate "MPS MP2891"
    help
      If you say yes here you get hardware monitoring support for MPS
      MP2891 Dual Loop Digital Multi-Phase Controller.

      This driver can also be built as a module. If so, the module will
      be called mp2891.

config SENSORS_MP2975
	tristate "MPS MP2975"
	help
+1 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ obj-$(CONFIG_SENSORS_MAX34440) += max34440.o
obj-$(CONFIG_SENSORS_MAX8688)	+= max8688.o
obj-$(CONFIG_SENSORS_MP2856)	+= mp2856.o
obj-$(CONFIG_SENSORS_MP2888)	+= mp2888.o
obj-$(CONFIG_SENSORS_MP2891)	+= mp2891.o
obj-$(CONFIG_SENSORS_MP2975)	+= mp2975.o
obj-$(CONFIG_SENSORS_MP2993)	+= mp2993.o
obj-$(CONFIG_SENSORS_MP5023)	+= mp5023.o
Loading