Kernel driver max34440
======================

Supported chips:

  * Maxim MAX34440

    Prefixes: 'max34440'

    Addresses scanned: -

    Datasheet: https://datasheets.maximintegrated.com/en/ds/MAX34440.pdf

  * Maxim MAX34441

    PMBus 5-Channel Power-Supply Manager and Intelligent Fan Controller

    Prefixes: 'max34441'

    Addresses scanned: -

    Datasheet: https://datasheets.maximintegrated.com/en/ds/MAX34441.pdf

  * Maxim MAX34446

    PMBus Power-Supply Data Logger

    Prefixes: 'max34446'

    Addresses scanned: -

    Datasheet: https://datasheets.maximintegrated.com/en/ds/MAX34446.pdf

  * Maxim MAX34451

    PMBus 16-Channel V/I Monitor and 12-Channel Sequencer/Marginer

    Prefixes: 'max34451'

    Addresses scanned: -

    Datasheet: https://datasheets.maximintegrated.com/en/ds/MAX34451.pdf

  * Maxim MAX34460

    PMBus 12-Channel Voltage Monitor & Sequencer

    Prefix: 'max34460'

    Addresses scanned: -

    Datasheet: https://datasheets.maximintegrated.com/en/ds/MAX34460.pdf

  * Maxim MAX34461

    PMBus 16-Channel Voltage Monitor & Sequencer

    Prefix: 'max34461'

    Addresses scanned: -

    Datasheet: https://datasheets.maximintegrated.com/en/ds/MAX34461.pdf

Author: Guenter Roeck <linux@roeck-us.net>


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

This driver supports hardware monitoring for Maxim MAX34440 PMBus 6-Channel
Power-Supply Manager, MAX34441 PMBus 5-Channel Power-Supply Manager
and Intelligent Fan Controller, and MAX34446 PMBus Power-Supply Data Logger.
It also supports the MAX34451, MAX34460, and MAX34461 PMBus Voltage Monitor &
Sequencers. The MAX34451 supports monitoring voltage or current of 12 channels
based on GIN pins. The MAX34460 supports 12 voltage channels, and the MAX34461
supports 16 voltage channels.

The driver is a client driver to the core PMBus driver. Please see
Documentation/hwmon/pmbus.rst for details on PMBus client drivers.


Usage Notes
-----------

This driver does not auto-detect devices. You will have to instantiate the
devices explicitly. Please see Documentation/i2c/instantiating-devices.rst for
details.

For MAX34446, the value of the currX_crit attribute determines if current or
voltage measurement is enabled for a given channel. Voltage measurement is
enabled if currX_crit is set to 0; current measurement is enabled if the
attribute is set to a positive value. Power measurement is only enabled if
channel 1 (3) is configured for voltage measurement, and channel 2 (4) is
configured for current measurement.


Platform data support
---------------------

The driver supports standard PMBus driver platform data.


Sysfs entries
-------------

The following attributes are supported. Limits are read-write; all other
attributes are read-only.

In
~~

======================= =======================================================
in[1-6]_label		"vout[1-6]".
in[1-6]_input		Measured voltage. From READ_VOUT register.
in[1-6]_min		Minimum Voltage. From VOUT_UV_WARN_LIMIT register.
in[1-6]_max		Maximum voltage. From VOUT_OV_WARN_LIMIT register.
in[1-6]_lcrit		Critical minimum Voltage. VOUT_UV_FAULT_LIMIT register.
in[1-6]_crit		Critical maximum voltage. From VOUT_OV_FAULT_LIMIT
			register.
in[1-6]_min_alarm	Voltage low alarm. From VOLTAGE_UV_WARNING status.
in[1-6]_max_alarm	Voltage high alarm. From VOLTAGE_OV_WARNING status.
in[1-6]_lcrit_alarm	Voltage critical low alarm. From VOLTAGE_UV_FAULT
			status.
in[1-6]_crit_alarm	Voltage critical high alarm. From VOLTAGE_OV_FAULT
			status.
in[1-6]_lowest		Historical minimum voltage.
in[1-6]_highest		Historical maximum voltage.
in[1-6]_reset_history	Write any value to reset history.
======================= =======================================================

.. note:: MAX34446 only supports in[1-4].

Curr
~~~~

======================= ========================================================
curr[1-6]_label		"iout[1-6]".
curr[1-6]_input		Measured current. From READ_IOUT register.
curr[1-6]_max		Maximum current. From IOUT_OC_WARN_LIMIT register.
curr[1-6]_crit		Critical maximum current. From IOUT_OC_FAULT_LIMIT
			register.
curr[1-6]_max_alarm	Current high alarm. From IOUT_OC_WARNING status.
curr[1-6]_crit_alarm	Current critical high alarm. From IOUT_OC_FAULT status.
curr[1-4]_average	Historical average current (MAX34446/34451 only).
curr[1-6]_highest	Historical maximum current.
curr[1-6]_reset_history	Write any value to reset history.
======================= ========================================================

.. note::

    - in6 and curr6 attributes only exist for MAX34440.
    - MAX34446 only supports curr[1-4].

Power
~~~~~

======================= ========================================================
power[1,3]_label	"pout[1,3]"
power[1,3]_input	Measured power.
power[1,3]_average	Historical average power.
power[1,3]_highest	Historical maximum power.
======================= ========================================================

.. note:: Power attributes only exist for MAX34446.

Temp
~~~~

======================= ========================================================
temp[1-8]_input		Measured temperatures. From READ_TEMPERATURE_1 register.
			temp1 is the chip's internal temperature. temp2..temp5
			are remote I2C temperature sensors. For MAX34441, temp6
			is a remote thermal-diode sensor. For MAX34440, temp6..8
			are remote I2C temperature sensors.
temp[1-8]_max		Maximum temperature. From OT_WARN_LIMIT register.
temp[1-8]_crit		Critical high temperature. From OT_FAULT_LIMIT register.
temp[1-8]_max_alarm	Temperature high alarm.
temp[1-8]_crit_alarm	Temperature critical high alarm.
temp[1-8]_average	Historical average temperature (MAX34446 only).
temp[1-8]_highest	Historical maximum temperature.
temp[1-8]_reset_history	Write any value to reset history.
======================= ========================================================


.. note::
   - temp7 and temp8 attributes only exist for MAX34440.
   - MAX34446 only supports temp[1-3].


.. note::

   - MAX34451 supports attribute groups in[1-16] (or curr[1-16] based on
     input pins) and temp[1-5].
   - MAX34460 supports attribute groups in[1-12] and temp[1-5].
   - MAX34461 supports attribute groups in[1-16] and temp[1-5].