1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/regulator/ti,tps65219.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: TI tps65219 Power Management Integrated Circuit regulators
8
9maintainers:
10  - Jerome Neanne <jerome.neanne@baylibre.com>
11
12description: |
13  Regulator nodes should be named to buck<number> and ldo<number>.
14
15properties:
16  compatible:
17    enum:
18      - ti,tps65219
19
20  reg:
21    maxItems: 1
22
23  system-power-controller:
24    type: boolean
25    description: Optional property that indicates that this device is
26      controlling system power.
27
28  interrupts:
29    description: Short-circuit, over-current, under-voltage for regulators, PB interrupts.
30    maxItems: 1
31
32  interrupt-controller: true
33
34  '#interrupt-cells':
35    description: Specifies the PIN numbers and Flags, as defined in
36      include/dt-bindings/interrupt-controller/irq.h
37    const: 1
38
39  ti,power-button:
40    type: boolean
41    description: |
42      Optional property that sets the EN/PB/VSENSE pin to be a
43      power-button.
44      TPS65219 has a multipurpose pin called EN/PB/VSENSE that can be either
45      1. EN in which case it functions as an enable pin.
46      2. VSENSE which compares the voltages and triggers an automatic
47      on/off request.
48      3. PB in which case it can be configured to trigger an interrupt
49      to the SoC.
50      ti,power-button reflects the last one of those options
51      where the board has a button wired to the pin and triggers
52      an interrupt on pressing it.
53
54  regulators:
55    type: object
56    description: |
57      list of regulators provided by this controller
58
59    patternProperties:
60      "^ldo[1-4]$":
61        type: object
62        $ref: regulator.yaml#
63        description:
64          Properties for single LDO regulator.
65
66        unevaluatedProperties: false
67
68      "^buck[1-3]$":
69        type: object
70        $ref: regulator.yaml#
71        description:
72          Properties for single BUCK regulator.
73
74        unevaluatedProperties: false
75
76    additionalProperties: false
77
78patternProperties:
79  "^buck[1-3]-supply$":
80    description: Input supply phandle of one regulator.
81
82  "^ldo[1-4]-supply$":
83    description: Input supply phandle of one regulator.
84
85required:
86  - compatible
87  - reg
88  - interrupts
89  - regulators
90
91additionalProperties: false
92
93examples:
94  - |
95    #include <dt-bindings/interrupt-controller/arm-gic.h>
96    i2c {
97        #address-cells = <1>;
98        #size-cells = <0>;
99
100        tps65219: pmic@30 {
101            compatible = "ti,tps65219";
102            reg = <0x30>;
103            buck1-supply = <&vcc_3v3_sys>;
104            buck2-supply = <&vcc_3v3_sys>;
105            buck3-supply = <&vcc_3v3_sys>;
106            ldo1-supply = <&vcc_3v3_sys>;
107            ldo2-supply = <&buck2_reg>;
108            ldo3-supply = <&vcc_3v3_sys>;
109            ldo4-supply = <&vcc_3v3_sys>;
110
111            pinctrl-0 = <&pmic_irq_pins_default>;
112
113            interrupt-parent = <&gic500>;
114            interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
115            ti,power-button;
116
117            regulators {
118                buck1_reg: buck1 {
119                    regulator-name = "VDD_CORE";
120                    regulator-min-microvolt = <750000>;
121                    regulator-max-microvolt = <750000>;
122                    regulator-boot-on;
123                    regulator-always-on;
124                };
125
126                buck2_reg: buck2 {
127                    regulator-name = "VCC1V8";
128                    regulator-min-microvolt = <1800000>;
129                    regulator-max-microvolt = <1800000>;
130                    regulator-boot-on;
131                    regulator-always-on;
132                };
133
134                buck3_reg: buck3 {
135                    regulator-name = "VDD_LPDDR4";
136                    regulator-min-microvolt = <1100000>;
137                    regulator-max-microvolt = <1100000>;
138                    regulator-boot-on;
139                    regulator-always-on;
140                };
141
142                ldo1_reg: ldo1 {
143                    regulator-name = "VDDSHV_SD_IO_PMIC";
144                    regulator-min-microvolt = <33000000>;
145                    regulator-max-microvolt = <33000000>;
146                };
147
148                ldo2_reg: ldo2 {
149                    regulator-name = "VDDAR_CORE";
150                    regulator-min-microvolt = <850000>;
151                    regulator-max-microvolt = <850000>;
152                    regulator-boot-on;
153                    regulator-always-on;
154                };
155
156                ldo3_reg: ldo3 {
157                    regulator-name = "VDDA_1V8";
158                    regulator-min-microvolt = <18000000>;
159                    regulator-max-microvolt = <18000000>;
160                    regulator-boot-on;
161                    regulator-always-on;
162                };
163
164                ldo4_reg: ldo4 {
165                    regulator-name = "VDD_PHY_2V5";
166                    regulator-min-microvolt = <25000000>;
167                    regulator-max-microvolt = <25000000>;
168                    regulator-boot-on;
169                    regulator-always-on;
170                };
171            };
172        };
173    };
174