1e53da8c4SGene Chen# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2e53da8c4SGene Chen%YAML 1.2
3e53da8c4SGene Chen---
4e53da8c4SGene Chen$id: http://devicetree.org/schemas/mfd/mediatek,mt6360.yaml#
5e53da8c4SGene Chen$schema: http://devicetree.org/meta-schemas/core.yaml#
6e53da8c4SGene Chen
7e53da8c4SGene Chentitle: MT6360 PMIC from MediaTek Integrated
8e53da8c4SGene Chen
9e53da8c4SGene Chenmaintainers:
10e53da8c4SGene Chen  - Gene Chen <gene_chen@richtek.com>
11e53da8c4SGene Chen
12e53da8c4SGene Chendescription: |
13e53da8c4SGene Chen  MT6360 is a PMIC device with the following sub modules.
14e53da8c4SGene Chen  It is interfaced to host controller using I2C interface.
15e53da8c4SGene Chen
16e53da8c4SGene Chen  This document describes the binding for PMIC device and its sub module.
17e53da8c4SGene Chen
18e53da8c4SGene Chenproperties:
19e53da8c4SGene Chen  compatible:
20e53da8c4SGene Chen    const: mediatek,mt6360
21e53da8c4SGene Chen
22e53da8c4SGene Chen  reg:
23e53da8c4SGene Chen    maxItems: 1
24e53da8c4SGene Chen
25e53da8c4SGene Chen  wakeup-source: true
26e53da8c4SGene Chen
27e53da8c4SGene Chen  interrupts:
28e53da8c4SGene Chen    maxItems: 1
29e53da8c4SGene Chen
30e53da8c4SGene Chen  interrupt-names:
31e53da8c4SGene Chen    const: IRQB
32e53da8c4SGene Chen
33e53da8c4SGene Chen  interrupt-controller: true
34e53da8c4SGene Chen
35e53da8c4SGene Chen  "#interrupt-cells":
36e53da8c4SGene Chen    const: 1
37e53da8c4SGene Chen    description:
38e53da8c4SGene Chen      The first cell is the IRQ number.
39e53da8c4SGene Chen
40*57274439SGene Chen  regulators:
41*57274439SGene Chen    $ref: /schemas/regulator/mt6360-regulator.yaml#
42*57274439SGene Chen
43*57274439SGene Chen  charger:
44*57274439SGene Chen    $ref: /schemas/power/supply/mt6360_charger.yaml#
45*57274439SGene Chen
46*57274439SGene Chen  tcpc:
47*57274439SGene Chen    $ref: /schemas/usb/mediatek,mt6360-tcpc.yaml#
48*57274439SGene Chen
49*57274439SGene Chen  led-controller:
50*57274439SGene Chen    $ref: /schemas/leds/leds-mt6360.yaml#
51*57274439SGene Chen
52e53da8c4SGene Chenrequired:
53e53da8c4SGene Chen  - compatible
54e53da8c4SGene Chen  - reg
55e53da8c4SGene Chen  - interrupts
56e53da8c4SGene Chen  - interrupt-controller
57e53da8c4SGene Chen  - "#interrupt-cells"
58e53da8c4SGene Chen
59e53da8c4SGene ChenadditionalProperties:
60e53da8c4SGene Chen  type: object
61e53da8c4SGene Chen
62e53da8c4SGene Chenexamples:
63e53da8c4SGene Chen  - |
64e53da8c4SGene Chen    #include <dt-bindings/interrupt-controller/irq.h>
65e53da8c4SGene Chen    #include <dt-bindings/regulator/mediatek,mt6360-regulator.h>
66*57274439SGene Chen    #include <dt-bindings/leds/common.h>
67*57274439SGene Chen    #include <dt-bindings/usb/pd.h>
68e53da8c4SGene Chen    i2c {
69e53da8c4SGene Chen        #address-cells = <1>;
70e53da8c4SGene Chen        #size-cells = <0>;
71e53da8c4SGene Chen
72e53da8c4SGene Chen        pmic@34 {
73e53da8c4SGene Chen            compatible = "mediatek,mt6360";
74e53da8c4SGene Chen            reg = <0x34>;
75e53da8c4SGene Chen            wakeup-source;
76e53da8c4SGene Chen            interrupts-extended = <&gpio26 0 IRQ_TYPE_LEVEL_LOW>;
77e53da8c4SGene Chen            interrupt-names = "IRQB";
78e53da8c4SGene Chen            interrupt-controller;
79e53da8c4SGene Chen            #interrupt-cells = <1>;
80*57274439SGene Chen
81*57274439SGene Chen            mt6360_charger: charger {
82*57274439SGene Chen                compatible = "mediatek,mt6360-chg";
83*57274439SGene Chen                richtek,vinovp-microvolt = <14500000>;
84*57274439SGene Chen
85*57274439SGene Chen                otg_vbus_regulator: usb-otg-vbus-regulator {
86*57274439SGene Chen                    regulator-name = "usb-otg-vbus";
87*57274439SGene Chen                    regulator-min-microvolt = <4425000>;
88*57274439SGene Chen                    regulator-max-microvolt = <5825000>;
89*57274439SGene Chen                };
90*57274439SGene Chen            };
91*57274439SGene Chen
92*57274439SGene Chen            led-controller {
93*57274439SGene Chen                compatible = "mediatek,mt6360-led";
94*57274439SGene Chen                #address-cells = <1>;
95*57274439SGene Chen                #size-cells = <0>;
96*57274439SGene Chen
97*57274439SGene Chen                multi-led@0 {
98*57274439SGene Chen                    reg = <0>;
99*57274439SGene Chen                    function = LED_FUNCTION_INDICATOR;
100*57274439SGene Chen                    color = <LED_COLOR_ID_RGB>;
101*57274439SGene Chen                    led-max-microamp = <24000>;
102*57274439SGene Chen                    #address-cells = <1>;
103*57274439SGene Chen                    #size-cells = <0>;
104*57274439SGene Chen                    led@0 {
105*57274439SGene Chen                        reg = <0>;
106*57274439SGene Chen                        color = <LED_COLOR_ID_RED>;
107*57274439SGene Chen                    };
108*57274439SGene Chen                    led@1 {
109*57274439SGene Chen                        reg = <1>;
110*57274439SGene Chen                        color = <LED_COLOR_ID_GREEN>;
111*57274439SGene Chen                    };
112*57274439SGene Chen                    led@2 {
113*57274439SGene Chen                        reg = <2>;
114*57274439SGene Chen                        color = <LED_COLOR_ID_BLUE>;
115*57274439SGene Chen                    };
116*57274439SGene Chen                };
117*57274439SGene Chen                led@3 {
118*57274439SGene Chen                    reg = <3>;
119*57274439SGene Chen                    function = LED_FUNCTION_INDICATOR;
120*57274439SGene Chen                    color = <LED_COLOR_ID_WHITE>;
121*57274439SGene Chen                    led-max-microamp = <150000>;
122*57274439SGene Chen                };
123*57274439SGene Chen                led@4 {
124*57274439SGene Chen                    reg = <4>;
125*57274439SGene Chen                    function = LED_FUNCTION_FLASH;
126*57274439SGene Chen                    color = <LED_COLOR_ID_WHITE>;
127*57274439SGene Chen                    function-enumerator = <1>;
128*57274439SGene Chen                    led-max-microamp = <200000>;
129*57274439SGene Chen                    flash-max-microamp = <500000>;
130*57274439SGene Chen                    flash-max-timeout-us = <1024000>;
131*57274439SGene Chen                };
132*57274439SGene Chen                led@5 {
133*57274439SGene Chen                    reg = <5>;
134*57274439SGene Chen                    function = LED_FUNCTION_FLASH;
135*57274439SGene Chen                    color = <LED_COLOR_ID_WHITE>;
136*57274439SGene Chen                    function-enumerator = <2>;
137*57274439SGene Chen                    led-max-microamp = <200000>;
138*57274439SGene Chen                    flash-max-microamp = <500000>;
139*57274439SGene Chen                    flash-max-timeout-us = <1024000>;
140*57274439SGene Chen                };
141*57274439SGene Chen            };
142*57274439SGene Chen
143*57274439SGene Chen            regulators {
144*57274439SGene Chen                compatible = "mediatek,mt6360-regulator";
145*57274439SGene Chen                LDO_VIN3-supply = <&BUCK2>;
146*57274439SGene Chen                buck1 {
147*57274439SGene Chen                    regulator-name = "mt6360,buck1";
148*57274439SGene Chen                    regulator-min-microvolt = <300000>;
149*57274439SGene Chen                    regulator-max-microvolt = <1300000>;
150*57274439SGene Chen                    regulator-allowed-modes = <MT6360_OPMODE_NORMAL
151*57274439SGene Chen                         MT6360_OPMODE_LP
152*57274439SGene Chen                         MT6360_OPMODE_ULP>;
153*57274439SGene Chen                };
154*57274439SGene Chen                BUCK2: buck2 {
155*57274439SGene Chen                    regulator-name = "mt6360,buck2";
156*57274439SGene Chen                    regulator-min-microvolt = <300000>;
157*57274439SGene Chen                    regulator-max-microvolt = <1300000>;
158*57274439SGene Chen                    regulator-allowed-modes = <MT6360_OPMODE_NORMAL
159*57274439SGene Chen                         MT6360_OPMODE_LP
160*57274439SGene Chen                         MT6360_OPMODE_ULP>;
161*57274439SGene Chen                };
162*57274439SGene Chen                ldo6 {
163*57274439SGene Chen                    regulator-name = "mt6360,ldo6";
164*57274439SGene Chen                    regulator-min-microvolt = <500000>;
165*57274439SGene Chen                    regulator-max-microvolt = <2100000>;
166*57274439SGene Chen                    regulator-allowed-modes = <MT6360_OPMODE_NORMAL
167*57274439SGene Chen                         MT6360_OPMODE_LP>;
168*57274439SGene Chen                };
169*57274439SGene Chen                ldo7 {
170*57274439SGene Chen                    regulator-name = "mt6360,ldo7";
171*57274439SGene Chen                    regulator-min-microvolt = <500000>;
172*57274439SGene Chen                    regulator-max-microvolt = <2100000>;
173*57274439SGene Chen                    regulator-allowed-modes = <MT6360_OPMODE_NORMAL
174*57274439SGene Chen                         MT6360_OPMODE_LP>;
175*57274439SGene Chen                };
176*57274439SGene Chen                ldo1 {
177*57274439SGene Chen                    regulator-name = "mt6360,ldo1";
178*57274439SGene Chen                    regulator-min-microvolt = <1200000>;
179*57274439SGene Chen                    regulator-max-microvolt = <3600000>;
180*57274439SGene Chen                    regulator-allowed-modes = <MT6360_OPMODE_NORMAL
181*57274439SGene Chen                         MT6360_OPMODE_LP>;
182*57274439SGene Chen                };
183*57274439SGene Chen                ldo2 {
184*57274439SGene Chen                    regulator-name = "mt6360,ldo2";
185*57274439SGene Chen                    regulator-min-microvolt = <1200000>;
186*57274439SGene Chen                    regulator-max-microvolt = <3600000>;
187*57274439SGene Chen                    regulator-allowed-modes = <MT6360_OPMODE_NORMAL
188*57274439SGene Chen                         MT6360_OPMODE_LP>;
189*57274439SGene Chen                };
190*57274439SGene Chen                ldo3 {
191*57274439SGene Chen                    regulator-name = "mt6360,ldo3";
192*57274439SGene Chen                    regulator-min-microvolt = <1200000>;
193*57274439SGene Chen                    regulator-max-microvolt = <3600000>;
194*57274439SGene Chen                    regulator-allowed-modes = <MT6360_OPMODE_NORMAL
195*57274439SGene Chen                         MT6360_OPMODE_LP>;
196*57274439SGene Chen                };
197*57274439SGene Chen                ldo5 {
198*57274439SGene Chen                    regulator-name = "mt6360,ldo5";
199*57274439SGene Chen                    regulator-min-microvolt = <2700000>;
200*57274439SGene Chen                    regulator-max-microvolt = <3600000>;
201*57274439SGene Chen                    regulator-allowed-modes = <MT6360_OPMODE_NORMAL
202*57274439SGene Chen                         MT6360_OPMODE_LP>;
203*57274439SGene Chen                };
204*57274439SGene Chen            };
205*57274439SGene Chen
206*57274439SGene Chen            tcpc {
207*57274439SGene Chen                compatible = "mediatek,mt6360-tcpc";
208*57274439SGene Chen                interrupts-extended = <&gpio26 3 IRQ_TYPE_LEVEL_LOW>;
209*57274439SGene Chen                interrupt-names = "PD_IRQB";
210*57274439SGene Chen
211*57274439SGene Chen                connector {
212*57274439SGene Chen                    compatible = "usb-c-connector";
213*57274439SGene Chen                    label = "USB-C";
214*57274439SGene Chen                    data-role = "dual";
215*57274439SGene Chen                    power-role = "dual";
216*57274439SGene Chen                    try-power-role = "sink";
217*57274439SGene Chen                    source-pdos = <PDO_FIXED(5000, 1000, PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)>;
218*57274439SGene Chen                    sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)>;
219*57274439SGene Chen                    op-sink-microwatt = <10000000>;
220*57274439SGene Chen
221*57274439SGene Chen                    ports {
222*57274439SGene Chen                        #address-cells = <1>;
223*57274439SGene Chen                        #size-cells = <0>;
224*57274439SGene Chen
225*57274439SGene Chen                        port@0 {
226*57274439SGene Chen                            reg = <0>;
227*57274439SGene Chen                            endpoint {
228*57274439SGene Chen                                remote-endpoint = <&usb_hs>;
229*57274439SGene Chen                            };
230*57274439SGene Chen                        };
231*57274439SGene Chen                        port@1 {
232*57274439SGene Chen                            reg = <1>;
233*57274439SGene Chen                            endpoint {
234*57274439SGene Chen                                remote-endpoint = <&usb_ss>;
235*57274439SGene Chen                          };
236*57274439SGene Chen                        };
237*57274439SGene Chen                        port@2 {
238*57274439SGene Chen                            reg = <2>;
239*57274439SGene Chen                            endpoint {
240*57274439SGene Chen                                remote-endpoint = <&dp_aux>;
241*57274439SGene Chen                            };
242*57274439SGene Chen                        };
243*57274439SGene Chen                    };
244*57274439SGene Chen                };
245*57274439SGene Chen            };
246e53da8c4SGene Chen        };
247e53da8c4SGene Chen    };
248