arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / Documentation / devicetree / bindings / mfd / mediatek,mt6370.yaml
1 # 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
7 title: MediaTek MT6370 SubPMIC
8
9 maintainers:
10   - ChiYuan Huang <cy_huang@richtek.com>
11
12 description: |
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
19 properties:
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
98 required:
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
112 additionalProperties: false
113
114 examples:
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     };