1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/regulator/dlg,da9121.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Dialog Semiconductor DA9121 voltage regulator 8 9maintainers: 10 - Adam Ward <Adam.Ward.opensource@diasemi.com> 11 12description: | 13 Dialog Semiconductor DA9121 Single-channel 10A double-phase buck converter 14 Dialog Semiconductor DA9122 Double-channel 5A single-phase buck converter 15 Dialog Semiconductor DA9220 Double-channel 3A single-phase buck converter 16 Dialog Semiconductor DA9217 Single-channel 6A double-phase buck converter 17 Dialog Semiconductor DA9130 Single-channel 10A double-phase buck converter 18 Dialog Semiconductor DA9131 Double-channel 5A single-phase buck converter 19 Dialog Semiconductor DA9132 Double-channel 3A single-phase buck converter 20 Dialog Semiconductor DA9141 Single-channel 40A quad-phase buck converter 21 Dialog Semiconductor DA9142 Single-channel 20A double-phase buck converter 22 23 Device parameter ranges 24 25 The current limits can be set to at/near double the rated current per channel 26 to allow for transient peaks. 27 Current limit changes when the output is enabled are not supported, as a 28 precaution against undefined behaviour. 29 30 |----------------------------------------------| 31 | | range & reset default value | 32 | Device |------------------------------| 33 | | microvolt | microamp | 34 |----------------------------------------------| 35 | DA9121/DA9130 | Min: 300000 | Min: 7000000 | 36 | | Max: 1900000 | Max: 20000000 | 37 |----------------------------------------------| 38 | DA9121/DA9131 | Min: 300000 | Min: 3500000 | 39 | | Max: 1900000 | Max: 10000000 | 40 |----------------------------------------------| 41 | DA9121/DA9131 | Min: 300000 | Min: 3500000 | 42 | | Max: 1900000 | Max: 6000000 | 43 |----------------------------------------------| 44 | DA9217 | Min: 300000 | Min: 7000000 | 45 | | Max: 1900000 | Max: 12000000 | 46 |----------------------------------------------| 47 | DA9141 | Min: 300000 | Min: 26000000 | 48 | | Max: 1300000 | Max: 78000000 | 49 |----------------------------------------------| 50 | DA9142 | Min: 300000 | Min: 13000000 | 51 | | Max: 1300000 | Max: 39000000 | 52 |----------------------------------------------| 53 54properties: 55 $nodename: 56 pattern: "pmic@[0-9a-f]{1,2}" 57 compatible: 58 enum: 59 - dlg,da9121 60 - dlg,da9122 61 - dlg,da9220 62 - dlg,da9217 63 - dlg,da9130 64 - dlg,da9131 65 - dlg,da9132 66 - dlg,da9141 67 - dlg,da9142 68 69 reg: 70 maxItems: 1 71 description: Specifies the I2C slave address. 72 73 interrupts: 74 maxItems: 1 75 description: IRQ line information. 76 77 dlg,irq-polling-delay-passive-ms: 78 minimum: 1000 79 maximum: 10000 80 description: | 81 Specify the polling period, measured in milliseconds, between interrupt status 82 update checks. Range 1000-10000 ms. 83 84 dlg,no-gpio-control: 85 type: boolean 86 description: | 87 Available GPIO input pins of the regulator are strapped to fixed levels, therefore 88 GPIO configurable input functions, DVC/RELOAD/EN, cannot dynamically update BUCK 89 registers. GPIO pins connected as output pins are not required to be strapped to a 90 fixed level. Not allowed together with enable-gpios. 91 92 regulators: 93 type: object 94 additionalProperties: false 95 description: | 96 List of regulators provided by the device 97 98 patternProperties: 99 "^buck([1-2])$": 100 type: object 101 $ref: regulator.yaml# 102 description: | 103 Properties for a single BUCK regulator 104 105 properties: 106 regulator-initial-mode: 107 enum: [ 0, 1, 2, 3 ] 108 description: Defined in include/dt-bindings/regulator/dlg,da9121-regulator.h 109 110 enable-gpios: 111 maxItems: 1 112 description: Specify a valid GPIO for platform control of the regulator 113 114 dlg,ripple-cancel: 115 $ref: /schemas/types.yaml#/definitions/uint32 116 enum: [ 0, 1, 2, 3 ] 117 description: | 118 Defined in include/dt-bindings/regulator/dlg,da9121-regulator.h 119 Only present on multi-channel devices (DA9122, DA9220, DA9131, DA9132) 120 121 unevaluatedProperties: false 122 123required: 124 - compatible 125 - reg 126 - regulators 127 128allOf: 129 - if: 130 properties: 131 compatible: 132 not: 133 contains: 134 enum: 135 - dlg,da9122 136 - dlg,da9131 137 - dlg,da9132 138 - dlg,da9220 139 then: 140 properties: 141 regulators: 142 properties: 143 buck2: false 144 145 - if: 146 required: 147 - dlg,no-gpio-control 148 then: 149 properties: 150 regulators: 151 patternProperties: 152 "^buck([1-2])$": 153 properties: 154 enable-gpios: false 155 156additionalProperties: false 157 158examples: 159 - | 160 #include <dt-bindings/gpio/gpio.h> 161 #include <dt-bindings/interrupt-controller/irq.h> 162 #include <dt-bindings/regulator/dlg,da9121-regulator.h> 163 i2c { 164 #address-cells = <1>; 165 #size-cells = <0>; 166 pmic@68 { 167 compatible = "dlg,da9121"; 168 reg = <0x68>; 169 170 interrupt-parent = <&gpio6>; 171 interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 172 173 dlg,irq-polling-delay-passive-ms = <2000>; 174 175 regulators { 176 DA9121_BUCK1: buck1 { 177 regulator-name = "BUCK1"; 178 regulator-min-microvolt = <300000>; 179 regulator-max-microvolt = <1900000>; 180 regulator-min-microamp = <7000000>; 181 regulator-max-microamp = <20000000>; 182 regulator-boot-on; 183 regulator-initial-mode = <DA9121_BUCK_MODE_AUTO>; 184 enable-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>; 185 }; 186 }; 187 }; 188 }; 189 190 - | 191 #include <dt-bindings/interrupt-controller/irq.h> 192 #include <dt-bindings/regulator/dlg,da9121-regulator.h> 193 i2c { 194 #address-cells = <1>; 195 #size-cells = <0>; 196 pmic@68 { 197 compatible = "dlg,da9121"; 198 reg = <0x68>; 199 200 interrupt-parent = <&gpio6>; 201 interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 202 203 dlg,irq-polling-delay-passive-ms = <2000>; 204 dlg,no-gpio-control; 205 206 regulators { 207 DA9121_BUCK: buck1 { 208 regulator-name = "BUCK1"; 209 regulator-min-microvolt = <300000>; 210 regulator-max-microvolt = <1900000>; 211 regulator-min-microamp = <7000000>; 212 regulator-max-microamp = <20000000>; 213 regulator-boot-on; 214 regulator-initial-mode = <DA9121_BUCK_MODE_AUTO>; 215 }; 216 }; 217 }; 218 }; 219 220 - | 221 #include <dt-bindings/gpio/gpio.h> 222 #include <dt-bindings/interrupt-controller/irq.h> 223 #include <dt-bindings/regulator/dlg,da9121-regulator.h> 224 i2c { 225 #address-cells = <1>; 226 #size-cells = <0>; 227 pmic@68 { 228 compatible = "dlg,da9122"; 229 reg = <0x68>; 230 231 interrupt-parent = <&gpio6>; 232 interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 233 234 dlg,irq-polling-delay-passive-ms = <2000>; 235 236 regulators { 237 DA9122_BUCK1: buck1 { 238 regulator-name = "BUCK1"; 239 regulator-min-microvolt = <300000>; 240 regulator-max-microvolt = <1900000>; 241 regulator-min-microamp = <3500000>; 242 regulator-max-microamp = <10000000>; 243 regulator-boot-on; 244 regulator-initial-mode = <DA9121_BUCK_MODE_AUTO>; 245 enable-gpios = <&gpio6 1 GPIO_ACTIVE_HIGH>; 246 dlg,ripple-cancel = <DA9121_BUCK_RIPPLE_CANCEL_NONE>; 247 }; 248 DA9122_BUCK2: buck2 { 249 regulator-name = "BUCK2"; 250 regulator-min-microvolt = <300000>; 251 regulator-max-microvolt = <1900000>; 252 regulator-min-microamp = <3500000>; 253 regulator-max-microamp = <10000000>; 254 regulator-boot-on; 255 regulator-initial-mode = <DA9121_BUCK_MODE_AUTO>; 256 enable-gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>; 257 dlg,ripple-cancel = <DA9121_BUCK_RIPPLE_CANCEL_NONE>; 258 }; 259 }; 260 }; 261 }; 262... 263