1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2/*
3 * Copyright (c) 2018 MediaTek Inc.
4 * Author: Ben Ho <ben.ho@mediatek.com>
5 *	   Erin Lo <erin.lo@mediatek.com>
6 */
7
8/dts-v1/;
9#include "mt8183.dtsi"
10#include "mt6358.dtsi"
11
12/ {
13	model = "MediaTek MT8183 evaluation board";
14	compatible = "mediatek,mt8183-evb", "mediatek,mt8183";
15
16	aliases {
17		serial0 = &uart0;
18	};
19
20	memory@40000000 {
21		device_type = "memory";
22		reg = <0 0x40000000 0 0x80000000>;
23	};
24
25	chosen {
26		stdout-path = "serial0:921600n8";
27	};
28
29	reserved-memory {
30		#address-cells = <2>;
31		#size-cells = <2>;
32		ranges;
33		scp_mem_reserved: scp_mem_region {
34			compatible = "shared-dma-pool";
35			reg = <0 0x50000000 0 0x2900000>;
36			no-map;
37		};
38	};
39};
40
41&auxadc {
42	status = "okay";
43};
44
45&i2c0 {
46	pinctrl-names = "default";
47	pinctrl-0 = <&i2c_pins_0>;
48	status = "okay";
49	clock-frequency = <100000>;
50};
51
52&i2c1 {
53	pinctrl-names = "default";
54	pinctrl-0 = <&i2c_pins_1>;
55	status = "okay";
56	clock-frequency = <100000>;
57};
58
59&i2c2 {
60	pinctrl-names = "default";
61	pinctrl-0 = <&i2c_pins_2>;
62	status = "okay";
63	clock-frequency = <100000>;
64};
65
66&i2c3 {
67	pinctrl-names = "default";
68	pinctrl-0 = <&i2c_pins_3>;
69	status = "okay";
70	clock-frequency = <100000>;
71};
72
73&i2c4 {
74	pinctrl-names = "default";
75	pinctrl-0 = <&i2c_pins_4>;
76	status = "okay";
77	clock-frequency = <1000000>;
78};
79
80&i2c5 {
81	pinctrl-names = "default";
82	pinctrl-0 = <&i2c_pins_5>;
83	status = "okay";
84	clock-frequency = <1000000>;
85};
86
87&mmc0 {
88	status = "okay";
89	pinctrl-names = "default", "state_uhs";
90	pinctrl-0 = <&mmc0_pins_default>;
91	pinctrl-1 = <&mmc0_pins_uhs>;
92	bus-width = <8>;
93	max-frequency = <200000000>;
94	cap-mmc-highspeed;
95	mmc-hs200-1_8v;
96	mmc-hs400-1_8v;
97	cap-mmc-hw-reset;
98	no-sdio;
99	no-sd;
100	hs400-ds-delay = <0x12814>;
101	vmmc-supply = <&mt6358_vemc_reg>;
102	vqmmc-supply = <&mt6358_vio18_reg>;
103	assigned-clocks = <&topckgen CLK_TOP_MUX_MSDC50_0>;
104	assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL_CK>;
105	non-removable;
106};
107
108&mmc1 {
109	status = "okay";
110	pinctrl-names = "default", "state_uhs";
111	pinctrl-0 = <&mmc1_pins_default>;
112	pinctrl-1 = <&mmc1_pins_uhs>;
113	bus-width = <4>;
114	max-frequency = <200000000>;
115	cap-sd-highspeed;
116	sd-uhs-sdr50;
117	sd-uhs-sdr104;
118	cap-sdio-irq;
119	no-mmc;
120	no-sd;
121	vmmc-supply = <&mt6358_vmch_reg>;
122	vqmmc-supply = <&mt6358_vmc_reg>;
123	keep-power-in-suspend;
124	enable-sdio-wakeup;
125	non-removable;
126};
127
128&pio {
129	i2c_pins_0: i2c0{
130		pins_i2c{
131			pinmux = <PINMUX_GPIO82__FUNC_SDA0>,
132				 <PINMUX_GPIO83__FUNC_SCL0>;
133			mediatek,pull-up-adv = <3>;
134			mediatek,drive-strength-adv = <00>;
135		};
136	};
137
138	i2c_pins_1: i2c1{
139		pins_i2c{
140			pinmux = <PINMUX_GPIO81__FUNC_SDA1>,
141				 <PINMUX_GPIO84__FUNC_SCL1>;
142			mediatek,pull-up-adv = <3>;
143			mediatek,drive-strength-adv = <00>;
144		};
145	};
146
147	i2c_pins_2: i2c2{
148		pins_i2c{
149			pinmux = <PINMUX_GPIO103__FUNC_SCL2>,
150				 <PINMUX_GPIO104__FUNC_SDA2>;
151			mediatek,pull-up-adv = <3>;
152			mediatek,drive-strength-adv = <00>;
153		};
154	};
155
156	i2c_pins_3: i2c3{
157		pins_i2c{
158			pinmux = <PINMUX_GPIO50__FUNC_SCL3>,
159				 <PINMUX_GPIO51__FUNC_SDA3>;
160			mediatek,pull-up-adv = <3>;
161			mediatek,drive-strength-adv = <00>;
162		};
163	};
164
165	i2c_pins_4: i2c4{
166		pins_i2c{
167			pinmux = <PINMUX_GPIO105__FUNC_SCL4>,
168				 <PINMUX_GPIO106__FUNC_SDA4>;
169			mediatek,pull-up-adv = <3>;
170			mediatek,drive-strength-adv = <00>;
171		};
172	};
173
174	i2c_pins_5: i2c5{
175		pins_i2c{
176			pinmux = <PINMUX_GPIO48__FUNC_SCL5>,
177				 <PINMUX_GPIO49__FUNC_SDA5>;
178			mediatek,pull-up-adv = <3>;
179			mediatek,drive-strength-adv = <00>;
180		};
181	};
182
183	spi_pins_0: spi0{
184		pins_spi{
185			pinmux = <PINMUX_GPIO85__FUNC_SPI0_MI>,
186				 <PINMUX_GPIO86__FUNC_SPI0_CSB>,
187				 <PINMUX_GPIO87__FUNC_SPI0_MO>,
188				 <PINMUX_GPIO88__FUNC_SPI0_CLK>;
189			bias-disable;
190		};
191	};
192
193	mmc0_pins_default: mmc0default {
194		pins_cmd_dat {
195			pinmux = <PINMUX_GPIO123__FUNC_MSDC0_DAT0>,
196				 <PINMUX_GPIO128__FUNC_MSDC0_DAT1>,
197				 <PINMUX_GPIO125__FUNC_MSDC0_DAT2>,
198				 <PINMUX_GPIO132__FUNC_MSDC0_DAT3>,
199				 <PINMUX_GPIO126__FUNC_MSDC0_DAT4>,
200				 <PINMUX_GPIO129__FUNC_MSDC0_DAT5>,
201				 <PINMUX_GPIO127__FUNC_MSDC0_DAT6>,
202				 <PINMUX_GPIO130__FUNC_MSDC0_DAT7>,
203				 <PINMUX_GPIO122__FUNC_MSDC0_CMD>;
204			input-enable;
205			bias-pull-up;
206		};
207
208		pins_clk {
209			pinmux = <PINMUX_GPIO124__FUNC_MSDC0_CLK>;
210			bias-pull-down;
211		};
212
213		pins_rst {
214			pinmux = <PINMUX_GPIO133__FUNC_MSDC0_RSTB>;
215			bias-pull-up;
216		};
217	};
218
219	mmc0_pins_uhs: mmc0 {
220		pins_cmd_dat {
221			pinmux = <PINMUX_GPIO123__FUNC_MSDC0_DAT0>,
222				 <PINMUX_GPIO128__FUNC_MSDC0_DAT1>,
223				 <PINMUX_GPIO125__FUNC_MSDC0_DAT2>,
224				 <PINMUX_GPIO132__FUNC_MSDC0_DAT3>,
225				 <PINMUX_GPIO126__FUNC_MSDC0_DAT4>,
226				 <PINMUX_GPIO129__FUNC_MSDC0_DAT5>,
227				 <PINMUX_GPIO127__FUNC_MSDC0_DAT6>,
228				 <PINMUX_GPIO130__FUNC_MSDC0_DAT7>,
229				 <PINMUX_GPIO122__FUNC_MSDC0_CMD>;
230			input-enable;
231			drive-strength = <MTK_DRIVE_10mA>;
232			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
233		};
234
235		pins_clk {
236			pinmux = <PINMUX_GPIO124__FUNC_MSDC0_CLK>;
237			drive-strength = <MTK_DRIVE_10mA>;
238			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
239		};
240
241		pins_ds {
242			pinmux = <PINMUX_GPIO131__FUNC_MSDC0_DSL>;
243			drive-strength = <MTK_DRIVE_10mA>;
244			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
245		};
246
247		pins_rst {
248			pinmux = <PINMUX_GPIO133__FUNC_MSDC0_RSTB>;
249			drive-strength = <MTK_DRIVE_10mA>;
250			bias-pull-up;
251		};
252	};
253
254	mmc1_pins_default: mmc1default {
255		pins_cmd_dat {
256			pinmux = <PINMUX_GPIO31__FUNC_MSDC1_CMD>,
257				   <PINMUX_GPIO32__FUNC_MSDC1_DAT0>,
258				   <PINMUX_GPIO34__FUNC_MSDC1_DAT1>,
259				   <PINMUX_GPIO33__FUNC_MSDC1_DAT2>,
260				   <PINMUX_GPIO30__FUNC_MSDC1_DAT3>;
261			input-enable;
262			bias-pull-up;
263		};
264
265		pins_clk {
266			pinmux = <PINMUX_GPIO29__FUNC_MSDC1_CLK>;
267			input-enable;
268			bias-pull-down;
269		};
270
271		pins_pmu {
272			pinmux = <PINMUX_GPIO178__FUNC_GPIO178>,
273				   <PINMUX_GPIO166__FUNC_GPIO166>;
274			output-high;
275		};
276	};
277
278	mmc1_pins_uhs: mmc1 {
279		pins_cmd_dat {
280			pinmux = <PINMUX_GPIO31__FUNC_MSDC1_CMD>,
281				   <PINMUX_GPIO32__FUNC_MSDC1_DAT0>,
282				   <PINMUX_GPIO34__FUNC_MSDC1_DAT1>,
283				   <PINMUX_GPIO33__FUNC_MSDC1_DAT2>,
284				   <PINMUX_GPIO30__FUNC_MSDC1_DAT3>;
285			drive-strength = <MTK_DRIVE_6mA>;
286			input-enable;
287			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
288		};
289
290		pins_clk {
291			pinmux = <PINMUX_GPIO29__FUNC_MSDC1_CLK>;
292			drive-strength = <MTK_DRIVE_6mA>;
293			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
294			input-enable;
295		};
296	};
297
298	spi_pins_1: spi1{
299		pins_spi{
300			pinmux = <PINMUX_GPIO161__FUNC_SPI1_A_MI>,
301				 <PINMUX_GPIO162__FUNC_SPI1_A_CSB>,
302				 <PINMUX_GPIO163__FUNC_SPI1_A_MO>,
303				 <PINMUX_GPIO164__FUNC_SPI1_A_CLK>;
304			bias-disable;
305		};
306	};
307
308	spi_pins_2: spi2{
309		pins_spi{
310			pinmux = <PINMUX_GPIO0__FUNC_SPI2_CSB>,
311				 <PINMUX_GPIO1__FUNC_SPI2_MO>,
312				 <PINMUX_GPIO2__FUNC_SPI2_CLK>,
313				 <PINMUX_GPIO94__FUNC_SPI2_MI>;
314			bias-disable;
315		};
316	};
317
318	spi_pins_3: spi3{
319		pins_spi{
320			pinmux = <PINMUX_GPIO21__FUNC_SPI3_MI>,
321				 <PINMUX_GPIO22__FUNC_SPI3_CSB>,
322				 <PINMUX_GPIO23__FUNC_SPI3_MO>,
323				 <PINMUX_GPIO24__FUNC_SPI3_CLK>;
324			bias-disable;
325		};
326	};
327
328	spi_pins_4: spi4{
329		pins_spi{
330			pinmux = <PINMUX_GPIO17__FUNC_SPI4_MI>,
331				 <PINMUX_GPIO18__FUNC_SPI4_CSB>,
332				 <PINMUX_GPIO19__FUNC_SPI4_MO>,
333				 <PINMUX_GPIO20__FUNC_SPI4_CLK>;
334			bias-disable;
335		};
336	};
337
338	spi_pins_5: spi5{
339		pins_spi{
340			pinmux = <PINMUX_GPIO13__FUNC_SPI5_MI>,
341				 <PINMUX_GPIO14__FUNC_SPI5_CSB>,
342				 <PINMUX_GPIO15__FUNC_SPI5_MO>,
343				 <PINMUX_GPIO16__FUNC_SPI5_CLK>;
344			bias-disable;
345		};
346	};
347
348	pwm_pins_1: pwm1 {
349		pins_pwm {
350			pinmux = <PINMUX_GPIO90__FUNC_PWM_A>;
351		};
352	};
353};
354
355&spi0 {
356	pinctrl-names = "default";
357	pinctrl-0 = <&spi_pins_0>;
358	mediatek,pad-select = <0>;
359	status = "okay";
360};
361
362&spi1 {
363	pinctrl-names = "default";
364	pinctrl-0 = <&spi_pins_1>;
365	mediatek,pad-select = <0>;
366	status = "okay";
367};
368
369&spi2 {
370	pinctrl-names = "default";
371	pinctrl-0 = <&spi_pins_2>;
372	mediatek,pad-select = <0>;
373	status = "okay";
374};
375
376&spi3 {
377	pinctrl-names = "default";
378	pinctrl-0 = <&spi_pins_3>;
379	mediatek,pad-select = <0>;
380	status = "okay";
381};
382
383&spi4 {
384	pinctrl-names = "default";
385	pinctrl-0 = <&spi_pins_4>;
386	mediatek,pad-select = <0>;
387	status = "okay";
388};
389
390&spi5 {
391	pinctrl-names = "default";
392	pinctrl-0 = <&spi_pins_5>;
393	mediatek,pad-select = <0>;
394	status = "okay";
395
396};
397
398&uart0 {
399	status = "okay";
400};
401
402&pwm1 {
403	status = "okay";
404	pinctrl-0 = <&pwm_pins_1>;
405	pinctrl-names = "default";
406};
407