Commit | Line | Data |
---|---|---|
2c6fcbb2 VP |
1 | .. SPDX-License-Identifier: GPL-2.0 |
2 | ||
3 | Kernel driver mp2975 | |
4 | ==================== | |
5 | ||
6 | Supported chips: | |
7 | ||
8 | * MPS MP12254 | |
9 | ||
10 | Prefix: 'mp2975' | |
11 | ||
12 | Author: | |
13 | ||
14 | Vadim Pasternak <vadimp@nvidia.com> | |
15 | ||
16 | Description | |
17 | ----------- | |
18 | ||
19 | This driver implements support for Monolithic Power Systems, Inc. (MPS) | |
20 | vendor dual-loop, digital, multi-phase controller MP2975. | |
21 | ||
22 | This device: | |
9d8c4f0c | 23 | |
2c6fcbb2 VP |
24 | - 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 | ||
35 | Device supports: | |
9d8c4f0c | 36 | |
2c6fcbb2 VP |
37 | - SVID interface. |
38 | - AVSBus interface. | |
39 | ||
40 | Device complaint with: | |
9d8c4f0c | 41 | |
2c6fcbb2 VP |
42 | - PMBus rev 1.3 interface. |
43 | ||
44 | Device supports direct format for reading output current, output voltage, | |
45 | input and output power and temperature. | |
46 | Device supports linear format for reading input voltage and input power. | |
47 | Device supports VID and direct formats for reading output voltage. | |
48 | The below VID modes are supported: VR12, VR13, IMVP9. | |
49 | ||
50 | The driver provides the next attributes for the current: | |
9d8c4f0c | 51 | |
2c6fcbb2 VP |
52 | - for current in: input, maximum alarm; |
53 | - for current out input, maximum alarm and highest values; | |
54 | - for phase current: input and label. | |
9d8c4f0c MCC |
55 | attributes. |
56 | ||
2c6fcbb2 | 57 | The driver exports the following attributes via the 'sysfs' files, where |
9d8c4f0c | 58 | |
2c6fcbb2 VP |
59 | - '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 | ||
73 | The driver provides the next attributes for the voltage: | |
9d8c4f0c | 74 | |
2c6fcbb2 VP |
75 | - 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; | |
9d8c4f0c | 79 | |
2c6fcbb2 | 80 | The driver exports the following attributes via the 'sysfs' files, where |
9d8c4f0c | 81 | |
2c6fcbb2 VP |
82 | - '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 | ||
98 | The driver provides the next attributes for the power: | |
9d8c4f0c | 99 | |
2c6fcbb2 VP |
100 | - for power in alarm and input. |
101 | - for power out: highest and input. | |
9d8c4f0c | 102 | |
2c6fcbb2 | 103 | The driver exports the following attributes via the 'sysfs' files, where |
9d8c4f0c | 104 | |
2c6fcbb2 VP |
105 | - '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 | ||
117 | The 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** |