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