1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/mfd/dlg,da9063.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Dialog DA906{3L,3,2,1} Power Management Integrated Circuit (PMIC) 8 9maintainers: 10 - Steve Twiss <stwiss.opensource@diasemi.com> 11 12description: | 13 For device-tree bindings of other sub-modules refer to the binding documents 14 under the respective sub-system directories. 15 Using regulator-{uv,ov}-{warn,error,protection}-microvolt requires special 16 handling: First, when GP_FB2 is used, it must be ensured that there is no 17 moment where all voltage monitors are disabled. Next, as da9063 only supports 18 UV *and* OV monitoring, both must be set to the same severity and value 19 (0: disable, 1: enable). 20 Product information for the DA906{3L,3,2,1} devices can be found here: 21 - https://www.dialog-semiconductor.com/products/da9063l 22 - https://www.dialog-semiconductor.com/products/da9063 23 - https://www.dialog-semiconductor.com/products/da9062 24 - https://www.dialog-semiconductor.com/products/da9061 25 26properties: 27 compatible: 28 enum: 29 - dlg,da9061 30 - dlg,da9062 31 - dlg,da9063 32 - dlg,da9063l 33 34 reg: 35 maxItems: 1 36 37 interrupts: 38 maxItems: 1 39 40 interrupt-controller: true 41 42 "#interrupt-cells": 43 const: 2 44 45 gpio-controller: true 46 47 "#gpio-cells": 48 const: 2 49 50 gpio: 51 type: object 52 additionalProperties: false 53 properties: 54 compatible: 55 const: dlg,da9062-gpio 56 57 onkey: 58 $ref: /schemas/input/dlg,da9062-onkey.yaml 59 60 regulators: 61 type: object 62 additionalProperties: false 63 patternProperties: 64 "^(ldo([1-9]|1[01])|bcore([1-2]|s-merged)|b(pro|mem|io|peri)|bmem-bio-merged|buck[1-4])$": 65 $ref: /schemas/regulator/regulator.yaml 66 unevaluatedProperties: false 67 68 rtc: 69 type: object 70 $ref: /schemas/rtc/rtc.yaml# 71 unevaluatedProperties: false 72 properties: 73 compatible: 74 enum: 75 - dlg,da9062-rtc 76 - dlg,da9063-rtc 77 78 thermal: 79 $ref: /schemas/thermal/dlg,da9062-thermal.yaml 80 81 watchdog: 82 $ref: /schemas/watchdog/dlg,da9062-watchdog.yaml 83 84 wakeup-source: true 85 86patternProperties: 87 "^(.+-hog(-[0-9]+)?)$": 88 type: object 89 90 required: 91 - gpio-hog 92 93required: 94 - compatible 95 - reg 96 97allOf: 98 - if: 99 properties: 100 compatible: 101 contains: 102 enum: 103 - dlg,da9063 104 - dlg,da9063l 105 then: 106 properties: 107 gpio-controller: false 108 "#gpio-cells": false 109 gpio: false 110 regulators: 111 patternProperties: 112 "^buck[1-4]$": false 113 thermal: false 114 required: 115 - interrupts 116 - interrupt-controller 117 - '#interrupt-cells' 118 119 - if: 120 properties: 121 compatible: 122 contains: 123 enum: 124 - dlg,da9062 125 then: 126 properties: 127 regulators: 128 patternProperties: 129 "^(ldo([5-9]|10|11)|bcore([1-2]|s-merged)|b(pro|mem|io|peri)|bmem-bio-merged)$": false 130 required: 131 - gpio 132 - onkey 133 - rtc 134 - thermal 135 - watchdog 136 137 - if: 138 properties: 139 compatible: 140 contains: 141 enum: 142 - dlg,da9061 143 then: 144 properties: 145 gpio-controller: false 146 "#gpio-cells": false 147 gpio: false 148 regulators: 149 patternProperties: 150 "^(ldo([5-9]|10|11)|bcore([1-2]|s-merged)|b(pro|mem|io|peri)|bmem-bio-merged|buck4)$": false 151 rtc: false 152 required: 153 - onkey 154 - thermal 155 - watchdog 156 157additionalProperties: false 158 159examples: 160 - | 161 #include <dt-bindings/interrupt-controller/irq.h> 162 i2c { 163 #address-cells = <1>; 164 #size-cells = <0>; 165 pmic@58 { 166 compatible = "dlg,da9063"; 167 reg = <0x58>; 168 interrupt-parent = <&gpio6>; 169 interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 170 interrupt-controller; 171 #interrupt-cells = <2>; 172 173 rtc { 174 compatible = "dlg,da9063-rtc"; 175 }; 176 177 watchdog { 178 compatible = "dlg,da9063-watchdog"; 179 }; 180 181 onkey { 182 compatible = "dlg,da9063-onkey"; 183 dlg,disable-key-power; 184 }; 185 186 regulators { 187 bcore1 { 188 regulator-name = "BCORE1"; 189 regulator-min-microvolt = <300000>; 190 regulator-max-microvolt = <1570000>; 191 regulator-min-microamp = <500000>; 192 regulator-max-microamp = <2000000>; 193 regulator-boot-on; 194 }; 195 ldo6 { 196 /* UNUSED */ 197 regulator-name = "LDO_6"; 198 regulator-uv-protection-microvolt = <0>; 199 regulator-ov-protection-microvolt = <0>; 200 }; 201 ldo11 { 202 regulator-name = "LDO_11"; 203 regulator-min-microvolt = <900000>; 204 regulator-max-microvolt = <900000>; 205 regulator-uv-protection-microvolt = <1>; 206 regulator-ov-protection-microvolt = <1>; 207 regulator-always-on; 208 }; 209 }; 210 }; 211 }; 212 213 - | 214 #include <dt-bindings/interrupt-controller/irq.h> 215 #include <dt-bindings/regulator/dlg,da9063-regulator.h> 216 i2c { 217 #address-cells = <1>; 218 #size-cells = <0>; 219 pmic@58 { 220 compatible = "dlg,da9062"; 221 reg = <0x58>; 222 gpio-controller; 223 #gpio-cells = <2>; 224 225 sd0-pwr-sel-hog { 226 gpio-hog; 227 gpios = <1 0>; 228 input; 229 line-name = "SD0_PWR_SEL"; 230 }; 231 232 sd1-pwr-sel-hog { 233 gpio-hog; 234 gpios = <2 0>; 235 input; 236 line-name = "SD1_PWR_SEL"; 237 }; 238 239 sw-et0-en-hog { 240 gpio-hog; 241 gpios = <3 0>; 242 input; 243 line-name = "SW_ET0_EN#"; 244 }; 245 246 pmic-good-hog { 247 gpio-hog; 248 gpios = <4 0>; 249 output-high; 250 line-name = "PMIC_PGOOD"; 251 }; 252 253 gpio { 254 compatible = "dlg,da9062-gpio"; 255 }; 256 257 onkey { 258 compatible = "dlg,da9062-onkey"; 259 }; 260 261 regulators { 262 buck1 { 263 regulator-name = "vdd_arm"; 264 regulator-min-microvolt = <925000>; 265 regulator-max-microvolt = <1380000>; 266 regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>; 267 regulator-always-on; 268 }; 269 buck2 { 270 regulator-name = "vdd_soc"; 271 regulator-min-microvolt = <1150000>; 272 regulator-max-microvolt = <1380000>; 273 regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>; 274 regulator-always-on; 275 }; 276 buck3 { 277 regulator-name = "vdd_ddr3"; 278 regulator-min-microvolt = <1500000>; 279 regulator-max-microvolt = <1500000>; 280 regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>; 281 regulator-always-on; 282 }; 283 buck4 { 284 regulator-name = "vdd_eth"; 285 regulator-min-microvolt = <1200000>; 286 regulator-max-microvolt = <1200000>; 287 regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>; 288 regulator-always-on; 289 }; 290 ldo1 { 291 regulator-name = "vdd_snvs"; 292 regulator-min-microvolt = <3000000>; 293 regulator-max-microvolt = <3000000>; 294 regulator-always-on; 295 }; 296 ldo2 { 297 regulator-name = "vdd_high"; 298 regulator-min-microvolt = <3000000>; 299 regulator-max-microvolt = <3000000>; 300 regulator-always-on; 301 }; 302 ldo3 { 303 regulator-name = "vdd_eth_io"; 304 regulator-min-microvolt = <2500000>; 305 regulator-max-microvolt = <2500000>; 306 }; 307 ldo4 { 308 regulator-name = "vdd_emmc"; 309 regulator-min-microvolt = <1800000>; 310 regulator-max-microvolt = <1800000>; 311 regulator-always-on; 312 }; 313 }; 314 315 rtc { 316 compatible = "dlg,da9062-rtc"; 317 }; 318 319 thermal { 320 compatible = "dlg,da9062-thermal"; 321 }; 322 323 watchdog { 324 compatible = "dlg,da9062-watchdog"; 325 dlg,use-sw-pm; 326 }; 327 }; 328 }; 329... 330