Merge tag 'v5.15.61' into rpi-5.15.y
[platform/kernel/linux-rpi.git] / Documentation / hwmon / mp2975.rst
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:
23
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:
36
37 - SVID interface.
38 - AVSBus interface.
39
40 Device complaint with:
41
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:
51
52 - for current in: input, maximum alarm;
53 - for current out input, maximum alarm and highest values;
54 - for phase current: input and label.
55   attributes.
56
57 The driver exports the following attributes via the 'sysfs' files, where
58
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:
74
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;
79
80 The driver exports the following attributes via the 'sysfs' files, where
81
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:
99
100 - for power in alarm and input.
101 - for power out: highest and input.
102
103 The driver exports the following attributes via the 'sysfs' files, where
104
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**