1# SPDX-License-Identifier: GPL-2.0-only 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/mfd/samsung,s2mps11.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Samsung S2MPS11/13/14/15 and S2MPU02 Power Management IC 8 9maintainers: 10 - Krzysztof Kozlowski <krzk@kernel.org> 11 12description: | 13 This is a part of device tree bindings for S2M and S5M family of Power 14 Management IC (PMIC). 15 16 The Samsung S2MPS11/13/14/15 and S2MPU02 is a family of Power Management IC 17 which include voltage and current regulators, RTC, clock outputs and other 18 sub-blocks. 19 20properties: 21 compatible: 22 enum: 23 - samsung,s2mps11-pmic 24 - samsung,s2mps13-pmic 25 - samsung,s2mps14-pmic 26 - samsung,s2mps15-pmic 27 - samsung,s2mpu02-pmic 28 - samsung,s2mpu05-pmic 29 30 clocks: 31 $ref: /schemas/clock/samsung,s2mps11.yaml 32 description: 33 Child node describing clock provider. 34 35 interrupts: 36 maxItems: 1 37 38 reg: 39 maxItems: 1 40 41 regulators: 42 type: object 43 description: 44 List of child nodes that specify the regulators. 45 46 samsung,s2mps11-acokb-ground: 47 description: | 48 Indicates that ACOKB pin of S2MPS11 PMIC is connected to the ground so 49 the PMIC must manually set PWRHOLD bit in CTRL1 register to turn off the 50 power. Usually the ACOKB is pulled up to VBATT so when PWRHOLD pin goes 51 low, the rising ACOKB will trigger power off. 52 type: boolean 53 54 samsung,s2mps11-wrstbi-ground: 55 description: | 56 Indicates that WRSTBI pin of PMIC is pulled down. When the system is 57 suspended it will always go down thus triggering unwanted buck warm 58 reset (setting buck voltages to default values). 59 type: boolean 60 61 wakeup-source: true 62 63required: 64 - compatible 65 - reg 66 - regulators 67 68additionalProperties: false 69 70allOf: 71 - if: 72 properties: 73 compatible: 74 contains: 75 const: samsung,s2mps11-pmic 76 then: 77 properties: 78 regulators: 79 $ref: /schemas/regulator/samsung,s2mps11.yaml 80 samsung,s2mps11-wrstbi-ground: false 81 82 - if: 83 properties: 84 compatible: 85 contains: 86 const: samsung,s2mps13-pmic 87 then: 88 properties: 89 regulators: 90 $ref: /schemas/regulator/samsung,s2mps13.yaml 91 samsung,s2mps11-acokb-ground: false 92 93 - if: 94 properties: 95 compatible: 96 contains: 97 const: samsung,s2mps14-pmic 98 then: 99 properties: 100 regulators: 101 $ref: /schemas/regulator/samsung,s2mps14.yaml 102 samsung,s2mps11-acokb-ground: false 103 samsung,s2mps11-wrstbi-ground: false 104 105 - if: 106 properties: 107 compatible: 108 contains: 109 const: samsung,s2mps15-pmic 110 then: 111 properties: 112 regulators: 113 $ref: /schemas/regulator/samsung,s2mps15.yaml 114 samsung,s2mps11-acokb-ground: false 115 samsung,s2mps11-wrstbi-ground: false 116 117 - if: 118 properties: 119 compatible: 120 contains: 121 const: samsung,s2mpu02-pmic 122 then: 123 properties: 124 regulators: 125 $ref: /schemas/regulator/samsung,s2mpu02.yaml 126 samsung,s2mps11-acokb-ground: false 127 samsung,s2mps11-wrstbi-ground: false 128 129 - if: 130 properties: 131 compatible: 132 contains: 133 const: samsung,s2mpu05-pmic 134 then: 135 properties: 136 regulators: 137 $ref: /schemas/regulator/samsung,s2mpu05.yaml 138 samsung,s2mps11-acokb-ground: false 139 samsung,s2mps11-wrstbi-ground: false 140 141examples: 142 - | 143 #include <dt-bindings/interrupt-controller/irq.h> 144 145 i2c { 146 #address-cells = <1>; 147 #size-cells = <0>; 148 149 pmic@66 { 150 compatible = "samsung,s2mps11-pmic"; 151 reg = <0x66>; 152 153 interrupt-parent = <&gpx0>; 154 interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 155 pinctrl-names = "default"; 156 pinctrl-0 = <&s2mps11_irq>; 157 samsung,s2mps11-acokb-ground; 158 wakeup-source; 159 160 clocks { 161 compatible = "samsung,s2mps11-clk"; 162 #clock-cells = <1>; 163 clock-output-names = "s2mps11_ap", "s2mps11_cp", "s2mps11_bt"; 164 }; 165 166 regulators { 167 LDO1 { 168 regulator-name = "vdd_ldo1"; 169 regulator-min-microvolt = <1000000>; 170 regulator-max-microvolt = <1000000>; 171 regulator-always-on; 172 }; 173 174 LDO4 { 175 regulator-name = "vdd_adc"; 176 regulator-min-microvolt = <1800000>; 177 regulator-max-microvolt = <1800000>; 178 179 regulator-state-mem { 180 regulator-off-in-suspend; 181 }; 182 }; 183 184 // .... 185 186 BUCK1 { 187 regulator-name = "vdd_mif"; 188 regulator-min-microvolt = <800000>; 189 regulator-max-microvolt = <1300000>; 190 regulator-always-on; 191 regulator-boot-on; 192 193 regulator-state-mem { 194 regulator-off-in-suspend; 195 }; 196 }; 197 198 BUCK2 { 199 regulator-name = "vdd_arm"; 200 regulator-min-microvolt = <800000>; 201 regulator-max-microvolt = <1500000>; 202 regulator-always-on; 203 regulator-boot-on; 204 regulator-coupled-with = <&buck3_reg>; 205 regulator-coupled-max-spread = <300000>; 206 207 regulator-state-mem { 208 regulator-off-in-suspend; 209 }; 210 }; 211 212 BUCK3 { 213 regulator-name = "vdd_int"; 214 regulator-min-microvolt = <800000>; 215 regulator-max-microvolt = <1400000>; 216 regulator-always-on; 217 regulator-boot-on; 218 regulator-coupled-with = <&buck2_reg>; 219 regulator-coupled-max-spread = <300000>; 220 221 regulator-state-mem { 222 regulator-off-in-suspend; 223 }; 224 }; 225 226 // ... 227 }; 228 }; 229 }; 230 231 - | 232 #include <dt-bindings/interrupt-controller/irq.h> 233 234 i2c { 235 #address-cells = <1>; 236 #size-cells = <0>; 237 238 pmic@66 { 239 compatible = "samsung,s2mps14-pmic"; 240 reg = <0x66>; 241 242 interrupt-parent = <&gpx0>; 243 interrupts = <7 IRQ_TYPE_LEVEL_LOW>; 244 wakeup-source; 245 246 clocks { 247 compatible = "samsung,s2mps14-clk"; 248 #clock-cells = <1>; 249 clock-output-names = "s2mps14_ap", "unused", "s2mps14_bt"; 250 }; 251 252 regulators { 253 LDO1 { 254 regulator-name = "VLDO1_1.0V"; 255 regulator-min-microvolt = <1000000>; 256 regulator-max-microvolt = <1000000>; 257 regulator-always-on; 258 259 regulator-state-mem { 260 regulator-on-in-suspend; 261 }; 262 }; 263 264 // ... 265 266 BUCK1 { 267 regulator-name = "VBUCK1_1.0V"; 268 regulator-min-microvolt = <800000>; 269 regulator-max-microvolt = <1000000>; 270 regulator-always-on; 271 272 regulator-state-mem { 273 regulator-off-in-suspend; 274 }; 275 }; 276 277 // ... 278 }; 279 }; 280 }; 281