0001 .. SPDX-License-Identifier: GPL-2.0
0002
0003 Kernel driver mp2975
0004 ====================
0005
0006 Supported chips:
0007
0008 * MPS MP12254
0009
0010 Prefix: 'mp2975'
0011
0012 Author:
0013
0014 Vadim Pasternak <vadimp@nvidia.com>
0015
0016 Description
0017 -----------
0018
0019 This driver implements support for Monolithic Power Systems, Inc. (MPS)
0020 vendor dual-loop, digital, multi-phase controller MP2975.
0021
0022 This device:
0023
0024 - Supports up to two power rail.
0025 - Provides 8 pulse-width modulations (PWMs), and can be configured up
0026 to 8-phase operation for rail 1 and up to 4-phase operation for rail
0027 2.
0028 - Supports two pages 0 and 1 for telemetry and also pages 2 and 3 for
0029 configuration.
0030 - Can configured VOUT readout in direct or VID format and allows
0031 setting of different formats on rails 1 and 2. For VID the following
0032 protocols are available: VR13 mode with 5-mV DAC; VR13 mode with
0033 10-mV DAC, IMVP9 mode with 5-mV DAC.
0034
0035 Device supports:
0036
0037 - SVID interface.
0038 - AVSBus interface.
0039
0040 Device complaint with:
0041
0042 - PMBus rev 1.3 interface.
0043
0044 Device supports direct format for reading output current, output voltage,
0045 input and output power and temperature.
0046 Device supports linear format for reading input voltage and input power.
0047 Device supports VID and direct formats for reading output voltage.
0048 The below VID modes are supported: VR12, VR13, IMVP9.
0049
0050 The driver provides the next attributes for the current:
0051
0052 - for current in: input, maximum alarm;
0053 - for current out input, maximum alarm and highest values;
0054 - for phase current: input and label.
0055 attributes.
0056
0057 The driver exports the following attributes via the 'sysfs' files, where
0058
0059 - 'n' is number of telemetry pages (from 1 to 2);
0060 - 'k' is number of configured phases (from 1 to 8);
0061 - indexes 1, 1*n for "iin";
0062 - indexes n+1, n+2 for "iout";
0063 - indexes 2*n+1 ... 2*n + k for phases.
0064
0065 **curr[1-{2n}]_alarm**
0066
0067 **curr[{n+1}-{n+2}]_highest**
0068
0069 **curr[1-{2n+k}]_input**
0070
0071 **curr[1-{2n+k}]_label**
0072
0073 The driver provides the next attributes for the voltage:
0074
0075 - for voltage in: input, high critical threshold, high critical alarm, all only
0076 from page 0;
0077 - for voltage out: input, low and high critical thresholds, low and high
0078 critical alarms, from pages 0 and 1;
0079
0080 The driver exports the following attributes via the 'sysfs' files, where
0081
0082 - 'n' is number of telemetry pages (from 1 to 2);
0083 - indexes 1 for "iin";
0084 - indexes n+1, n+2 for "vout";
0085
0086 **in[1-{2n+1}]_crit**
0087
0088 **in[1-{2n+1}]_crit_alarm**
0089
0090 **in[1-{2n+1}]_input**
0091
0092 **in[1-{2n+1}]_label**
0093
0094 **in[2-{n+1}]_lcrit**
0095
0096 **in[2-{n+1}1_lcrit_alarm**
0097
0098 The driver provides the next attributes for the power:
0099
0100 - for power in alarm and input.
0101 - for power out: highest and input.
0102
0103 The driver exports the following attributes via the 'sysfs' files, where
0104
0105 - 'n' is number of telemetry pages (from 1 to 2);
0106 - indexes 1 for "pin";
0107 - indexes n+1, n+2 for "pout";
0108
0109 **power1_alarm**
0110
0111 **power[2-{n+1}]_highest**
0112
0113 **power[1-{2n+1}]_input**
0114
0115 **power[1-{2n+1}]_label**
0116
0117 The driver provides the next attributes for the temperature (only from page 0):
0118
0119
0120 **temp1_crit**
0121
0122 **temp1_crit_alarm**
0123
0124 **temp1_input**
0125
0126 **temp1_max**
0127
0128 **temp1_max_alarm**