12c6fcbb2SVadim Pasternak.. SPDX-License-Identifier: GPL-2.0 22c6fcbb2SVadim Pasternak 32c6fcbb2SVadim PasternakKernel driver mp2975 42c6fcbb2SVadim Pasternak==================== 52c6fcbb2SVadim Pasternak 62c6fcbb2SVadim PasternakSupported chips: 72c6fcbb2SVadim Pasternak 82c6fcbb2SVadim Pasternak * MPS MP12254 92c6fcbb2SVadim Pasternak 102c6fcbb2SVadim Pasternak Prefix: 'mp2975' 112c6fcbb2SVadim Pasternak 122c6fcbb2SVadim PasternakAuthor: 132c6fcbb2SVadim Pasternak 142c6fcbb2SVadim Pasternak Vadim Pasternak <vadimp@nvidia.com> 152c6fcbb2SVadim Pasternak 162c6fcbb2SVadim PasternakDescription 172c6fcbb2SVadim Pasternak----------- 182c6fcbb2SVadim Pasternak 192c6fcbb2SVadim PasternakThis driver implements support for Monolithic Power Systems, Inc. (MPS) 202c6fcbb2SVadim Pasternakvendor dual-loop, digital, multi-phase controller MP2975. 212c6fcbb2SVadim Pasternak 222c6fcbb2SVadim PasternakThis device: 23*9d8c4f0cSMauro Carvalho Chehab 242c6fcbb2SVadim Pasternak- Supports up to two power rail. 252c6fcbb2SVadim Pasternak- Provides 8 pulse-width modulations (PWMs), and can be configured up 262c6fcbb2SVadim Pasternak to 8-phase operation for rail 1 and up to 4-phase operation for rail 272c6fcbb2SVadim Pasternak 2. 282c6fcbb2SVadim Pasternak- Supports two pages 0 and 1 for telemetry and also pages 2 and 3 for 292c6fcbb2SVadim Pasternak configuration. 302c6fcbb2SVadim Pasternak- Can configured VOUT readout in direct or VID format and allows 312c6fcbb2SVadim Pasternak setting of different formats on rails 1 and 2. For VID the following 322c6fcbb2SVadim Pasternak protocols are available: VR13 mode with 5-mV DAC; VR13 mode with 332c6fcbb2SVadim Pasternak 10-mV DAC, IMVP9 mode with 5-mV DAC. 342c6fcbb2SVadim Pasternak 352c6fcbb2SVadim PasternakDevice supports: 36*9d8c4f0cSMauro Carvalho Chehab 372c6fcbb2SVadim Pasternak- SVID interface. 382c6fcbb2SVadim Pasternak- AVSBus interface. 392c6fcbb2SVadim Pasternak 402c6fcbb2SVadim PasternakDevice complaint with: 41*9d8c4f0cSMauro Carvalho Chehab 422c6fcbb2SVadim Pasternak- PMBus rev 1.3 interface. 432c6fcbb2SVadim Pasternak 442c6fcbb2SVadim PasternakDevice supports direct format for reading output current, output voltage, 452c6fcbb2SVadim Pasternakinput and output power and temperature. 462c6fcbb2SVadim PasternakDevice supports linear format for reading input voltage and input power. 472c6fcbb2SVadim PasternakDevice supports VID and direct formats for reading output voltage. 482c6fcbb2SVadim PasternakThe below VID modes are supported: VR12, VR13, IMVP9. 492c6fcbb2SVadim Pasternak 502c6fcbb2SVadim PasternakThe driver provides the next attributes for the current: 51*9d8c4f0cSMauro Carvalho Chehab 522c6fcbb2SVadim Pasternak- for current in: input, maximum alarm; 532c6fcbb2SVadim Pasternak- for current out input, maximum alarm and highest values; 542c6fcbb2SVadim Pasternak- for phase current: input and label. 552c6fcbb2SVadim Pasternak attributes. 56*9d8c4f0cSMauro Carvalho Chehab 572c6fcbb2SVadim PasternakThe driver exports the following attributes via the 'sysfs' files, where 58*9d8c4f0cSMauro Carvalho Chehab 592c6fcbb2SVadim Pasternak- 'n' is number of telemetry pages (from 1 to 2); 602c6fcbb2SVadim Pasternak- 'k' is number of configured phases (from 1 to 8); 612c6fcbb2SVadim Pasternak- indexes 1, 1*n for "iin"; 622c6fcbb2SVadim Pasternak- indexes n+1, n+2 for "iout"; 632c6fcbb2SVadim Pasternak- indexes 2*n+1 ... 2*n + k for phases. 642c6fcbb2SVadim Pasternak 652c6fcbb2SVadim Pasternak**curr[1-{2n}]_alarm** 662c6fcbb2SVadim Pasternak 672c6fcbb2SVadim Pasternak**curr[{n+1}-{n+2}]_highest** 682c6fcbb2SVadim Pasternak 692c6fcbb2SVadim Pasternak**curr[1-{2n+k}]_input** 702c6fcbb2SVadim Pasternak 712c6fcbb2SVadim Pasternak**curr[1-{2n+k}]_label** 722c6fcbb2SVadim Pasternak 732c6fcbb2SVadim PasternakThe driver provides the next attributes for the voltage: 74*9d8c4f0cSMauro Carvalho Chehab 752c6fcbb2SVadim Pasternak- for voltage in: input, high critical threshold, high critical alarm, all only 762c6fcbb2SVadim Pasternak from page 0; 772c6fcbb2SVadim Pasternak- for voltage out: input, low and high critical thresholds, low and high 782c6fcbb2SVadim Pasternak critical alarms, from pages 0 and 1; 79*9d8c4f0cSMauro Carvalho Chehab 802c6fcbb2SVadim PasternakThe driver exports the following attributes via the 'sysfs' files, where 81*9d8c4f0cSMauro Carvalho Chehab 822c6fcbb2SVadim Pasternak- 'n' is number of telemetry pages (from 1 to 2); 832c6fcbb2SVadim Pasternak- indexes 1 for "iin"; 842c6fcbb2SVadim Pasternak- indexes n+1, n+2 for "vout"; 852c6fcbb2SVadim Pasternak 862c6fcbb2SVadim Pasternak**in[1-{2n+1}]_crit** 872c6fcbb2SVadim Pasternak 882c6fcbb2SVadim Pasternak**in[1-{2n+1}]_crit_alarm** 892c6fcbb2SVadim Pasternak 902c6fcbb2SVadim Pasternak**in[1-{2n+1}]_input** 912c6fcbb2SVadim Pasternak 922c6fcbb2SVadim Pasternak**in[1-{2n+1}]_label** 932c6fcbb2SVadim Pasternak 942c6fcbb2SVadim Pasternak**in[2-{n+1}]_lcrit** 952c6fcbb2SVadim Pasternak 962c6fcbb2SVadim Pasternak**in[2-{n+1}1_lcrit_alarm** 972c6fcbb2SVadim Pasternak 982c6fcbb2SVadim PasternakThe driver provides the next attributes for the power: 99*9d8c4f0cSMauro Carvalho Chehab 1002c6fcbb2SVadim Pasternak- for power in alarm and input. 1012c6fcbb2SVadim Pasternak- for power out: highest and input. 102*9d8c4f0cSMauro Carvalho Chehab 1032c6fcbb2SVadim PasternakThe driver exports the following attributes via the 'sysfs' files, where 104*9d8c4f0cSMauro Carvalho Chehab 1052c6fcbb2SVadim Pasternak- 'n' is number of telemetry pages (from 1 to 2); 1062c6fcbb2SVadim Pasternak- indexes 1 for "pin"; 1072c6fcbb2SVadim Pasternak- indexes n+1, n+2 for "pout"; 1082c6fcbb2SVadim Pasternak 1092c6fcbb2SVadim Pasternak**power1_alarm** 1102c6fcbb2SVadim Pasternak 1112c6fcbb2SVadim Pasternak**power[2-{n+1}]_highest** 1122c6fcbb2SVadim Pasternak 1132c6fcbb2SVadim Pasternak**power[1-{2n+1}]_input** 1142c6fcbb2SVadim Pasternak 1152c6fcbb2SVadim Pasternak**power[1-{2n+1}]_label** 1162c6fcbb2SVadim Pasternak 1172c6fcbb2SVadim PasternakThe driver provides the next attributes for the temperature (only from page 0): 1182c6fcbb2SVadim Pasternak 1192c6fcbb2SVadim Pasternak 1202c6fcbb2SVadim Pasternak**temp1_crit** 1212c6fcbb2SVadim Pasternak 1222c6fcbb2SVadim Pasternak**temp1_crit_alarm** 1232c6fcbb2SVadim Pasternak 1242c6fcbb2SVadim Pasternak**temp1_input** 1252c6fcbb2SVadim Pasternak 1262c6fcbb2SVadim Pasternak**temp1_max** 1272c6fcbb2SVadim Pasternak 1282c6fcbb2SVadim Pasternak**temp1_max_alarm** 129