xref: /openbmc/linux/Documentation/devicetree/bindings/mfd/ti,tps6594.yaml (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
1*a5f00e38SJulien Panis# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*a5f00e38SJulien Panis%YAML 1.2
3*a5f00e38SJulien Panis---
4*a5f00e38SJulien Panis$id: http://devicetree.org/schemas/mfd/ti,tps6594.yaml#
5*a5f00e38SJulien Panis$schema: http://devicetree.org/meta-schemas/core.yaml#
6*a5f00e38SJulien Panis
7*a5f00e38SJulien Panistitle: TI TPS6594 Power Management Integrated Circuit
8*a5f00e38SJulien Panis
9*a5f00e38SJulien Panismaintainers:
10*a5f00e38SJulien Panis  - Julien Panis <jpanis@baylibre.com>
11*a5f00e38SJulien Panis
12*a5f00e38SJulien Panisdescription:
13*a5f00e38SJulien Panis  TPS6594 is a Power Management IC which provides regulators and others
14*a5f00e38SJulien Panis  features like GPIOs, RTC, watchdog, ESMs (Error Signal Monitor), and
15*a5f00e38SJulien Panis  PFSM (Pre-configurable Finite State Machine) managing the state of the device.
16*a5f00e38SJulien Panis  TPS6594 is the super-set device while TPS6593 and LP8764 are derivatives.
17*a5f00e38SJulien Panis
18*a5f00e38SJulien Panisproperties:
19*a5f00e38SJulien Panis  compatible:
20*a5f00e38SJulien Panis    enum:
21*a5f00e38SJulien Panis      - ti,lp8764-q1
22*a5f00e38SJulien Panis      - ti,tps6593-q1
23*a5f00e38SJulien Panis      - ti,tps6594-q1
24*a5f00e38SJulien Panis
25*a5f00e38SJulien Panis  reg:
26*a5f00e38SJulien Panis    description: I2C slave address or SPI chip select number.
27*a5f00e38SJulien Panis    maxItems: 1
28*a5f00e38SJulien Panis
29*a5f00e38SJulien Panis  ti,primary-pmic:
30*a5f00e38SJulien Panis    type: boolean
31*a5f00e38SJulien Panis    description: |
32*a5f00e38SJulien Panis      Identify the primary PMIC on SPMI bus.
33*a5f00e38SJulien Panis      A multi-PMIC synchronization scheme is implemented in the PMIC device
34*a5f00e38SJulien Panis      to synchronize the power state changes with other PMIC devices. This is
35*a5f00e38SJulien Panis      accomplished through a SPMI bus: the primary PMIC is the controller
36*a5f00e38SJulien Panis      device on the SPMI bus, and the secondary PMICs are the target devices
37*a5f00e38SJulien Panis      on the SPMI bus.
38*a5f00e38SJulien Panis
39*a5f00e38SJulien Panis  system-power-controller: true
40*a5f00e38SJulien Panis
41*a5f00e38SJulien Panis  gpio-controller: true
42*a5f00e38SJulien Panis
43*a5f00e38SJulien Panis  '#gpio-cells':
44*a5f00e38SJulien Panis    const: 2
45*a5f00e38SJulien Panis    description: |
46*a5f00e38SJulien Panis      The first cell is the pin number, the second cell is used to specify flags.
47*a5f00e38SJulien Panis      See ../gpio/gpio.txt for more information.
48*a5f00e38SJulien Panis
49*a5f00e38SJulien Panis  interrupts:
50*a5f00e38SJulien Panis    maxItems: 1
51*a5f00e38SJulien Panis
52*a5f00e38SJulien Panis  regulators:
53*a5f00e38SJulien Panis    type: object
54*a5f00e38SJulien Panis    description: List of regulators provided by this controller.
55*a5f00e38SJulien Panis
56*a5f00e38SJulien Panis    patternProperties:
57*a5f00e38SJulien Panis      "^buck([1-5]|12|34|123|1234)$":
58*a5f00e38SJulien Panis        type: object
59*a5f00e38SJulien Panis        $ref: /schemas/regulator/regulator.yaml#
60*a5f00e38SJulien Panis
61*a5f00e38SJulien Panis        unevaluatedProperties: false
62*a5f00e38SJulien Panis
63*a5f00e38SJulien Panis      "^ldo[1-4]$":
64*a5f00e38SJulien Panis        type: object
65*a5f00e38SJulien Panis        $ref: /schemas/regulator/regulator.yaml#
66*a5f00e38SJulien Panis
67*a5f00e38SJulien Panis        unevaluatedProperties: false
68*a5f00e38SJulien Panis
69*a5f00e38SJulien Panis    allOf:
70*a5f00e38SJulien Panis      - if:
71*a5f00e38SJulien Panis          required:
72*a5f00e38SJulien Panis            - buck12
73*a5f00e38SJulien Panis        then:
74*a5f00e38SJulien Panis          properties:
75*a5f00e38SJulien Panis            buck123: false
76*a5f00e38SJulien Panis            buck1234: false
77*a5f00e38SJulien Panis      - if:
78*a5f00e38SJulien Panis          required:
79*a5f00e38SJulien Panis            - buck123
80*a5f00e38SJulien Panis        then:
81*a5f00e38SJulien Panis          properties:
82*a5f00e38SJulien Panis            buck34: false
83*a5f00e38SJulien Panis      - if:
84*a5f00e38SJulien Panis          required:
85*a5f00e38SJulien Panis            - buck1234
86*a5f00e38SJulien Panis        then:
87*a5f00e38SJulien Panis          properties:
88*a5f00e38SJulien Panis            buck34: false
89*a5f00e38SJulien Panis
90*a5f00e38SJulien Panis    additionalProperties: false
91*a5f00e38SJulien Panis
92*a5f00e38SJulien PanispatternProperties:
93*a5f00e38SJulien Panis  "^buck([1-5]|12|34|123|1234)-supply$":
94*a5f00e38SJulien Panis    description: Input supply phandle for each buck.
95*a5f00e38SJulien Panis
96*a5f00e38SJulien Panis  "^ldo[1-4]-supply$":
97*a5f00e38SJulien Panis    description: Input supply phandle for each ldo.
98*a5f00e38SJulien Panis
99*a5f00e38SJulien Panisrequired:
100*a5f00e38SJulien Panis  - compatible
101*a5f00e38SJulien Panis  - reg
102*a5f00e38SJulien Panis  - interrupts
103*a5f00e38SJulien Panis
104*a5f00e38SJulien PanisadditionalProperties: false
105*a5f00e38SJulien Panis
106*a5f00e38SJulien Panisexamples:
107*a5f00e38SJulien Panis  - |
108*a5f00e38SJulien Panis    #include <dt-bindings/interrupt-controller/arm-gic.h>
109*a5f00e38SJulien Panis    i2c {
110*a5f00e38SJulien Panis        #address-cells = <1>;
111*a5f00e38SJulien Panis        #size-cells = <0>;
112*a5f00e38SJulien Panis
113*a5f00e38SJulien Panis        tps6593: pmic@48 {
114*a5f00e38SJulien Panis            compatible = "ti,tps6593-q1";
115*a5f00e38SJulien Panis            reg = <0x48>;
116*a5f00e38SJulien Panis            ti,primary-pmic;
117*a5f00e38SJulien Panis            system-power-controller;
118*a5f00e38SJulien Panis
119*a5f00e38SJulien Panis            gpio-controller;
120*a5f00e38SJulien Panis            #gpio-cells = <2>;
121*a5f00e38SJulien Panis
122*a5f00e38SJulien Panis            pinctrl-names = "default";
123*a5f00e38SJulien Panis            pinctrl-0 = <&pmic_irq_pins_default>;
124*a5f00e38SJulien Panis            interrupt-parent = <&mcu_gpio0>;
125*a5f00e38SJulien Panis            interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
126*a5f00e38SJulien Panis
127*a5f00e38SJulien Panis            buck123-supply = <&vcc_3v3_sys>;
128*a5f00e38SJulien Panis            buck4-supply = <&vcc_3v3_sys>;
129*a5f00e38SJulien Panis            buck5-supply = <&vcc_3v3_sys>;
130*a5f00e38SJulien Panis            ldo1-supply = <&vcc_3v3_sys>;
131*a5f00e38SJulien Panis            ldo2-supply = <&vcc_3v3_sys>;
132*a5f00e38SJulien Panis            ldo3-supply = <&buck5>;
133*a5f00e38SJulien Panis            ldo4-supply = <&vcc_3v3_sys>;
134*a5f00e38SJulien Panis
135*a5f00e38SJulien Panis            regulators {
136*a5f00e38SJulien Panis                buck123: buck123 {
137*a5f00e38SJulien Panis                    regulator-name = "vcc_core";
138*a5f00e38SJulien Panis                    regulator-min-microvolt = <750000>;
139*a5f00e38SJulien Panis                    regulator-max-microvolt = <850000>;
140*a5f00e38SJulien Panis                    regulator-boot-on;
141*a5f00e38SJulien Panis                    regulator-always-on;
142*a5f00e38SJulien Panis                };
143*a5f00e38SJulien Panis
144*a5f00e38SJulien Panis                buck4: buck4 {
145*a5f00e38SJulien Panis                    regulator-name = "vcc_1v1";
146*a5f00e38SJulien Panis                    regulator-min-microvolt = <1100000>;
147*a5f00e38SJulien Panis                    regulator-max-microvolt = <1100000>;
148*a5f00e38SJulien Panis                    regulator-boot-on;
149*a5f00e38SJulien Panis                    regulator-always-on;
150*a5f00e38SJulien Panis                };
151*a5f00e38SJulien Panis
152*a5f00e38SJulien Panis                buck5: buck5 {
153*a5f00e38SJulien Panis                    regulator-name = "vcc_1v8_sys";
154*a5f00e38SJulien Panis                    regulator-min-microvolt = <1800000>;
155*a5f00e38SJulien Panis                    regulator-max-microvolt = <1800000>;
156*a5f00e38SJulien Panis                    regulator-boot-on;
157*a5f00e38SJulien Panis                    regulator-always-on;
158*a5f00e38SJulien Panis                };
159*a5f00e38SJulien Panis
160*a5f00e38SJulien Panis                ldo1: ldo1 {
161*a5f00e38SJulien Panis                    regulator-name = "vddshv5_sdio";
162*a5f00e38SJulien Panis                    regulator-min-microvolt = <3300000>;
163*a5f00e38SJulien Panis                    regulator-max-microvolt = <3300000>;
164*a5f00e38SJulien Panis                    regulator-boot-on;
165*a5f00e38SJulien Panis                    regulator-always-on;
166*a5f00e38SJulien Panis                };
167*a5f00e38SJulien Panis
168*a5f00e38SJulien Panis                ldo2: ldo2 {
169*a5f00e38SJulien Panis                    regulator-name = "vpp_1v8";
170*a5f00e38SJulien Panis                    regulator-min-microvolt = <1800000>;
171*a5f00e38SJulien Panis                    regulator-max-microvolt = <1800000>;
172*a5f00e38SJulien Panis                    regulator-boot-on;
173*a5f00e38SJulien Panis                    regulator-always-on;
174*a5f00e38SJulien Panis                };
175*a5f00e38SJulien Panis
176*a5f00e38SJulien Panis                ldo3: ldo3 {
177*a5f00e38SJulien Panis                    regulator-name = "vcc_0v85";
178*a5f00e38SJulien Panis                    regulator-min-microvolt = <850000>;
179*a5f00e38SJulien Panis                    regulator-max-microvolt = <850000>;
180*a5f00e38SJulien Panis                    regulator-boot-on;
181*a5f00e38SJulien Panis                    regulator-always-on;
182*a5f00e38SJulien Panis                };
183*a5f00e38SJulien Panis
184*a5f00e38SJulien Panis                ldo4: ldo4 {
185*a5f00e38SJulien Panis                    regulator-name = "vdda_1v8";
186*a5f00e38SJulien Panis                    regulator-min-microvolt = <1800000>;
187*a5f00e38SJulien Panis                    regulator-max-microvolt = <1800000>;
188*a5f00e38SJulien Panis                    regulator-boot-on;
189*a5f00e38SJulien Panis                    regulator-always-on;
190*a5f00e38SJulien Panis                };
191*a5f00e38SJulien Panis            };
192*a5f00e38SJulien Panis        };
193*a5f00e38SJulien Panis    };
194