xref: /openbmc/linux/Documentation/hwmon/mp2975.rst (revision fa538f7cf05aab61cd91e01c160d4a09c81b8ffe)
1.. SPDX-License-Identifier: GPL-2.0
2
3Kernel driver mp2975
4====================
5
6Supported chips:
7
8  * MPS MP12254
9
10    Prefix: 'mp2975'
11
12Author:
13
14	Vadim Pasternak <vadimp@nvidia.com>
15
16Description
17-----------
18
19This driver implements support for Monolithic Power Systems, Inc. (MPS)
20vendor dual-loop, digital, multi-phase controller MP2975.
21
22This device:
23- Supports up to two power rail.
24- Provides 8 pulse-width modulations (PWMs), and can be configured up
25  to 8-phase operation for rail 1 and up to 4-phase operation for rail
26  2.
27- Supports two pages 0 and 1 for telemetry and also pages 2 and 3 for
28  configuration.
29- Can configured VOUT readout in direct or VID format and allows
30  setting of different formats on rails 1 and 2. For VID the following
31  protocols are available: VR13 mode with 5-mV DAC; VR13 mode with
32  10-mV DAC, IMVP9 mode with 5-mV DAC.
33
34Device supports:
35- SVID interface.
36- AVSBus interface.
37
38Device complaint with:
39- PMBus rev 1.3 interface.
40
41Device supports direct format for reading output current, output voltage,
42input and output power and temperature.
43Device supports linear format for reading input voltage and input power.
44Device supports VID and direct formats for reading output voltage.
45The below VID modes are supported: VR12, VR13, IMVP9.
46
47The driver provides the next attributes for the current:
48- for current in: input, maximum alarm;
49- for current out input, maximum alarm and highest values;
50- for phase current: input and label.
51attributes.
52The driver exports the following attributes via the 'sysfs' files, where
53- 'n' is number of telemetry pages (from 1 to 2);
54- 'k' is number of configured phases (from 1 to 8);
55- indexes 1, 1*n for "iin";
56- indexes n+1, n+2 for "iout";
57- indexes 2*n+1 ... 2*n + k for phases.
58
59**curr[1-{2n}]_alarm**
60
61**curr[{n+1}-{n+2}]_highest**
62
63**curr[1-{2n+k}]_input**
64
65**curr[1-{2n+k}]_label**
66
67The driver provides the next attributes for the voltage:
68- for voltage in: input, high critical threshold, high critical alarm, all only
69  from page 0;
70- for voltage out: input, low and high critical thresholds, low and high
71  critical alarms, from pages 0 and 1;
72The driver exports the following attributes via the 'sysfs' files, where
73- 'n' is number of telemetry pages (from 1 to 2);
74- indexes 1 for "iin";
75- indexes n+1, n+2 for "vout";
76
77**in[1-{2n+1}]_crit**
78
79**in[1-{2n+1}]_crit_alarm**
80
81**in[1-{2n+1}]_input**
82
83**in[1-{2n+1}]_label**
84
85**in[2-{n+1}]_lcrit**
86
87**in[2-{n+1}1_lcrit_alarm**
88
89The driver provides the next attributes for the power:
90- for power in alarm and input.
91- for power out: highest and input.
92The driver exports the following attributes via the 'sysfs' files, where
93- 'n' is number of telemetry pages (from 1 to 2);
94- indexes 1 for "pin";
95- indexes n+1, n+2 for "pout";
96
97**power1_alarm**
98
99**power[2-{n+1}]_highest**
100
101**power[1-{2n+1}]_input**
102
103**power[1-{2n+1}]_label**
104
105The driver provides the next attributes for the temperature (only from page 0):
106
107
108**temp1_crit**
109
110**temp1_crit_alarm**
111
112**temp1_input**
113
114**temp1_max**
115
116**temp1_max_alarm**
117