1*4882a593Smuzhiyun.. SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunKernel driver xdpe122 4*4882a593Smuzhiyun===================== 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunSupported chips: 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun * Infineon XDPE12254 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun Prefix: 'xdpe12254' 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun * Infineon XDPE12284 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun Prefix: 'xdpe12284' 15*4882a593Smuzhiyun 16*4882a593SmuzhiyunAuthors: 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun Vadim Pasternak <vadimp@mellanox.com> 19*4882a593Smuzhiyun 20*4882a593SmuzhiyunDescription 21*4882a593Smuzhiyun----------- 22*4882a593Smuzhiyun 23*4882a593SmuzhiyunThis driver implements support for Infineon Multi-phase XDPE122 family 24*4882a593Smuzhiyundual loop voltage regulators. 25*4882a593SmuzhiyunThe family includes XDPE12284 and XDPE12254 devices. 26*4882a593SmuzhiyunThe devices from this family complaint with: 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun- Intel VR13 and VR13HC rev 1.3, IMVP8 rev 1.2 and IMPVP9 rev 1.3 DC-DC 29*4882a593Smuzhiyun converter specification. 30*4882a593Smuzhiyun- Intel SVID rev 1.9. protocol. 31*4882a593Smuzhiyun- PMBus rev 1.3 interface. 32*4882a593Smuzhiyun 33*4882a593SmuzhiyunDevices support linear format for reading input voltage, input and output current, 34*4882a593Smuzhiyuninput and output power and temperature. 35*4882a593SmuzhiyunDevice supports VID format for reading output voltage. The below modes are 36*4882a593Smuzhiyunsupported: 37*4882a593Smuzhiyun- VR12.0 mode, 5-mV DAC - 0x01. 38*4882a593Smuzhiyun- VR12.5 mode, 10-mV DAC - 0x02. 39*4882a593Smuzhiyun- IMVP9 mode, 5-mV DAC - 0x03. 40*4882a593Smuzhiyun- AMD mode 6.25mV - 0x10. 41*4882a593Smuzhiyun 42*4882a593SmuzhiyunDevices support two pages for telemetry. 43*4882a593Smuzhiyun 44*4882a593SmuzhiyunThe driver provides for current: input, maximum and critical thresholds 45*4882a593Smuzhiyunand maximum and critical alarms. Critical thresholds and critical alarm are 46*4882a593Smuzhiyunsupported only for current output. 47*4882a593SmuzhiyunThe driver exports the following attributes for via the sysfs files, where 48*4882a593Smuzhiyunindexes 1, 2 are for "iin" and 3, 4 for "iout": 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun**curr[3-4]_crit** 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun**curr[3-4]_crit_alarm** 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun**curr[1-4]_input** 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun**curr[1-4]_label** 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun**curr[1-4]_max** 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun**curr[1-4]_max_alarm** 61*4882a593Smuzhiyun 62*4882a593SmuzhiyunThe driver provides for voltage: input, critical and low critical thresholds 63*4882a593Smuzhiyunand critical and low critical alarms. 64*4882a593SmuzhiyunThe driver exports the following attributes for via the sysfs files, where 65*4882a593Smuzhiyunindexes 1, 2 are for "vin" and 3, 4 for "vout": 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun**in[1-4]_crit** 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun**in[1-4_crit_alarm** 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun**in[1-4]_input** 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun**in[1-4_label** 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun**in[1-4]_lcrit** 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun**in[1-41_lcrit_alarm** 78*4882a593Smuzhiyun 79*4882a593SmuzhiyunThe driver provides for power: input and alarms. Power alarm is supported only 80*4882a593Smuzhiyunfor power input. 81*4882a593SmuzhiyunThe driver exports the following attributes for via the sysfs files, where 82*4882a593Smuzhiyunindexes 1, 2 are for "pin" and 3, 4 for "pout": 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun**power[1-2]_alarm** 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun**power[1-4]_input** 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun**power[1-4]_label** 89*4882a593Smuzhiyun 90*4882a593SmuzhiyunThe driver provides for temperature: input, maximum and critical thresholds 91*4882a593Smuzhiyunand maximum and critical alarms. 92*4882a593SmuzhiyunThe driver exports the following attributes for via the sysfs files: 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun**temp[1-2]_crit** 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun**temp[1-2]_crit_alarm** 97*4882a593Smuzhiyun 98*4882a593Smuzhiyun**temp[1-2]_input** 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun**temp[1-2]_max** 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun**temp[1-2]_max_alarm** 103