1 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
2 /*
3 * Copyright (C) 2022 BayLibre, SAS.
4 * Author: Fabien Parent <fparent@baylibre.com>
5 */
6 /dts-v1/;
7
8 #include "mt8195.dtsi"
9 #include "mt6359.dtsi"
10
11 #include <dt-bindings/gpio/gpio.h>
12 #include <dt-bindings/input/input.h>
13 #include <dt-bindings/pinctrl/mt8195-pinfunc.h>
14 #include <dt-bindings/regulator/mediatek,mt6360-regulator.h>
15
16 / {
17 model = "MediaTek MT8195 demo board";
18 compatible = "mediatek,mt8195-demo", "mediatek,mt8195";
19
20 aliases {
21 serial0 = &uart0;
22 };
23
24 chosen {
25 stdout-path = "serial0:921600n8";
26 };
27
28 firmware {
29 optee {
30 compatible = "linaro,optee-tz";
31 method = "smc";
32 };
33 };
34
35 gpio-keys {
36 compatible = "gpio-keys";
37 pinctrl-names = "default";
38 pinctrl-0 = <&gpio_keys_pins>;
39
40 key-0 {
41 gpios = <&pio 106 GPIO_ACTIVE_LOW>;
42 label = "volume_up";
43 linux,code = <KEY_VOLUMEUP>;
44 wakeup-source;
45 debounce-interval = <15>;
46 };
47 };
48
49 memory@40000000 {
50 device_type = "memory";
51 reg = <0 0x40000000 0 0x80000000>;
52 };
53
54 reserved-memory {
55 #address-cells = <2>;
56 #size-cells = <2>;
57 ranges;
58
59 /* 192 KiB reserved for ARM Trusted Firmware (BL31) */
60 bl31_secmon_reserved: secmon@54600000 {
61 no-map;
62 reg = <0 0x54600000 0x0 0x30000>;
63 };
64
65 /* 12 MiB reserved for OP-TEE (BL32)
66 * +-----------------------+ 0x43e0_0000
67 * | SHMEM 2MiB |
68 * +-----------------------+ 0x43c0_0000
69 * | | TA_RAM 8MiB |
70 * + TZDRAM +--------------+ 0x4340_0000
71 * | | TEE_RAM 2MiB |
72 * +-----------------------+ 0x4320_0000
73 */
74 optee_reserved: optee@43200000 {
75 no-map;
76 reg = <0 0x43200000 0 0x00c00000>;
77 };
78 };
79 };
80
81 &i2c6 {
82 clock-frequency = <400000>;
83 pinctrl-0 = <&i2c6_pins>;
84 pinctrl-names = "default";
85 status = "okay";
86
87 mt6360: pmic@34 {
88 compatible = "mediatek,mt6360";
89 reg = <0x34>;
90 interrupt-controller;
91 interrupts-extended = <&pio 101 IRQ_TYPE_EDGE_FALLING>;
92 interrupt-names = "IRQB";
93
94 charger {
95 compatible = "mediatek,mt6360-chg";
96 richtek,vinovp-microvolt = <14500000>;
97
98 otg_vbus_regulator: usb-otg-vbus-regulator {
99 regulator-compatible = "usb-otg-vbus";
100 regulator-name = "usb-otg-vbus";
101 regulator-min-microvolt = <4425000>;
102 regulator-max-microvolt = <5825000>;
103 };
104 };
105
106 regulator {
107 compatible = "mediatek,mt6360-regulator";
108 LDO_VIN3-supply = <&mt6360_buck2>;
109
110 mt6360_buck1: buck1 {
111 regulator-compatible = "BUCK1";
112 regulator-name = "mt6360,buck1";
113 regulator-min-microvolt = <300000>;
114 regulator-max-microvolt = <1300000>;
115 regulator-allowed-modes = <MT6360_OPMODE_NORMAL
116 MT6360_OPMODE_LP
117 MT6360_OPMODE_ULP>;
118 regulator-always-on;
119 };
120
121 mt6360_buck2: buck2 {
122 regulator-compatible = "BUCK2";
123 regulator-name = "mt6360,buck2";
124 regulator-min-microvolt = <300000>;
125 regulator-max-microvolt = <1300000>;
126 regulator-allowed-modes = <MT6360_OPMODE_NORMAL
127 MT6360_OPMODE_LP
128 MT6360_OPMODE_ULP>;
129 regulator-always-on;
130 };
131
132 mt6360_ldo1: ldo1 {
133 regulator-compatible = "LDO1";
134 regulator-name = "mt6360,ldo1";
135 regulator-min-microvolt = <1200000>;
136 regulator-max-microvolt = <3600000>;
137 regulator-allowed-modes = <MT6360_OPMODE_NORMAL
138 MT6360_OPMODE_LP>;
139 };
140
141 mt6360_ldo2: ldo2 {
142 regulator-compatible = "LDO2";
143 regulator-name = "mt6360,ldo2";
144 regulator-min-microvolt = <1200000>;
145 regulator-max-microvolt = <3600000>;
146 regulator-allowed-modes = <MT6360_OPMODE_NORMAL
147 MT6360_OPMODE_LP>;
148 };
149
150 mt6360_ldo3: ldo3 {
151 regulator-compatible = "LDO3";
152 regulator-name = "mt6360,ldo3";
153 regulator-min-microvolt = <1200000>;
154 regulator-max-microvolt = <3600000>;
155 regulator-allowed-modes = <MT6360_OPMODE_NORMAL
156 MT6360_OPMODE_LP>;
157 };
158
159 mt6360_ldo5: ldo5 {
160 regulator-compatible = "LDO5";
161 regulator-name = "mt6360,ldo5";
162 regulator-min-microvolt = <2700000>;
163 regulator-max-microvolt = <3600000>;
164 regulator-allowed-modes = <MT6360_OPMODE_NORMAL
165 MT6360_OPMODE_LP>;
166 };
167
168 mt6360_ldo6: ldo6 {
169 regulator-compatible = "LDO6";
170 regulator-name = "mt6360,ldo6";
171 regulator-min-microvolt = <500000>;
172 regulator-max-microvolt = <2100000>;
173 regulator-allowed-modes = <MT6360_OPMODE_NORMAL
174 MT6360_OPMODE_LP>;
175 };
176
177 mt6360_ldo7: ldo7 {
178 regulator-compatible = "LDO7";
179 regulator-name = "mt6360,ldo7";
180 regulator-min-microvolt = <500000>;
181 regulator-max-microvolt = <2100000>;
182 regulator-allowed-modes = <MT6360_OPMODE_NORMAL
183 MT6360_OPMODE_LP>;
184 regulator-always-on;
185 };
186 };
187 };
188 };
189
190 &mmc0 {
191 status = "okay";
192 pinctrl-names = "default", "state_uhs";
193 pinctrl-0 = <&mmc0_default_pins>;
194 pinctrl-1 = <&mmc0_uhs_pins>;
195 bus-width = <8>;
196 max-frequency = <200000000>;
197 cap-mmc-highspeed;
198 mmc-hs200-1_8v;
199 mmc-hs400-1_8v;
200 cap-mmc-hw-reset;
201 no-sdio;
202 no-sd;
203 hs400-ds-delay = <0x14c11>;
204 vmmc-supply = <&mt6359_vemc_1_ldo_reg>;
205 vqmmc-supply = <&mt6359_vufs_ldo_reg>;
206 non-removable;
207 };
208
209 &mmc1 {
210 pinctrl-names = "default", "state_uhs";
211 pinctrl-0 = <&mmc1_default_pins>;
212 pinctrl-1 = <&mmc1_uhs_pins>;
213 cd-gpios = <&pio 129 GPIO_ACTIVE_LOW>;
214 bus-width = <4>;
215 max-frequency = <200000000>;
216 cap-sd-highspeed;
217 sd-uhs-sdr50;
218 sd-uhs-sdr104;
219 vmmc-supply = <&mt6360_ldo5>;
220 vqmmc-supply = <&mt6360_ldo3>;
221 status = "okay";
222 };
223
224 &mt6359_vbbck_ldo_reg {
225 regulator-always-on;
226 };
227
228 &mt6359_vcore_buck_reg {
229 regulator-always-on;
230 };
231
232 &mt6359_vgpu11_buck_reg {
233 regulator-always-on;
234 };
235
236 &mt6359_vproc1_buck_reg {
237 regulator-always-on;
238 };
239
240 &mt6359_vproc2_buck_reg {
241 regulator-always-on;
242 };
243
244 &mt6359_vpu_buck_reg {
245 regulator-always-on;
246 };
247
248 &mt6359_vrf12_ldo_reg {
249 regulator-always-on;
250 };
251
252 &mt6359_vsram_md_ldo_reg {
253 regulator-always-on;
254 };
255
256 &mt6359_vsram_others_ldo_reg {
257 regulator-always-on;
258 };
259
260 &pio {
261 gpio_keys_pins: gpio-keys-pins {
262 pins {
263 pinmux = <PINMUX_GPIO106__FUNC_GPIO106>;
264 input-enable;
265 };
266 };
267
268 i2c6_pins: i2c6-pins {
269 pins {
270 pinmux = <PINMUX_GPIO25__FUNC_SDA6>,
271 <PINMUX_GPIO26__FUNC_SCL6>;
272 bias-pull-up;
273 };
274 };
275
276 mmc0_default_pins: mmc0-default-pins {
277 pins-clk {
278 pinmux = <PINMUX_GPIO122__FUNC_MSDC0_CLK>;
279 drive-strength = <MTK_DRIVE_6mA>;
280 bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
281 };
282
283 pins-cmd-dat {
284 pinmux = <PINMUX_GPIO126__FUNC_MSDC0_DAT0>,
285 <PINMUX_GPIO125__FUNC_MSDC0_DAT1>,
286 <PINMUX_GPIO124__FUNC_MSDC0_DAT2>,
287 <PINMUX_GPIO123__FUNC_MSDC0_DAT3>,
288 <PINMUX_GPIO119__FUNC_MSDC0_DAT4>,
289 <PINMUX_GPIO118__FUNC_MSDC0_DAT5>,
290 <PINMUX_GPIO117__FUNC_MSDC0_DAT6>,
291 <PINMUX_GPIO116__FUNC_MSDC0_DAT7>,
292 <PINMUX_GPIO121__FUNC_MSDC0_CMD>;
293 input-enable;
294 drive-strength = <MTK_DRIVE_6mA>;
295 bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
296 };
297
298 pins-rst {
299 pinmux = <PINMUX_GPIO120__FUNC_MSDC0_RSTB>;
300 drive-strength = <MTK_DRIVE_6mA>;
301 bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
302 };
303 };
304
305 mmc0_uhs_pins: mmc0-uhs-pins {
306 pins-clk {
307 pinmux = <PINMUX_GPIO122__FUNC_MSDC0_CLK>;
308 drive-strength = <MTK_DRIVE_8mA>;
309 bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
310 };
311
312 pins-cmd-dat {
313 pinmux = <PINMUX_GPIO126__FUNC_MSDC0_DAT0>,
314 <PINMUX_GPIO125__FUNC_MSDC0_DAT1>,
315 <PINMUX_GPIO124__FUNC_MSDC0_DAT2>,
316 <PINMUX_GPIO123__FUNC_MSDC0_DAT3>,
317 <PINMUX_GPIO119__FUNC_MSDC0_DAT4>,
318 <PINMUX_GPIO118__FUNC_MSDC0_DAT5>,
319 <PINMUX_GPIO117__FUNC_MSDC0_DAT6>,
320 <PINMUX_GPIO116__FUNC_MSDC0_DAT7>,
321 <PINMUX_GPIO121__FUNC_MSDC0_CMD>;
322 input-enable;
323 drive-strength = <MTK_DRIVE_8mA>;
324 bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
325 };
326
327 pins-ds {
328 pinmux = <PINMUX_GPIO127__FUNC_MSDC0_DSL>;
329 drive-strength = <MTK_DRIVE_8mA>;
330 bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
331 };
332
333 pins-rst {
334 pinmux = <PINMUX_GPIO120__FUNC_MSDC0_RSTB>;
335 drive-strength = <MTK_DRIVE_8mA>;
336 bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
337 };
338 };
339
340 mmc1_default_pins: mmc1-default-pins {
341 pins-clk {
342 pinmux = <PINMUX_GPIO111__FUNC_MSDC1_CLK>;
343 drive-strength = <MTK_DRIVE_8mA>;
344 bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
345 };
346
347 pins-cmd-dat {
348 pinmux = <PINMUX_GPIO110__FUNC_MSDC1_CMD>,
349 <PINMUX_GPIO112__FUNC_MSDC1_DAT0>,
350 <PINMUX_GPIO113__FUNC_MSDC1_DAT1>,
351 <PINMUX_GPIO114__FUNC_MSDC1_DAT2>,
352 <PINMUX_GPIO115__FUNC_MSDC1_DAT3>;
353 input-enable;
354 drive-strength = <MTK_DRIVE_8mA>;
355 bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
356 };
357
358 pins-insert {
359 pinmux = <PINMUX_GPIO129__FUNC_GPIO129>;
360 bias-pull-up;
361 };
362 };
363
364 mmc1_uhs_pins: mmc1-uhs-pins {
365 pins-clk {
366 pinmux = <PINMUX_GPIO111__FUNC_MSDC1_CLK>;
367 drive-strength = <MTK_DRIVE_8mA>;
368 bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
369 };
370
371 pins-cmd-dat {
372 pinmux = <PINMUX_GPIO110__FUNC_MSDC1_CMD>,
373 <PINMUX_GPIO112__FUNC_MSDC1_DAT0>,
374 <PINMUX_GPIO113__FUNC_MSDC1_DAT1>,
375 <PINMUX_GPIO114__FUNC_MSDC1_DAT2>,
376 <PINMUX_GPIO115__FUNC_MSDC1_DAT3>;
377 input-enable;
378 drive-strength = <MTK_DRIVE_8mA>;
379 bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
380 };
381 };
382
383 uart0_pins: uart0-pins {
384 pins {
385 pinmux = <PINMUX_GPIO98__FUNC_UTXD0>,
386 <PINMUX_GPIO99__FUNC_URXD0>;
387 };
388 };
389
390 uart1_pins: uart1-pins {
391 pins {
392 pinmux = <PINMUX_GPIO102__FUNC_UTXD1>,
393 <PINMUX_GPIO103__FUNC_URXD1>;
394 };
395 };
396 };
397
398
399 &pmic {
400 interrupts-extended = <&pio 222 IRQ_TYPE_LEVEL_HIGH>;
401 };
402
403 &uart0 {
404 pinctrl-names = "default";
405 pinctrl-0 = <&uart0_pins>;
406 status = "okay";
407 };
408
409 &uart1 {
410 pinctrl-names = "default";
411 pinctrl-0 = <&uart1_pins>;
412 status = "okay";
413 };
414
415 &u3phy0 {
416 status = "okay";
417 };
418
419 &u3phy1 {
420 status = "okay";
421 };
422
423 &u3phy2 {
424 status = "okay";
425 };
426
427 &u3phy3 {
428 status = "okay";
429 };
430
431 &xhci0 {
432 vusb33-supply = <&mt6359_vusb_ldo_reg>;
433 vbus-supply = <&otg_vbus_regulator>;
434 status = "okay";
435 };
436
437 &xhci1 {
438 vusb33-supply = <&mt6359_vusb_ldo_reg>;
439 status = "okay";
440 };
441
442 &xhci2 {
443 vusb33-supply = <&mt6359_vusb_ldo_reg>;
444 status = "okay";
445 };
446
447 &xhci3 {
448 vusb33-supply = <&mt6359_vusb_ldo_reg>;
449 status = "okay";
450 };
Cache object: dd269785bbefac96a20e422219dd9677
|