Back to home page

OSCL-LXR

 
 

    


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