1*4882a593SmuzhiyunRegulator DT binding for MAX77620 Power management IC from Maxim Semiconductor. 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunDevice has multiple DCDC(sd[0-3] and LDOs(ldo[0-8]). The input supply 4*4882a593Smuzhiyunof these regulators are defined under parent device node. 5*4882a593SmuzhiyunDetails of regulator properties are defined as child node under 6*4882a593Smuzhiyunsub-node "regulators" which is child node of device node. 7*4882a593Smuzhiyun 8*4882a593SmuzhiyunPlease refer file <Documentation/devicetree/bindings/regulator/regulator.txt> 9*4882a593Smuzhiyunfor common regulator bindings used by client. 10*4882a593Smuzhiyun 11*4882a593SmuzhiyunFollowing are properties of parent node related to regulators. 12*4882a593Smuzhiyun 13*4882a593SmuzhiyunOptional properties: 14*4882a593Smuzhiyun------------------- 15*4882a593SmuzhiyunThe input supply of regulators are the optional properties on the 16*4882a593Smuzhiyunparent device node. The input supply of these regulators are provided 17*4882a593Smuzhiyunthrough following properties: 18*4882a593Smuzhiyunin-sd0-supply: Input supply for SD0, INA-SD0 or INB-SD0 pins. 19*4882a593Smuzhiyunin-sd1-supply: Input supply for SD1. 20*4882a593Smuzhiyunin-sd2-supply: Input supply for SD2. 21*4882a593Smuzhiyunin-sd3-supply: Input supply for SD3. 22*4882a593Smuzhiyunin-ldo0-1-supply: Input supply for LDO0 and LDO1. 23*4882a593Smuzhiyunin-ldo2-supply: Input supply for LDO2. 24*4882a593Smuzhiyunin-ldo3-5-supply: Input supply for LDO3 and LDO5 25*4882a593Smuzhiyunin-ldo4-6-supply: Input supply for LDO4 and LDO6. 26*4882a593Smuzhiyunin-ldo7-8-supply: Input supply for LDO7 and LDO8. 27*4882a593Smuzhiyun 28*4882a593SmuzhiyunOptional sub nodes for regulators under "regulators" subnode: 29*4882a593Smuzhiyun------------------------------------------------------------ 30*4882a593SmuzhiyunThe subnodes name is the name of regulator and it must be one of: 31*4882a593Smuzhiyun sd[0-3], ldo[0-8] 32*4882a593Smuzhiyun 33*4882a593SmuzhiyunEach sub-node should contain the constraints and initialization 34*4882a593Smuzhiyuninformation for that regulator. The definition for each of these 35*4882a593Smuzhiyunnodes is defined using the standard binding for regulators found at 36*4882a593Smuzhiyun<Documentation/devicetree/bindings/regulator/regulator.txt>. 37*4882a593Smuzhiyun 38*4882a593SmuzhiyunTheres are also additional properties for SD/LDOs. These additional properties 39*4882a593Smuzhiyunare required to configure FPS configuration parameters for SDs and LDOs. 40*4882a593SmuzhiyunPlease refer <devicetree/bindings/mfd/max77620.txt> for more detail of Flexible 41*4882a593SmuzhiyunPower Sequence (FPS). 42*4882a593SmuzhiyunFollowing are additional properties: 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun- maxim,active-fps-source: FPS source for the regulators to get 45*4882a593Smuzhiyun enabled/disabled when system is in 46*4882a593Smuzhiyun active state. Valid values are: 47*4882a593Smuzhiyun - MAX77620_FPS_SRC_0, 48*4882a593Smuzhiyun FPS source is FPS0. 49*4882a593Smuzhiyun - MAX77620_FPS_SRC_1, 50*4882a593Smuzhiyun FPS source is FPS1 51*4882a593Smuzhiyun - MAX77620_FPS_SRC_2 and 52*4882a593Smuzhiyun FPS source is FPS2 53*4882a593Smuzhiyun - MAX77620_FPS_SRC_NONE. 54*4882a593Smuzhiyun Regulator is not controlled 55*4882a593Smuzhiyun by FPS events and it gets 56*4882a593Smuzhiyun enabled/disabled by register 57*4882a593Smuzhiyun access. 58*4882a593Smuzhiyun Absence of this property will leave 59*4882a593Smuzhiyun the FPS configuration register for that 60*4882a593Smuzhiyun regulator to default configuration. 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun- maxim,active-fps-power-up-slot: Sequencing event slot number on which 63*4882a593Smuzhiyun the regulator get enabled when 64*4882a593Smuzhiyun master FPS input event set to HIGH. 65*4882a593Smuzhiyun Valid values are 0 to 7. 66*4882a593Smuzhiyun This is applicable if FPS source is 67*4882a593Smuzhiyun selected as FPS0, FPS1 or FPS2. 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun- maxim,active-fps-power-down-slot: Sequencing event slot number on which 70*4882a593Smuzhiyun the regulator get disabled when master 71*4882a593Smuzhiyun FPS input event set to LOW. 72*4882a593Smuzhiyun Valid values are 0 to 7. 73*4882a593Smuzhiyun This is applicable if FPS source is 74*4882a593Smuzhiyun selected as FPS0, FPS1 or FPS2. 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun- maxim,suspend-fps-source: This is same as property 77*4882a593Smuzhiyun "maxim,active-fps-source" but value 78*4882a593Smuzhiyun get configured when system enters in 79*4882a593Smuzhiyun to suspend state. 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun- maxim,suspend-fps-power-up-slot: This is same as property 82*4882a593Smuzhiyun "maxim,active-fps-power-up-slot" but 83*4882a593Smuzhiyun this value get configured into FPS 84*4882a593Smuzhiyun configuration register when system 85*4882a593Smuzhiyun enters into suspend. 86*4882a593Smuzhiyun This is applicable if suspend state 87*4882a593Smuzhiyun FPS source is selected as FPS0, FPS1 or 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun- maxim,suspend-fps-power-down-slot: This is same as property 90*4882a593Smuzhiyun "maxim,active-fps-power-down-slot" but 91*4882a593Smuzhiyun this value get configured into FPS 92*4882a593Smuzhiyun configuration register when system 93*4882a593Smuzhiyun enters into suspend. 94*4882a593Smuzhiyun This is applicable if suspend state 95*4882a593Smuzhiyun FPS source is selected as FPS0, FPS1 or 96*4882a593Smuzhiyun FPS2. 97*4882a593Smuzhiyun- maxim,ramp-rate-setting: integer, ramp rate(uV/us) setting to be 98*4882a593Smuzhiyun configured to the device. 99*4882a593Smuzhiyun The platform may have different ramp 100*4882a593Smuzhiyun rate than advertised ramp rate if it has 101*4882a593Smuzhiyun design variation from Maxim's 102*4882a593Smuzhiyun recommended. On this case, platform 103*4882a593Smuzhiyun specific ramp rate is used for ramp time 104*4882a593Smuzhiyun calculation and this property is used 105*4882a593Smuzhiyun for device register configurations. 106*4882a593Smuzhiyun The measured ramp rate of platform is 107*4882a593Smuzhiyun provided by the regulator-ramp-delay 108*4882a593Smuzhiyun as described in <devicetree/bindings/ 109*4882a593Smuzhiyun regulator/regulator.txt>. 110*4882a593Smuzhiyun Maxim Max77620 supports following ramp 111*4882a593Smuzhiyun delay: 112*4882a593Smuzhiyun SD: 13.75mV/us, 27.5mV/us, 55mV/us 113*4882a593Smuzhiyun LDOs: 5mV/us, 100mV/us 114*4882a593Smuzhiyun 115*4882a593SmuzhiyunNote: If the measured ramp delay is same as advertised ramp delay then it is not 116*4882a593Smuzhiyunrequired to provide the ramp delay with property "maxim,ramp-rate-setting". The 117*4882a593Smuzhiyunramp rate can be provided by the regulator-ramp-delay which will be used for 118*4882a593Smuzhiyunramp time calculation for voltage change as well as for device configuration. 119*4882a593Smuzhiyun 120*4882a593SmuzhiyunExample: 121*4882a593Smuzhiyun-------- 122*4882a593Smuzhiyun#include <dt-bindings/mfd/max77620.h> 123*4882a593Smuzhiyun... 124*4882a593Smuzhiyunmax77620@3c { 125*4882a593Smuzhiyun in-ldo0-1-supply = <&max77620_sd2>; 126*4882a593Smuzhiyun in-ldo7-8-supply = <&max77620_sd2>; 127*4882a593Smuzhiyun regulators { 128*4882a593Smuzhiyun sd0 { 129*4882a593Smuzhiyun regulator-name = "vdd-core"; 130*4882a593Smuzhiyun regulator-min-microvolt = <600000>; 131*4882a593Smuzhiyun regulator-max-microvolt = <1400000>; 132*4882a593Smuzhiyun regulator-boot-on; 133*4882a593Smuzhiyun regulator-always-on; 134*4882a593Smuzhiyun maxim,active-fps-source = <MAX77620_FPS_SRC_1>; 135*4882a593Smuzhiyun }; 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun sd1 { 138*4882a593Smuzhiyun regulator-name = "vddio-ddr"; 139*4882a593Smuzhiyun regulator-min-microvolt = <1200000>; 140*4882a593Smuzhiyun regulator-max-microvolt = <1200000>; 141*4882a593Smuzhiyun regulator-always-on; 142*4882a593Smuzhiyun regulator-boot-on; 143*4882a593Smuzhiyun maxim,active-fps-source = <MAX77620_FPS_SRC_0>; 144*4882a593Smuzhiyun }; 145*4882a593Smuzhiyun 146*4882a593Smuzhiyun sd2 { 147*4882a593Smuzhiyun regulator-name = "vdd-pre-reg"; 148*4882a593Smuzhiyun regulator-min-microvolt = <1350000>; 149*4882a593Smuzhiyun regulator-max-microvolt = <1350000>; 150*4882a593Smuzhiyun }; 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun sd3 { 153*4882a593Smuzhiyun regulator-name = "vdd-1v8"; 154*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 155*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 156*4882a593Smuzhiyun regulator-always-on; 157*4882a593Smuzhiyun regulator-boot-on; 158*4882a593Smuzhiyun }; 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun ldo0 { 161*4882a593Smuzhiyun regulator-name = "avdd-sys"; 162*4882a593Smuzhiyun regulator-min-microvolt = <1200000>; 163*4882a593Smuzhiyun regulator-max-microvolt = <1200000>; 164*4882a593Smuzhiyun regulator-always-on; 165*4882a593Smuzhiyun regulator-boot-on; 166*4882a593Smuzhiyun }; 167*4882a593Smuzhiyun 168*4882a593Smuzhiyun ldo1 { 169*4882a593Smuzhiyun regulator-name = "vdd-pex"; 170*4882a593Smuzhiyun regulator-min-microvolt = <1050000>; 171*4882a593Smuzhiyun regulator-max-microvolt = <1050000>; 172*4882a593Smuzhiyun }; 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun ldo2 { 175*4882a593Smuzhiyun regulator-name = "vddio-sdmmc3"; 176*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 177*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 178*4882a593Smuzhiyun }; 179*4882a593Smuzhiyun 180*4882a593Smuzhiyun ldo3 { 181*4882a593Smuzhiyun regulator-name = "vdd-cam-hv"; 182*4882a593Smuzhiyun regulator-min-microvolt = <2800000>; 183*4882a593Smuzhiyun regulator-max-microvolt = <2800000>; 184*4882a593Smuzhiyun }; 185*4882a593Smuzhiyun 186*4882a593Smuzhiyun ldo4 { 187*4882a593Smuzhiyun regulator-name = "vdd-rtc"; 188*4882a593Smuzhiyun regulator-min-microvolt = <1250000>; 189*4882a593Smuzhiyun regulator-max-microvolt = <1250000>; 190*4882a593Smuzhiyun regulator-always-on; 191*4882a593Smuzhiyun regulator-boot-on; 192*4882a593Smuzhiyun }; 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun ldo5 { 195*4882a593Smuzhiyun regulator-name = "avdd-ts-hv"; 196*4882a593Smuzhiyun regulator-min-microvolt = <3000000>; 197*4882a593Smuzhiyun regulator-max-microvolt = <3000000>; 198*4882a593Smuzhiyun }; 199*4882a593Smuzhiyun 200*4882a593Smuzhiyun ldo6 { 201*4882a593Smuzhiyun regulator-name = "vdd-ts"; 202*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 203*4882a593Smuzhiyun regulator-max-microvolt = <1800000>; 204*4882a593Smuzhiyun regulator-always-on; 205*4882a593Smuzhiyun regulator-boot-on; 206*4882a593Smuzhiyun }; 207*4882a593Smuzhiyun 208*4882a593Smuzhiyun ldo7 { 209*4882a593Smuzhiyun regulator-name = "vdd-gen-pll-edp"; 210*4882a593Smuzhiyun regulator-min-microvolt = <1050000>; 211*4882a593Smuzhiyun regulator-max-microvolt = <1050000>; 212*4882a593Smuzhiyun regulator-always-on; 213*4882a593Smuzhiyun regulator-boot-on; 214*4882a593Smuzhiyun }; 215*4882a593Smuzhiyun 216*4882a593Smuzhiyun ldo8 { 217*4882a593Smuzhiyun regulator-name = "vdd-hdmi-dp"; 218*4882a593Smuzhiyun regulator-min-microvolt = <1050000>; 219*4882a593Smuzhiyun regulator-max-microvolt = <1050000>; 220*4882a593Smuzhiyun }; 221*4882a593Smuzhiyun }; 222*4882a593Smuzhiyun}; 223