1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (c) 2021 BayLibre, SAS.
4 * Author: Fabien Parent <fparent@baylibre.com>
5 */
6
7/dts-v1/;
8
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/input/input.h>
11#include "mt8183.dtsi"
12#include "mt6358.dtsi"
13
14/ {
15	model = "Pumpkin MT8183";
16	compatible = "mediatek,mt8183-pumpkin", "mediatek,mt8183";
17
18	aliases {
19		serial0 = &uart0;
20	};
21
22	memory@40000000 {
23		device_type = "memory";
24		reg = <0 0x40000000 0 0x80000000>;
25	};
26
27	chosen {
28		stdout-path = "serial0:921600n8";
29	};
30
31	reserved-memory {
32		#address-cells = <2>;
33		#size-cells = <2>;
34		ranges;
35
36		scp_mem_reserved: scp_mem_region@50000000 {
37			compatible = "shared-dma-pool";
38			reg = <0 0x50000000 0 0x2900000>;
39			no-map;
40		};
41	};
42
43	leds {
44		compatible = "gpio-leds";
45
46		led-red {
47			label = "red";
48			gpios = <&pio 155 GPIO_ACTIVE_HIGH>;
49			default-state = "off";
50		};
51
52		led-green {
53			label = "green";
54			gpios = <&pio 156 GPIO_ACTIVE_HIGH>;
55			default-state = "off";
56		};
57	};
58
59	thermistor {
60		compatible = "murata,ncp03wf104";
61		pullup-uv = <1800000>;
62		pullup-ohm = <390000>;
63		pulldown-ohm = <0>;
64		io-channels = <&auxadc 0>;
65	};
66};
67
68&auxadc {
69	status = "okay";
70};
71
72&gpu {
73	mali-supply = <&mt6358_vgpu_reg>;
74	sram-supply = <&mt6358_vsram_gpu_reg>;
75};
76
77&i2c0 {
78	pinctrl-names = "default";
79	pinctrl-0 = <&i2c_pins_0>;
80	status = "okay";
81	clock-frequency = <100000>;
82};
83
84&i2c1 {
85	pinctrl-names = "default";
86	pinctrl-0 = <&i2c_pins_1>;
87	status = "okay";
88	clock-frequency = <100000>;
89};
90
91&i2c2 {
92	pinctrl-names = "default";
93	pinctrl-0 = <&i2c_pins_2>;
94	status = "okay";
95	clock-frequency = <100000>;
96};
97
98&i2c3 {
99	pinctrl-names = "default";
100	pinctrl-0 = <&i2c_pins_3>;
101	status = "okay";
102	clock-frequency = <100000>;
103};
104
105&i2c4 {
106	pinctrl-names = "default";
107	pinctrl-0 = <&i2c_pins_4>;
108	status = "okay";
109	clock-frequency = <100000>;
110};
111
112&i2c5 {
113	pinctrl-names = "default";
114	pinctrl-0 = <&i2c_pins_5>;
115	status = "okay";
116	clock-frequency = <100000>;
117};
118
119&i2c6 {
120	pinctrl-names = "default";
121	pinctrl-0 = <&i2c6_pins>;
122	status = "okay";
123	clock-frequency = <100000>;
124};
125
126&keyboard {
127	pinctrl-names = "default";
128	pinctrl-0 = <&keyboard_pins>;
129	status = "okay";
130	linux,keymap = <MATRIX_KEY(0x00, 0x00, KEY_VOLUMEDOWN)
131			MATRIX_KEY(0x01, 0x00, KEY_VOLUMEUP)>;
132	keypad,num-rows = <2>;
133	keypad,num-columns = <1>;
134	debounce-delay-ms = <32>;
135	mediatek,keys-per-group = <2>;
136};
137
138&mmc0 {
139	status = "okay";
140	pinctrl-names = "default", "state_uhs";
141	pinctrl-0 = <&mmc0_pins_default>;
142	pinctrl-1 = <&mmc0_pins_uhs>;
143	bus-width = <8>;
144	max-frequency = <200000000>;
145	cap-mmc-highspeed;
146	mmc-hs200-1_8v;
147	mmc-hs400-1_8v;
148	cap-mmc-hw-reset;
149	no-sdio;
150	no-sd;
151	hs400-ds-delay = <0x12814>;
152	vmmc-supply = <&mt6358_vemc_reg>;
153	vqmmc-supply = <&mt6358_vio18_reg>;
154	assigned-clocks = <&topckgen CLK_TOP_MUX_MSDC50_0>;
155	assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL_CK>;
156	non-removable;
157};
158
159&mmc1 {
160	status = "okay";
161	pinctrl-names = "default", "state_uhs";
162	pinctrl-0 = <&mmc1_pins_default>;
163	pinctrl-1 = <&mmc1_pins_uhs>;
164	bus-width = <4>;
165	max-frequency = <200000000>;
166	cap-sd-highspeed;
167	sd-uhs-sdr50;
168	sd-uhs-sdr104;
169	cap-sdio-irq;
170	no-mmc;
171	no-sd;
172	vmmc-supply = <&mt6358_vmch_reg>;
173	vqmmc-supply = <&mt6358_vmc_reg>;
174	keep-power-in-suspend;
175	wakeup-source;
176	non-removable;
177};
178
179&pio {
180	i2c_pins_0: i2c0 {
181		pins_i2c{
182			pinmux = <PINMUX_GPIO82__FUNC_SDA0>,
183				 <PINMUX_GPIO83__FUNC_SCL0>;
184			mediatek,pull-up-adv = <3>;
185			mediatek,drive-strength-adv = <00>;
186		};
187	};
188
189	i2c_pins_1: i2c1 {
190		pins_i2c{
191			pinmux = <PINMUX_GPIO81__FUNC_SDA1>,
192				 <PINMUX_GPIO84__FUNC_SCL1>;
193			mediatek,pull-up-adv = <3>;
194			mediatek,drive-strength-adv = <00>;
195		};
196	};
197
198	i2c_pins_2: i2c2 {
199		pins_i2c{
200			pinmux = <PINMUX_GPIO103__FUNC_SCL2>,
201				 <PINMUX_GPIO104__FUNC_SDA2>;
202			mediatek,pull-up-adv = <3>;
203			mediatek,drive-strength-adv = <00>;
204		};
205	};
206
207	i2c_pins_3: i2c3 {
208		pins_i2c{
209			pinmux = <PINMUX_GPIO50__FUNC_SCL3>,
210				 <PINMUX_GPIO51__FUNC_SDA3>;
211			mediatek,pull-up-adv = <3>;
212			mediatek,drive-strength-adv = <00>;
213		};
214	};
215
216	i2c_pins_4: i2c4 {
217		pins_i2c{
218			pinmux = <PINMUX_GPIO105__FUNC_SCL4>,
219				 <PINMUX_GPIO106__FUNC_SDA4>;
220			mediatek,pull-up-adv = <3>;
221			mediatek,drive-strength-adv = <00>;
222		};
223	};
224
225	i2c_pins_5: i2c5 {
226		pins_i2c{
227			pinmux = <PINMUX_GPIO48__FUNC_SCL5>,
228				 <PINMUX_GPIO49__FUNC_SDA5>;
229			mediatek,pull-up-adv = <3>;
230			mediatek,drive-strength-adv = <00>;
231		};
232	};
233
234	i2c6_pins: i2c6 {
235		pins_cmd_dat {
236			pinmux = <PINMUX_GPIO113__FUNC_SCL6>,
237				 <PINMUX_GPIO114__FUNC_SDA6>;
238			mediatek,pull-up-adv = <3>;
239		};
240	};
241
242	keyboard_pins: keyboard {
243		pins_keyboard {
244			pinmux = <PINMUX_GPIO91__FUNC_KPROW1>,
245				 <PINMUX_GPIO92__FUNC_KPROW0>,
246				 <PINMUX_GPIO93__FUNC_KPCOL0>;
247		};
248	};
249
250	mmc0_pins_default: mmc0-pins-default {
251		pins_cmd_dat {
252			pinmux = <PINMUX_GPIO123__FUNC_MSDC0_DAT0>,
253				 <PINMUX_GPIO128__FUNC_MSDC0_DAT1>,
254				 <PINMUX_GPIO125__FUNC_MSDC0_DAT2>,
255				 <PINMUX_GPIO132__FUNC_MSDC0_DAT3>,
256				 <PINMUX_GPIO126__FUNC_MSDC0_DAT4>,
257				 <PINMUX_GPIO129__FUNC_MSDC0_DAT5>,
258				 <PINMUX_GPIO127__FUNC_MSDC0_DAT6>,
259				 <PINMUX_GPIO130__FUNC_MSDC0_DAT7>,
260				 <PINMUX_GPIO122__FUNC_MSDC0_CMD>;
261			input-enable;
262			drive-strength = <MTK_DRIVE_14mA>;
263			mediatek,pull-up-adv = <01>;
264		};
265
266		pins_clk {
267			pinmux = <PINMUX_GPIO124__FUNC_MSDC0_CLK>;
268			drive-strength = <MTK_DRIVE_14mA>;
269			mediatek,pull-down-adv = <10>;
270		};
271
272		pins_rst {
273			pinmux = <PINMUX_GPIO133__FUNC_MSDC0_RSTB>;
274			drive-strength = <MTK_DRIVE_14mA>;
275			mediatek,pull-down-adv = <01>;
276		};
277	};
278
279	mmc0_pins_uhs: mmc0-pins-uhs {
280		pins_cmd_dat {
281			pinmux = <PINMUX_GPIO123__FUNC_MSDC0_DAT0>,
282				 <PINMUX_GPIO128__FUNC_MSDC0_DAT1>,
283				 <PINMUX_GPIO125__FUNC_MSDC0_DAT2>,
284				 <PINMUX_GPIO132__FUNC_MSDC0_DAT3>,
285				 <PINMUX_GPIO126__FUNC_MSDC0_DAT4>,
286				 <PINMUX_GPIO129__FUNC_MSDC0_DAT5>,
287				 <PINMUX_GPIO127__FUNC_MSDC0_DAT6>,
288				 <PINMUX_GPIO130__FUNC_MSDC0_DAT7>,
289				 <PINMUX_GPIO122__FUNC_MSDC0_CMD>;
290			input-enable;
291			drive-strength = <MTK_DRIVE_14mA>;
292			mediatek,pull-up-adv = <01>;
293		};
294
295		pins_clk {
296			pinmux = <PINMUX_GPIO124__FUNC_MSDC0_CLK>;
297			drive-strength = <MTK_DRIVE_14mA>;
298			mediatek,pull-down-adv = <10>;
299		};
300
301		pins_ds {
302			pinmux = <PINMUX_GPIO131__FUNC_MSDC0_DSL>;
303			drive-strength = <MTK_DRIVE_14mA>;
304			mediatek,pull-down-adv = <10>;
305		};
306
307		pins_rst {
308			pinmux = <PINMUX_GPIO133__FUNC_MSDC0_RSTB>;
309			drive-strength = <MTK_DRIVE_14mA>;
310			mediatek,pull-up-adv = <01>;
311		};
312	};
313
314	mmc1_pins_default: mmc1-pins-default {
315		pins_cmd_dat {
316			pinmux = <PINMUX_GPIO31__FUNC_MSDC1_CMD>,
317				 <PINMUX_GPIO32__FUNC_MSDC1_DAT0>,
318				 <PINMUX_GPIO34__FUNC_MSDC1_DAT1>,
319				 <PINMUX_GPIO33__FUNC_MSDC1_DAT2>,
320				 <PINMUX_GPIO30__FUNC_MSDC1_DAT3>;
321			input-enable;
322			mediatek,pull-up-adv = <10>;
323		};
324
325		pins_clk {
326			pinmux = <PINMUX_GPIO29__FUNC_MSDC1_CLK>;
327			input-enable;
328			mediatek,pull-down-adv = <10>;
329		};
330
331		pins_pmu {
332			pinmux = <PINMUX_GPIO178__FUNC_GPIO178>;
333			output-high;
334		};
335	};
336
337	mmc1_pins_uhs: mmc1-pins-uhs {
338		pins_cmd_dat {
339			pinmux = <PINMUX_GPIO31__FUNC_MSDC1_CMD>,
340				 <PINMUX_GPIO32__FUNC_MSDC1_DAT0>,
341				 <PINMUX_GPIO34__FUNC_MSDC1_DAT1>,
342				 <PINMUX_GPIO33__FUNC_MSDC1_DAT2>,
343				 <PINMUX_GPIO30__FUNC_MSDC1_DAT3>;
344			drive-strength = <MTK_DRIVE_6mA>;
345			input-enable;
346			mediatek,pull-up-adv = <10>;
347		};
348
349		pins_clk {
350			pinmux = <PINMUX_GPIO29__FUNC_MSDC1_CLK>;
351			drive-strength = <MTK_DRIVE_8mA>;
352			mediatek,pull-down-adv = <10>;
353			input-enable;
354		};
355	};
356};
357
358&mfg {
359	domain-supply = <&mt6358_vgpu_reg>;
360};
361
362&cpu0 {
363	proc-supply = <&mt6358_vproc12_reg>;
364};
365
366&cpu1 {
367	proc-supply = <&mt6358_vproc12_reg>;
368};
369
370&cpu2 {
371	proc-supply = <&mt6358_vproc12_reg>;
372};
373
374&cpu3 {
375	proc-supply = <&mt6358_vproc12_reg>;
376};
377
378&cpu4 {
379	proc-supply = <&mt6358_vproc11_reg>;
380};
381
382&cpu5 {
383	proc-supply = <&mt6358_vproc11_reg>;
384};
385
386&cpu6 {
387	proc-supply = <&mt6358_vproc11_reg>;
388};
389
390&cpu7 {
391	proc-supply = <&mt6358_vproc11_reg>;
392};
393
394&uart0 {
395	status = "okay";
396};
397
398&scp {
399	status = "okay";
400};
401
402&dsi0 {
403	status = "disabled";
404};
405