blob: c9574b2430468d5b31b87c5af4af32b6d70eec0b [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mfd/mediatek,mt6370.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: MediaTek MT6370 SubPMIC
8
9maintainers:
10 - ChiYuan Huang <cy_huang@richtek.com>
11
12description: |
13 MT6370 is a highly-integrated smart power management IC, which includes a
14 single cell Li-Ion/Li-Polymer switching battery charger, a USB Type-C &
15 Power Delivery (PD) controller, dual flash LED current sources, a RGB LED
16 driver, a backlight WLED driver, a display bias driver and a general LDO for
17 portable devices.
18
19properties:
20 compatible:
21 const: mediatek,mt6370
22
23 reg:
24 maxItems: 1
25
26 wakeup-source: true
27
28 interrupts:
29 maxItems: 1
30
31 interrupt-controller: true
32
33 "#interrupt-cells":
34 const: 1
35
36 adc:
37 type: object
38 additionalProperties: false
39 description: |
40 Provides 9 channels for system monitoring, including VBUSDIV5 (lower
41 accuracy, higher measure range), VBUSDIV2 (higher accuracy, lower
42 measure range), VBAT, VSYS, CHG_VDDP, TS_BAT, IBUS, IBAT, and TEMP_JC.
43
44 properties:
45 compatible:
46 const: mediatek,mt6370-adc
47
48 "#io-channel-cells":
49 const: 1
50
51 required:
52 - compatible
53 - "#io-channel-cells"
54
55 backlight:
56 type: object
57 $ref: /schemas/leds/backlight/mediatek,mt6370-backlight.yaml#
58
59 charger:
60 type: object
61 $ref: /schemas/power/supply/mediatek,mt6370-charger.yaml#
62
63 tcpc:
64 type: object
65 $ref: /schemas/usb/mediatek,mt6370-tcpc.yaml#
66
67 indicator:
68 type: object
69 $ref: /schemas/leds/mediatek,mt6370-indicator.yaml#
70
71 flashlight:
72 type: object
73 $ref: /schemas/leds/mediatek,mt6370-flashlight.yaml#
74
75 regulators:
76 type: object
77 additionalProperties: false
78 description: |
79 List all supported regulators, which support the control for DisplayBias
80 voltages and one general purpose LDO which commonly used to drive the
81 vibrator.
82
83 patternProperties:
84 "^(dsvbst|vibldo)$":
85 $ref: /schemas/regulator/regulator.yaml#
86 type: object
87 unevaluatedProperties: false
88
89 "^(dsvpos|dsvneg)$":
90 $ref: /schemas/regulator/regulator.yaml#
91 type: object
92 unevaluatedProperties: false
93
94 properties:
95 enable-gpios:
96 maxItems: 1
97
98required:
99 - compatible
100 - reg
101 - interrupts
102 - interrupt-controller
103 - "#interrupt-cells"
104 - regulators
105 - adc
106 - backlight
107 - indicator
108 - tcpc
109 - charger
110 - flashlight
111
112additionalProperties: false
113
114examples:
115 - |
116 #include <dt-bindings/interrupt-controller/irq.h>
117 #include <dt-bindings/leds/common.h>
118 #include <dt-bindings/iio/adc/mediatek,mt6370_adc.h>
119 #include <dt-bindings/usb/pd.h>
120 i2c {
121 #address-cells = <1>;
122 #size-cells = <0>;
123
124 pmic@34 {
125 compatible = "mediatek,mt6370";
126 reg = <0x34>;
127 wakeup-source;
128 interrupts-extended = <&gpio26 3 IRQ_TYPE_LEVEL_LOW>;
129 interrupt-controller;
130 #interrupt-cells = <1>;
131
132 mt6370_adc: adc {
133 compatible = "mediatek,mt6370-adc";
134 #io-channel-cells = <1>;
135 };
136
137 backlight {
138 compatible = "mediatek,mt6370-backlight";
139 mediatek,bled-channel-use = /bits/ 8 <15>;
140 };
141
142 charger {
143 compatible = "mediatek,mt6370-charger";
144 interrupts = <68>, <48>, <6>;
145 interrupt-names = "uvp_d_evt", "attach_i", "mivr";
146 io-channels = <&mt6370_adc MT6370_CHAN_IBUS>;
147
148 mt6370_otg_vbus: usb-otg-vbus-regulator {
149 regulator-name = "mt6370-usb-otg-vbus";
150 regulator-min-microvolt = <4350000>;
151 regulator-max-microvolt = <5800000>;
152 regulator-min-microamp = <500000>;
153 regulator-max-microamp = <3000000>;
154 };
155 };
156
157 indicator {
158 compatible = "mediatek,mt6370-indicator";
159 #address-cells = <1>;
160 #size-cells = <0>;
161
162 multi-led@0 {
163 reg = <0>;
164 function = LED_FUNCTION_INDICATOR;
165 color = <LED_COLOR_ID_RGB>;
166 led-max-microamp = <24000>;
167 #address-cells = <1>;
168 #size-cells = <0>;
169 led@0 {
170 reg = <0>;
171 color = <LED_COLOR_ID_RED>;
172 };
173 led@1 {
174 reg = <1>;
175 color = <LED_COLOR_ID_GREEN>;
176 };
177 led@2 {
178 reg = <2>;
179 color = <LED_COLOR_ID_BLUE>;
180 };
181 };
182 led@3 {
183 reg = <3>;
184 function = LED_FUNCTION_INDICATOR;
185 color = <LED_COLOR_ID_WHITE>;
186 led-max-microamp = <6000>;
187 };
188 };
189
190 flashlight {
191 compatible = "mediatek,mt6370-flashlight";
192 #address-cells = <1>;
193 #size-cells = <0>;
194 led@0 {
195 reg = <0>;
196 led-sources = <0>;
197 function = LED_FUNCTION_FLASH;
198 color = <LED_COLOR_ID_WHITE>;
199 function-enumerator = <1>;
200 led-max-microamp = <200000>;
201 flash-max-microamp = <500000>;
202 flash-max-timeout-us = <1248000>;
203 };
204 led@1 {
205 reg = <1>;
206 led-sources = <1>;
207 function = LED_FUNCTION_FLASH;
208 color = <LED_COLOR_ID_WHITE>;
209 function-enumerator = <2>;
210 led-max-microamp = <200000>;
211 flash-max-microamp = <500000>;
212 flash-max-timeout-us = <1248000>;
213 };
214 };
215
216 tcpc {
217 compatible = "mediatek,mt6370-tcpc";
218 interrupts-extended = <&gpio26 4 IRQ_TYPE_LEVEL_LOW>;
219
220 connector {
221 compatible = "usb-c-connector";
222 label = "USB-C";
223 vbus-supply = <&mt6370_otg_vbus>;
224 data-role = "dual";
225 power-role = "dual";
226 try-power-role = "sink";
227 source-pdos = <PDO_FIXED(5000, 1000, PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)>;
228 sink-pdos = <PDO_FIXED(5000, 2000, PDO_FIXED_DUAL_ROLE | PDO_FIXED_DATA_SWAP)>;
229 op-sink-microwatt = <10000000>;
230
231 ports {
232 #address-cells = <1>;
233 #size-cells = <0>;
234
235 port@0 {
236 reg = <0>;
237 endpoint {
238 remote-endpoint = <&usb_hs>;
239 };
240 };
241 port@1 {
242 reg = <1>;
243 endpoint {
244 remote-endpoint = <&usb_ss>;
245 };
246 };
247 port@2 {
248 reg = <2>;
249 endpoint {
250 remote-endpoint = <&dp_aux>;
251 };
252 };
253 };
254 };
255 };
256
257 regulators {
258 dsvbst {
259 regulator-name = "mt6370-dsv-vbst";
260 regulator-min-microvolt = <4000000>;
261 regulator-max-microvolt = <6200000>;
262 };
263 dsvpos {
264 regulator-name = "mt6370-dsv-vpos";
265 regulator-min-microvolt = <4000000>;
266 regulator-max-microvolt = <6000000>;
267 regulator-boot-on;
268 };
269 dsvneg {
270 regulator-name = "mt6370-dsv-vneg";
271 regulator-min-microvolt = <4000000>;
272 regulator-max-microvolt = <6000000>;
273 regulator-boot-on;
274 };
275 vibldo {
276 regulator-name = "mt6370-vib-ldo";
277 regulator-min-microvolt = <1600000>;
278 regulator-max-microvolt = <4000000>;
279 };
280 };
281 };
282 };