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