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].
