162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/regulator/dlg,da9121.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Dialog Semiconductor DA9121 voltage regulator 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Adam Ward <Adam.Ward.opensource@diasemi.com> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: | 1362306a36Sopenharmony_ci Dialog Semiconductor DA9121 Single-channel 10A double-phase buck converter 1462306a36Sopenharmony_ci Dialog Semiconductor DA9122 Double-channel 5A single-phase buck converter 1562306a36Sopenharmony_ci Dialog Semiconductor DA9220 Double-channel 3A single-phase buck converter 1662306a36Sopenharmony_ci Dialog Semiconductor DA9217 Single-channel 6A double-phase buck converter 1762306a36Sopenharmony_ci Dialog Semiconductor DA9130 Single-channel 10A double-phase buck converter 1862306a36Sopenharmony_ci Dialog Semiconductor DA9131 Double-channel 5A single-phase buck converter 1962306a36Sopenharmony_ci Dialog Semiconductor DA9132 Double-channel 3A single-phase buck converter 2062306a36Sopenharmony_ci Dialog Semiconductor DA9141 Single-channel 40A quad-phase buck converter 2162306a36Sopenharmony_ci Dialog Semiconductor DA9142 Single-channel 20A double-phase buck converter 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci Device parameter ranges 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci The current limits can be set to at/near double the rated current per channel 2662306a36Sopenharmony_ci to allow for transient peaks. 2762306a36Sopenharmony_ci Current limit changes when the output is enabled are not supported, as a 2862306a36Sopenharmony_ci precaution against undefined behaviour. 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci |----------------------------------------------| 3162306a36Sopenharmony_ci | | range & reset default value | 3262306a36Sopenharmony_ci | Device |------------------------------| 3362306a36Sopenharmony_ci | | microvolt | microamp | 3462306a36Sopenharmony_ci |----------------------------------------------| 3562306a36Sopenharmony_ci | DA9121/DA9130 | Min: 300000 | Min: 7000000 | 3662306a36Sopenharmony_ci | | Max: 1900000 | Max: 20000000 | 3762306a36Sopenharmony_ci |----------------------------------------------| 3862306a36Sopenharmony_ci | DA9121/DA9131 | Min: 300000 | Min: 3500000 | 3962306a36Sopenharmony_ci | | Max: 1900000 | Max: 10000000 | 4062306a36Sopenharmony_ci |----------------------------------------------| 4162306a36Sopenharmony_ci | DA9121/DA9131 | Min: 300000 | Min: 3500000 | 4262306a36Sopenharmony_ci | | Max: 1900000 | Max: 6000000 | 4362306a36Sopenharmony_ci |----------------------------------------------| 4462306a36Sopenharmony_ci | DA9217 | Min: 300000 | Min: 7000000 | 4562306a36Sopenharmony_ci | | Max: 1900000 | Max: 12000000 | 4662306a36Sopenharmony_ci |----------------------------------------------| 4762306a36Sopenharmony_ci | DA9141 | Min: 300000 | Min: 26000000 | 4862306a36Sopenharmony_ci | | Max: 1300000 | Max: 78000000 | 4962306a36Sopenharmony_ci |----------------------------------------------| 5062306a36Sopenharmony_ci | DA9142 | Min: 300000 | Min: 13000000 | 5162306a36Sopenharmony_ci | | Max: 1300000 | Max: 39000000 | 5262306a36Sopenharmony_ci |----------------------------------------------| 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ciproperties: 5562306a36Sopenharmony_ci $nodename: 5662306a36Sopenharmony_ci pattern: "pmic@[0-9a-f]{1,2}" 5762306a36Sopenharmony_ci compatible: 5862306a36Sopenharmony_ci enum: 5962306a36Sopenharmony_ci - dlg,da9121 6062306a36Sopenharmony_ci - dlg,da9122 6162306a36Sopenharmony_ci - dlg,da9220 6262306a36Sopenharmony_ci - dlg,da9217 6362306a36Sopenharmony_ci - dlg,da9130 6462306a36Sopenharmony_ci - dlg,da9131 6562306a36Sopenharmony_ci - dlg,da9132 6662306a36Sopenharmony_ci - dlg,da9141 6762306a36Sopenharmony_ci - dlg,da9142 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci reg: 7062306a36Sopenharmony_ci maxItems: 1 7162306a36Sopenharmony_ci description: Specifies the I2C slave address. 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci interrupts: 7462306a36Sopenharmony_ci maxItems: 1 7562306a36Sopenharmony_ci description: IRQ line information. 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci dlg,irq-polling-delay-passive-ms: 7862306a36Sopenharmony_ci minimum: 1000 7962306a36Sopenharmony_ci maximum: 10000 8062306a36Sopenharmony_ci description: | 8162306a36Sopenharmony_ci Specify the polling period, measured in milliseconds, between interrupt status 8262306a36Sopenharmony_ci update checks. Range 1000-10000 ms. 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci regulators: 8562306a36Sopenharmony_ci type: object 8662306a36Sopenharmony_ci additionalProperties: false 8762306a36Sopenharmony_ci description: | 8862306a36Sopenharmony_ci List of regulators provided by the device 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci patternProperties: 9162306a36Sopenharmony_ci "^buck([1-2])$": 9262306a36Sopenharmony_ci type: object 9362306a36Sopenharmony_ci $ref: regulator.yaml# 9462306a36Sopenharmony_ci description: | 9562306a36Sopenharmony_ci Properties for a single BUCK regulator 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ci properties: 9862306a36Sopenharmony_ci regulator-initial-mode: 9962306a36Sopenharmony_ci enum: [ 0, 1, 2, 3 ] 10062306a36Sopenharmony_ci description: Defined in include/dt-bindings/regulator/dlg,da9121-regulator.h 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_ci enable-gpios: 10362306a36Sopenharmony_ci maxItems: 1 10462306a36Sopenharmony_ci description: Specify a valid GPIO for platform control of the regulator 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ci dlg,ripple-cancel: 10762306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 10862306a36Sopenharmony_ci enum: [ 0, 1, 2, 3 ] 10962306a36Sopenharmony_ci description: | 11062306a36Sopenharmony_ci Defined in include/dt-bindings/regulator/dlg,da9121-regulator.h 11162306a36Sopenharmony_ci Only present on multi-channel devices (DA9122, DA9220, DA9131, DA9132) 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ci unevaluatedProperties: false 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_cirequired: 11662306a36Sopenharmony_ci - compatible 11762306a36Sopenharmony_ci - reg 11862306a36Sopenharmony_ci - regulators 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ciallOf: 12162306a36Sopenharmony_ci - if: 12262306a36Sopenharmony_ci properties: 12362306a36Sopenharmony_ci compatible: 12462306a36Sopenharmony_ci not: 12562306a36Sopenharmony_ci contains: 12662306a36Sopenharmony_ci enum: 12762306a36Sopenharmony_ci - dlg,da9122 12862306a36Sopenharmony_ci - dlg,da9131 12962306a36Sopenharmony_ci - dlg,da9132 13062306a36Sopenharmony_ci - dlg,da9220 13162306a36Sopenharmony_ci then: 13262306a36Sopenharmony_ci properties: 13362306a36Sopenharmony_ci regulators: 13462306a36Sopenharmony_ci properties: 13562306a36Sopenharmony_ci buck2: false 13662306a36Sopenharmony_ci 13762306a36Sopenharmony_ciadditionalProperties: false 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ciexamples: 14062306a36Sopenharmony_ci - | 14162306a36Sopenharmony_ci #include <dt-bindings/gpio/gpio.h> 14262306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 14362306a36Sopenharmony_ci #include <dt-bindings/regulator/dlg,da9121-regulator.h> 14462306a36Sopenharmony_ci i2c { 14562306a36Sopenharmony_ci #address-cells = <1>; 14662306a36Sopenharmony_ci #size-cells = <0>; 14762306a36Sopenharmony_ci pmic@68 { 14862306a36Sopenharmony_ci compatible = "dlg,da9121"; 14962306a36Sopenharmony_ci reg = <0x68>; 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_ci interrupt-parent = <&gpio6>; 15262306a36Sopenharmony_ci interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 15362306a36Sopenharmony_ci 15462306a36Sopenharmony_ci dlg,irq-polling-delay-passive-ms = <2000>; 15562306a36Sopenharmony_ci 15662306a36Sopenharmony_ci regulators { 15762306a36Sopenharmony_ci DA9121_BUCK1: buck1 { 15862306a36Sopenharmony_ci regulator-name = "BUCK1"; 15962306a36Sopenharmony_ci regulator-min-microvolt = <300000>; 16062306a36Sopenharmony_ci regulator-max-microvolt = <1900000>; 16162306a36Sopenharmony_ci regulator-min-microamp = <7000000>; 16262306a36Sopenharmony_ci regulator-max-microamp = <20000000>; 16362306a36Sopenharmony_ci regulator-boot-on; 16462306a36Sopenharmony_ci regulator-initial-mode = <DA9121_BUCK_MODE_AUTO>; 16562306a36Sopenharmony_ci enable-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>; 16662306a36Sopenharmony_ci }; 16762306a36Sopenharmony_ci }; 16862306a36Sopenharmony_ci }; 16962306a36Sopenharmony_ci }; 17062306a36Sopenharmony_ci 17162306a36Sopenharmony_ci - | 17262306a36Sopenharmony_ci #include <dt-bindings/gpio/gpio.h> 17362306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 17462306a36Sopenharmony_ci #include <dt-bindings/regulator/dlg,da9121-regulator.h> 17562306a36Sopenharmony_ci i2c { 17662306a36Sopenharmony_ci #address-cells = <1>; 17762306a36Sopenharmony_ci #size-cells = <0>; 17862306a36Sopenharmony_ci pmic@68 { 17962306a36Sopenharmony_ci compatible = "dlg,da9122"; 18062306a36Sopenharmony_ci reg = <0x68>; 18162306a36Sopenharmony_ci 18262306a36Sopenharmony_ci interrupt-parent = <&gpio6>; 18362306a36Sopenharmony_ci interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ci dlg,irq-polling-delay-passive-ms = <2000>; 18662306a36Sopenharmony_ci 18762306a36Sopenharmony_ci regulators { 18862306a36Sopenharmony_ci DA9122_BUCK1: buck1 { 18962306a36Sopenharmony_ci regulator-name = "BUCK1"; 19062306a36Sopenharmony_ci regulator-min-microvolt = <300000>; 19162306a36Sopenharmony_ci regulator-max-microvolt = <1900000>; 19262306a36Sopenharmony_ci regulator-min-microamp = <3500000>; 19362306a36Sopenharmony_ci regulator-max-microamp = <10000000>; 19462306a36Sopenharmony_ci regulator-boot-on; 19562306a36Sopenharmony_ci regulator-initial-mode = <DA9121_BUCK_MODE_AUTO>; 19662306a36Sopenharmony_ci enable-gpios = <&gpio6 1 GPIO_ACTIVE_HIGH>; 19762306a36Sopenharmony_ci dlg,ripple-cancel = <DA9121_BUCK_RIPPLE_CANCEL_NONE>; 19862306a36Sopenharmony_ci }; 19962306a36Sopenharmony_ci DA9122_BUCK2: buck2 { 20062306a36Sopenharmony_ci regulator-name = "BUCK2"; 20162306a36Sopenharmony_ci regulator-min-microvolt = <300000>; 20262306a36Sopenharmony_ci regulator-max-microvolt = <1900000>; 20362306a36Sopenharmony_ci regulator-min-microamp = <3500000>; 20462306a36Sopenharmony_ci regulator-max-microamp = <10000000>; 20562306a36Sopenharmony_ci regulator-boot-on; 20662306a36Sopenharmony_ci regulator-initial-mode = <DA9121_BUCK_MODE_AUTO>; 20762306a36Sopenharmony_ci enable-gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>; 20862306a36Sopenharmony_ci dlg,ripple-cancel = <DA9121_BUCK_RIPPLE_CANCEL_NONE>; 20962306a36Sopenharmony_ci }; 21062306a36Sopenharmony_ci }; 21162306a36Sopenharmony_ci }; 21262306a36Sopenharmony_ci }; 21362306a36Sopenharmony_ci... 214