1361104b0SConor Dooley# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2361104b0SConor Dooley%YAML 1.2 3361104b0SConor Dooley--- 4361104b0SConor Dooley$id: http://devicetree.org/schemas/mfd/dlg,da9063.yaml# 5361104b0SConor Dooley$schema: http://devicetree.org/meta-schemas/core.yaml# 6361104b0SConor Dooley 7f1eb64bfSBiju Dastitle: Dialog DA906{3L,3,2,1} Power Management Integrated Circuit (PMIC) 8361104b0SConor Dooley 9361104b0SConor Dooleymaintainers: 10361104b0SConor Dooley - Steve Twiss <stwiss.opensource@diasemi.com> 11361104b0SConor Dooley 12361104b0SConor Dooleydescription: | 13361104b0SConor Dooley For device-tree bindings of other sub-modules refer to the binding documents 14361104b0SConor Dooley under the respective sub-system directories. 150271b61bSBenjamin Bara Using regulator-{uv,ov}-{warn,error,protection}-microvolt requires special 160271b61bSBenjamin Bara handling: First, when GP_FB2 is used, it must be ensured that there is no 170271b61bSBenjamin Bara moment where all voltage monitors are disabled. Next, as da9063 only supports 180271b61bSBenjamin Bara UV *and* OV monitoring, both must be set to the same severity and value 190271b61bSBenjamin Bara (0: disable, 1: enable). 20f1eb64bfSBiju Das Product information for the DA906{3L,3,2,1} devices can be found here: 21f1eb64bfSBiju Das - https://www.dialog-semiconductor.com/products/da9063l 22f1eb64bfSBiju Das - https://www.dialog-semiconductor.com/products/da9063 23f1eb64bfSBiju Das - https://www.dialog-semiconductor.com/products/da9062 24f1eb64bfSBiju Das - https://www.dialog-semiconductor.com/products/da9061 25361104b0SConor Dooley 26361104b0SConor Dooleyproperties: 27361104b0SConor Dooley compatible: 28361104b0SConor Dooley enum: 29f1eb64bfSBiju Das - dlg,da9061 30f1eb64bfSBiju Das - dlg,da9062 31361104b0SConor Dooley - dlg,da9063 32361104b0SConor Dooley - dlg,da9063l 33361104b0SConor Dooley 34361104b0SConor Dooley reg: 35361104b0SConor Dooley maxItems: 1 36361104b0SConor Dooley 37361104b0SConor Dooley interrupts: 38361104b0SConor Dooley maxItems: 1 39361104b0SConor Dooley 40361104b0SConor Dooley interrupt-controller: true 41361104b0SConor Dooley 42361104b0SConor Dooley "#interrupt-cells": 43361104b0SConor Dooley const: 2 44361104b0SConor Dooley 45f1eb64bfSBiju Das gpio-controller: true 46f1eb64bfSBiju Das 47f1eb64bfSBiju Das "#gpio-cells": 48f1eb64bfSBiju Das const: 2 49f1eb64bfSBiju Das 50f1eb64bfSBiju Das gpio: 51f1eb64bfSBiju Das type: object 52f1eb64bfSBiju Das additionalProperties: false 53f1eb64bfSBiju Das properties: 54f1eb64bfSBiju Das compatible: 55f1eb64bfSBiju Das const: dlg,da9062-gpio 56f1eb64bfSBiju Das 57361104b0SConor Dooley onkey: 58e2fcaf4cSBiju Das $ref: /schemas/input/dlg,da9062-onkey.yaml 59361104b0SConor Dooley 60361104b0SConor Dooley regulators: 61361104b0SConor Dooley type: object 6242839dcaSRob Herring additionalProperties: false 63361104b0SConor Dooley patternProperties: 64f1eb64bfSBiju Das "^(ldo([1-9]|1[01])|bcore([1-2]|s-merged)|b(pro|mem|io|peri)|bmem-bio-merged|buck[1-4])$": 65361104b0SConor Dooley $ref: /schemas/regulator/regulator.yaml 66361104b0SConor Dooley unevaluatedProperties: false 67361104b0SConor Dooley 68ae3a0d70SBiju Das rtc: 69ae3a0d70SBiju Das type: object 70ae3a0d70SBiju Das $ref: /schemas/rtc/rtc.yaml# 71ae3a0d70SBiju Das unevaluatedProperties: false 72ae3a0d70SBiju Das properties: 73ae3a0d70SBiju Das compatible: 74f1eb64bfSBiju Das enum: 75f1eb64bfSBiju Das - dlg,da9062-rtc 76f1eb64bfSBiju Das - dlg,da9063-rtc 77f1eb64bfSBiju Das 78f1eb64bfSBiju Das thermal: 79f1eb64bfSBiju Das $ref: /schemas/thermal/dlg,da9062-thermal.yaml 80ae3a0d70SBiju Das 8119c993f2SBiju Das watchdog: 8219c993f2SBiju Das $ref: /schemas/watchdog/dlg,da9062-watchdog.yaml 8319c993f2SBiju Das 84f1eb64bfSBiju DaspatternProperties: 85f1eb64bfSBiju Das "^(.+-hog(-[0-9]+)?)$": 86f1eb64bfSBiju Das type: object 87f1eb64bfSBiju Das 88f1eb64bfSBiju Das required: 89f1eb64bfSBiju Das - gpio-hog 90f1eb64bfSBiju Das 91361104b0SConor Dooleyrequired: 92361104b0SConor Dooley - compatible 93361104b0SConor Dooley - reg 94f1eb64bfSBiju Das 95f1eb64bfSBiju DasallOf: 96f1eb64bfSBiju Das - if: 97f1eb64bfSBiju Das properties: 98f1eb64bfSBiju Das compatible: 99f1eb64bfSBiju Das contains: 100f1eb64bfSBiju Das enum: 101f1eb64bfSBiju Das - dlg,da9063 102f1eb64bfSBiju Das - dlg,da9063l 103f1eb64bfSBiju Das then: 104f1eb64bfSBiju Das properties: 105f1eb64bfSBiju Das gpio-controller: false 106f1eb64bfSBiju Das "#gpio-cells": false 107f1eb64bfSBiju Das gpio: false 108f1eb64bfSBiju Das regulators: 109f1eb64bfSBiju Das patternProperties: 110f1eb64bfSBiju Das "^buck[1-4]$": false 111f1eb64bfSBiju Das thermal: false 112f1eb64bfSBiju Das required: 113361104b0SConor Dooley - interrupts 114361104b0SConor Dooley - interrupt-controller 115d3dc362bSGeert Uytterhoeven - '#interrupt-cells' 116361104b0SConor Dooley 117f1eb64bfSBiju Das - if: 118f1eb64bfSBiju Das properties: 119f1eb64bfSBiju Das compatible: 120f1eb64bfSBiju Das contains: 121f1eb64bfSBiju Das enum: 122f1eb64bfSBiju Das - dlg,da9062 123f1eb64bfSBiju Das then: 124f1eb64bfSBiju Das properties: 125f1eb64bfSBiju Das regulators: 126f1eb64bfSBiju Das patternProperties: 127f1eb64bfSBiju Das "^(ldo([5-9]|10|11)|bcore([1-2]|s-merged)|b(pro|mem|io|peri)|bmem-bio-merged)$": false 128f1eb64bfSBiju Das required: 129f1eb64bfSBiju Das - gpio 130f1eb64bfSBiju Das - onkey 131f1eb64bfSBiju Das - rtc 132f1eb64bfSBiju Das - thermal 133f1eb64bfSBiju Das - watchdog 134f1eb64bfSBiju Das 135f1eb64bfSBiju Das - if: 136f1eb64bfSBiju Das properties: 137f1eb64bfSBiju Das compatible: 138f1eb64bfSBiju Das contains: 139f1eb64bfSBiju Das enum: 140f1eb64bfSBiju Das - dlg,da9061 141f1eb64bfSBiju Das then: 142f1eb64bfSBiju Das properties: 143f1eb64bfSBiju Das gpio-controller: false 144f1eb64bfSBiju Das "#gpio-cells": false 145f1eb64bfSBiju Das gpio: false 146f1eb64bfSBiju Das regulators: 147f1eb64bfSBiju Das patternProperties: 148f1eb64bfSBiju Das "^(ldo([5-9]|10|11)|bcore([1-2]|s-merged)|b(pro|mem|io|peri)|bmem-bio-merged|buck4)$": false 149f1eb64bfSBiju Das rtc: false 150f1eb64bfSBiju Das required: 151f1eb64bfSBiju Das - onkey 152f1eb64bfSBiju Das - thermal 153f1eb64bfSBiju Das - watchdog 154f1eb64bfSBiju Das 155361104b0SConor DooleyadditionalProperties: false 156361104b0SConor Dooley 157361104b0SConor Dooleyexamples: 158361104b0SConor Dooley - | 159361104b0SConor Dooley #include <dt-bindings/interrupt-controller/irq.h> 160361104b0SConor Dooley i2c { 161361104b0SConor Dooley #address-cells = <1>; 162361104b0SConor Dooley #size-cells = <0>; 163361104b0SConor Dooley pmic@58 { 164361104b0SConor Dooley compatible = "dlg,da9063"; 165361104b0SConor Dooley reg = <0x58>; 166361104b0SConor Dooley interrupt-parent = <&gpio6>; 167361104b0SConor Dooley interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 168361104b0SConor Dooley interrupt-controller; 169d3dc362bSGeert Uytterhoeven #interrupt-cells = <2>; 170361104b0SConor Dooley 171361104b0SConor Dooley rtc { 172361104b0SConor Dooley compatible = "dlg,da9063-rtc"; 173361104b0SConor Dooley }; 174361104b0SConor Dooley 175361104b0SConor Dooley watchdog { 176361104b0SConor Dooley compatible = "dlg,da9063-watchdog"; 177361104b0SConor Dooley }; 178361104b0SConor Dooley 179361104b0SConor Dooley onkey { 180361104b0SConor Dooley compatible = "dlg,da9063-onkey"; 181361104b0SConor Dooley dlg,disable-key-power; 182361104b0SConor Dooley }; 183361104b0SConor Dooley 184361104b0SConor Dooley regulators { 18542839dcaSRob Herring bcore1 { 186361104b0SConor Dooley regulator-name = "BCORE1"; 187361104b0SConor Dooley regulator-min-microvolt = <300000>; 188361104b0SConor Dooley regulator-max-microvolt = <1570000>; 189361104b0SConor Dooley regulator-min-microamp = <500000>; 190361104b0SConor Dooley regulator-max-microamp = <2000000>; 191361104b0SConor Dooley regulator-boot-on; 192361104b0SConor Dooley }; 1930271b61bSBenjamin Bara ldo6 { 1940271b61bSBenjamin Bara /* UNUSED */ 1950271b61bSBenjamin Bara regulator-name = "LDO_6"; 1960271b61bSBenjamin Bara regulator-uv-protection-microvolt = <0>; 1970271b61bSBenjamin Bara regulator-ov-protection-microvolt = <0>; 1980271b61bSBenjamin Bara }; 19942839dcaSRob Herring ldo11 { 200361104b0SConor Dooley regulator-name = "LDO_11"; 201361104b0SConor Dooley regulator-min-microvolt = <900000>; 2020271b61bSBenjamin Bara regulator-max-microvolt = <900000>; 2030271b61bSBenjamin Bara regulator-uv-protection-microvolt = <1>; 2040271b61bSBenjamin Bara regulator-ov-protection-microvolt = <1>; 2050271b61bSBenjamin Bara regulator-always-on; 206361104b0SConor Dooley }; 207361104b0SConor Dooley }; 208361104b0SConor Dooley }; 209361104b0SConor Dooley }; 210f1eb64bfSBiju Das 211f1eb64bfSBiju Das - | 212f1eb64bfSBiju Das #include <dt-bindings/interrupt-controller/irq.h> 213f1eb64bfSBiju Das #include <dt-bindings/regulator/dlg,da9063-regulator.h> 214f1eb64bfSBiju Das i2c { 215f1eb64bfSBiju Das #address-cells = <1>; 216f1eb64bfSBiju Das #size-cells = <0>; 217f1eb64bfSBiju Das pmic@58 { 218f1eb64bfSBiju Das compatible = "dlg,da9062"; 219f1eb64bfSBiju Das reg = <0x58>; 220f1eb64bfSBiju Das gpio-controller; 221f1eb64bfSBiju Das #gpio-cells = <2>; 222f1eb64bfSBiju Das 223f1eb64bfSBiju Das sd0-pwr-sel-hog { 224f1eb64bfSBiju Das gpio-hog; 225f1eb64bfSBiju Das gpios = <1 0>; 226f1eb64bfSBiju Das input; 227f1eb64bfSBiju Das line-name = "SD0_PWR_SEL"; 228f1eb64bfSBiju Das }; 229f1eb64bfSBiju Das 230f1eb64bfSBiju Das sd1-pwr-sel-hog { 231f1eb64bfSBiju Das gpio-hog; 232f1eb64bfSBiju Das gpios = <2 0>; 233f1eb64bfSBiju Das input; 234f1eb64bfSBiju Das line-name = "SD1_PWR_SEL"; 235f1eb64bfSBiju Das }; 236f1eb64bfSBiju Das 237f1eb64bfSBiju Das sw-et0-en-hog { 238f1eb64bfSBiju Das gpio-hog; 239f1eb64bfSBiju Das gpios = <3 0>; 240f1eb64bfSBiju Das input; 241f1eb64bfSBiju Das line-name = "SW_ET0_EN#"; 242f1eb64bfSBiju Das }; 243f1eb64bfSBiju Das 244f1eb64bfSBiju Das pmic-good-hog { 245f1eb64bfSBiju Das gpio-hog; 246f1eb64bfSBiju Das gpios = <4 0>; 247f1eb64bfSBiju Das output-high; 248f1eb64bfSBiju Das line-name = "PMIC_PGOOD"; 249f1eb64bfSBiju Das }; 250f1eb64bfSBiju Das 251f1eb64bfSBiju Das gpio { 252f1eb64bfSBiju Das compatible = "dlg,da9062-gpio"; 253f1eb64bfSBiju Das }; 254f1eb64bfSBiju Das 255f1eb64bfSBiju Das onkey { 256f1eb64bfSBiju Das compatible = "dlg,da9062-onkey"; 257f1eb64bfSBiju Das }; 258f1eb64bfSBiju Das 259f1eb64bfSBiju Das regulators { 260f1eb64bfSBiju Das buck1 { 261f1eb64bfSBiju Das regulator-name = "vdd_arm"; 262f1eb64bfSBiju Das regulator-min-microvolt = <925000>; 263f1eb64bfSBiju Das regulator-max-microvolt = <1380000>; 264f1eb64bfSBiju Das regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>; 265f1eb64bfSBiju Das regulator-always-on; 266f1eb64bfSBiju Das }; 267f1eb64bfSBiju Das buck2 { 268f1eb64bfSBiju Das regulator-name = "vdd_soc"; 269f1eb64bfSBiju Das regulator-min-microvolt = <1150000>; 270f1eb64bfSBiju Das regulator-max-microvolt = <1380000>; 271f1eb64bfSBiju Das regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>; 272f1eb64bfSBiju Das regulator-always-on; 273f1eb64bfSBiju Das }; 274f1eb64bfSBiju Das buck3 { 275f1eb64bfSBiju Das regulator-name = "vdd_ddr3"; 276f1eb64bfSBiju Das regulator-min-microvolt = <1500000>; 277f1eb64bfSBiju Das regulator-max-microvolt = <1500000>; 278f1eb64bfSBiju Das regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>; 279f1eb64bfSBiju Das regulator-always-on; 280f1eb64bfSBiju Das }; 281f1eb64bfSBiju Das buck4 { 282f1eb64bfSBiju Das regulator-name = "vdd_eth"; 283f1eb64bfSBiju Das regulator-min-microvolt = <1200000>; 284f1eb64bfSBiju Das regulator-max-microvolt = <1200000>; 285f1eb64bfSBiju Das regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>; 286f1eb64bfSBiju Das regulator-always-on; 287f1eb64bfSBiju Das }; 288f1eb64bfSBiju Das ldo1 { 289f1eb64bfSBiju Das regulator-name = "vdd_snvs"; 290f1eb64bfSBiju Das regulator-min-microvolt = <3000000>; 291f1eb64bfSBiju Das regulator-max-microvolt = <3000000>; 292f1eb64bfSBiju Das regulator-always-on; 293f1eb64bfSBiju Das }; 294f1eb64bfSBiju Das ldo2 { 295f1eb64bfSBiju Das regulator-name = "vdd_high"; 296f1eb64bfSBiju Das regulator-min-microvolt = <3000000>; 297f1eb64bfSBiju Das regulator-max-microvolt = <3000000>; 298f1eb64bfSBiju Das regulator-always-on; 299f1eb64bfSBiju Das }; 300f1eb64bfSBiju Das ldo3 { 301f1eb64bfSBiju Das regulator-name = "vdd_eth_io"; 302f1eb64bfSBiju Das regulator-min-microvolt = <2500000>; 303f1eb64bfSBiju Das regulator-max-microvolt = <2500000>; 304f1eb64bfSBiju Das }; 305f1eb64bfSBiju Das ldo4 { 306f1eb64bfSBiju Das regulator-name = "vdd_emmc"; 307f1eb64bfSBiju Das regulator-min-microvolt = <1800000>; 308f1eb64bfSBiju Das regulator-max-microvolt = <1800000>; 309f1eb64bfSBiju Das regulator-always-on; 310f1eb64bfSBiju Das }; 311f1eb64bfSBiju Das }; 312f1eb64bfSBiju Das 313f1eb64bfSBiju Das rtc { 314f1eb64bfSBiju Das compatible = "dlg,da9062-rtc"; 315f1eb64bfSBiju Das }; 316f1eb64bfSBiju Das 317f1eb64bfSBiju Das thermal { 318f1eb64bfSBiju Das compatible = "dlg,da9062-thermal"; 319f1eb64bfSBiju Das }; 320f1eb64bfSBiju Das 321f1eb64bfSBiju Das watchdog { 322f1eb64bfSBiju Das compatible = "dlg,da9062-watchdog"; 323f1eb64bfSBiju Das dlg,use-sw-pm; 324f1eb64bfSBiju Das }; 325f1eb64bfSBiju Das }; 326f1eb64bfSBiju Das }; 327361104b0SConor Dooley... 328