| .. SPDX-License-Identifier: GPL-2.0 | 
 |  | 
 | Kernel driver mp2975 | 
 | ==================== | 
 |  | 
 | Supported chips: | 
 |  | 
 |   * MPS MP12254 | 
 |  | 
 |     Prefix: 'mp2975' | 
 |  | 
 | Author: | 
 |  | 
 | 	Vadim Pasternak <vadimp@nvidia.com> | 
 |  | 
 | Description | 
 | ----------- | 
 |  | 
 | This driver implements support for Monolithic Power Systems, Inc. (MPS) | 
 | vendor dual-loop, digital, multi-phase controller MP2975. | 
 |  | 
 | This device: | 
 |  | 
 | - Supports up to two power rail. | 
 | - Provides 8 pulse-width modulations (PWMs), and can be configured up | 
 |   to 8-phase operation for rail 1 and up to 4-phase operation for rail | 
 |   2. | 
 | - Supports two pages 0 and 1 for telemetry and also pages 2 and 3 for | 
 |   configuration. | 
 | - Can configured VOUT readout in direct or VID format and allows | 
 |   setting of different formats on rails 1 and 2. For VID the following | 
 |   protocols are available: VR13 mode with 5-mV DAC; VR13 mode with | 
 |   10-mV DAC, IMVP9 mode with 5-mV DAC. | 
 |  | 
 | Device supports: | 
 |  | 
 | - SVID interface. | 
 | - AVSBus interface. | 
 |  | 
 | Device complaint with: | 
 |  | 
 | - PMBus rev 1.3 interface. | 
 |  | 
 | Device supports direct format for reading output current, output voltage, | 
 | input and output power and temperature. | 
 | Device supports linear format for reading input voltage and input power. | 
 | Device supports VID and direct formats for reading output voltage. | 
 | The below VID modes are supported: VR12, VR13, IMVP9. | 
 |  | 
 | The driver provides the next attributes for the current: | 
 |  | 
 | - for current in: input, maximum alarm; | 
 | - for current out input, maximum alarm and highest values; | 
 | - for phase current: input and label. | 
 |   attributes. | 
 |  | 
 | The driver exports the following attributes via the 'sysfs' files, where | 
 |  | 
 | - 'n' is number of telemetry pages (from 1 to 2); | 
 | - 'k' is number of configured phases (from 1 to 8); | 
 | - indexes 1, 1*n for "iin"; | 
 | - indexes n+1, n+2 for "iout"; | 
 | - indexes 2*n+1 ... 2*n + k for phases. | 
 |  | 
 | **curr[1-{2n}]_alarm** | 
 |  | 
 | **curr[{n+1}-{n+2}]_highest** | 
 |  | 
 | **curr[1-{2n+k}]_input** | 
 |  | 
 | **curr[1-{2n+k}]_label** | 
 |  | 
 | The driver provides the next attributes for the voltage: | 
 |  | 
 | - for voltage in: input, high critical threshold, high critical alarm, all only | 
 |   from page 0; | 
 | - for voltage out: input, low and high critical thresholds, low and high | 
 |   critical alarms, from pages 0 and 1; | 
 |  | 
 | The driver exports the following attributes via the 'sysfs' files, where | 
 |  | 
 | - 'n' is number of telemetry pages (from 1 to 2); | 
 | - indexes 1 for "iin"; | 
 | - indexes n+1, n+2 for "vout"; | 
 |  | 
 | **in[1-{2n+1}]_crit** | 
 |  | 
 | **in[1-{2n+1}]_crit_alarm** | 
 |  | 
 | **in[1-{2n+1}]_input** | 
 |  | 
 | **in[1-{2n+1}]_label** | 
 |  | 
 | **in[2-{n+1}]_lcrit** | 
 |  | 
 | **in[2-{n+1}1_lcrit_alarm** | 
 |  | 
 | The driver provides the next attributes for the power: | 
 |  | 
 | - for power in alarm and input. | 
 | - for power out: highest and input. | 
 |  | 
 | The driver exports the following attributes via the 'sysfs' files, where | 
 |  | 
 | - 'n' is number of telemetry pages (from 1 to 2); | 
 | - indexes 1 for "pin"; | 
 | - indexes n+1, n+2 for "pout"; | 
 |  | 
 | **power1_alarm** | 
 |  | 
 | **power[2-{n+1}]_highest** | 
 |  | 
 | **power[1-{2n+1}]_input** | 
 |  | 
 | **power[1-{2n+1}]_label** | 
 |  | 
 | The driver provides the next attributes for the temperature (only from page 0): | 
 |  | 
 |  | 
 | **temp1_crit** | 
 |  | 
 | **temp1_crit_alarm** | 
 |  | 
 | **temp1_input** | 
 |  | 
 | **temp1_max** | 
 |  | 
 | **temp1_max_alarm** |