blob: 81d816b71490d7cb9608450553166985a22a5411 [file] [log] [blame]
Vadim Pasternak2c6fcbb2020-09-26 23:49:56 +03001.. 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:
Mauro Carvalho Chehab9d8c4f02020-10-27 10:51:11 +010023
Vadim Pasternak2c6fcbb2020-09-26 23:49:56 +030024- Supports up to two power rail.
25- Provides 8 pulse-width modulations (PWMs), and can be configured up
26 to 8-phase operation for rail 1 and up to 4-phase operation for rail
27 2.
28- Supports two pages 0 and 1 for telemetry and also pages 2 and 3 for
29 configuration.
30- Can configured VOUT readout in direct or VID format and allows
31 setting of different formats on rails 1 and 2. For VID the following
32 protocols are available: VR13 mode with 5-mV DAC; VR13 mode with
33 10-mV DAC, IMVP9 mode with 5-mV DAC.
34
35Device supports:
Mauro Carvalho Chehab9d8c4f02020-10-27 10:51:11 +010036
Vadim Pasternak2c6fcbb2020-09-26 23:49:56 +030037- SVID interface.
38- AVSBus interface.
39
40Device complaint with:
Mauro Carvalho Chehab9d8c4f02020-10-27 10:51:11 +010041
Vadim Pasternak2c6fcbb2020-09-26 23:49:56 +030042- PMBus rev 1.3 interface.
43
44Device supports direct format for reading output current, output voltage,
45input and output power and temperature.
46Device supports linear format for reading input voltage and input power.
47Device supports VID and direct formats for reading output voltage.
48The below VID modes are supported: VR12, VR13, IMVP9.
49
50The driver provides the next attributes for the current:
Mauro Carvalho Chehab9d8c4f02020-10-27 10:51:11 +010051
Vadim Pasternak2c6fcbb2020-09-26 23:49:56 +030052- for current in: input, maximum alarm;
53- for current out input, maximum alarm and highest values;
54- for phase current: input and label.
Mauro Carvalho Chehab9d8c4f02020-10-27 10:51:11 +010055 attributes.
56
Vadim Pasternak2c6fcbb2020-09-26 23:49:56 +030057The driver exports the following attributes via the 'sysfs' files, where
Mauro Carvalho Chehab9d8c4f02020-10-27 10:51:11 +010058
Vadim Pasternak2c6fcbb2020-09-26 23:49:56 +030059- 'n' is number of telemetry pages (from 1 to 2);
60- 'k' is number of configured phases (from 1 to 8);
61- indexes 1, 1*n for "iin";
62- indexes n+1, n+2 for "iout";
63- indexes 2*n+1 ... 2*n + k for phases.
64
65**curr[1-{2n}]_alarm**
66
67**curr[{n+1}-{n+2}]_highest**
68
69**curr[1-{2n+k}]_input**
70
71**curr[1-{2n+k}]_label**
72
73The driver provides the next attributes for the voltage:
Mauro Carvalho Chehab9d8c4f02020-10-27 10:51:11 +010074
Vadim Pasternak2c6fcbb2020-09-26 23:49:56 +030075- for voltage in: input, high critical threshold, high critical alarm, all only
76 from page 0;
77- for voltage out: input, low and high critical thresholds, low and high
78 critical alarms, from pages 0 and 1;
Mauro Carvalho Chehab9d8c4f02020-10-27 10:51:11 +010079
Vadim Pasternak2c6fcbb2020-09-26 23:49:56 +030080The driver exports the following attributes via the 'sysfs' files, where
Mauro Carvalho Chehab9d8c4f02020-10-27 10:51:11 +010081
Vadim Pasternak2c6fcbb2020-09-26 23:49:56 +030082- 'n' is number of telemetry pages (from 1 to 2);
83- indexes 1 for "iin";
84- indexes n+1, n+2 for "vout";
85
86**in[1-{2n+1}]_crit**
87
88**in[1-{2n+1}]_crit_alarm**
89
90**in[1-{2n+1}]_input**
91
92**in[1-{2n+1}]_label**
93
94**in[2-{n+1}]_lcrit**
95
96**in[2-{n+1}1_lcrit_alarm**
97
98The driver provides the next attributes for the power:
Mauro Carvalho Chehab9d8c4f02020-10-27 10:51:11 +010099
Vadim Pasternak2c6fcbb2020-09-26 23:49:56 +0300100- for power in alarm and input.
101- for power out: highest and input.
Mauro Carvalho Chehab9d8c4f02020-10-27 10:51:11 +0100102
Vadim Pasternak2c6fcbb2020-09-26 23:49:56 +0300103The driver exports the following attributes via the 'sysfs' files, where
Mauro Carvalho Chehab9d8c4f02020-10-27 10:51:11 +0100104
Vadim Pasternak2c6fcbb2020-09-26 23:49:56 +0300105- 'n' is number of telemetry pages (from 1 to 2);
106- indexes 1 for "pin";
107- indexes n+1, n+2 for "pout";
108
109**power1_alarm**
110
111**power[2-{n+1}]_highest**
112
113**power[1-{2n+1}]_input**
114
115**power[1-{2n+1}]_label**
116
117The driver provides the next attributes for the temperature (only from page 0):
118
119
120**temp1_crit**
121
122**temp1_crit_alarm**
123
124**temp1_input**
125
126**temp1_max**
127
128**temp1_max_alarm**