1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Copyright (c) 2017-2018 MediaTek Inc.
4*724ba675SRob Herring * Author: Sean Wang <sean.wang@mediatek.com>
5*724ba675SRob Herring *
6*724ba675SRob Herring */
7*724ba675SRob Herring
8*724ba675SRob Herring/dts-v1/;
9*724ba675SRob Herring#include <dt-bindings/input/input.h>
10*724ba675SRob Herring#include "mt7623n.dtsi"
11*724ba675SRob Herring#include "mt6323.dtsi"
12*724ba675SRob Herring
13*724ba675SRob Herring/ {
14*724ba675SRob Herring	model = "MediaTek MT7623N with eMMC reference board";
15*724ba675SRob Herring	compatible = "mediatek,mt7623n-rfb-emmc", "mediatek,mt7623";
16*724ba675SRob Herring
17*724ba675SRob Herring	aliases {
18*724ba675SRob Herring		serial0 = &uart0;
19*724ba675SRob Herring		serial1 = &uart1;
20*724ba675SRob Herring		serial2 = &uart2;
21*724ba675SRob Herring	};
22*724ba675SRob Herring
23*724ba675SRob Herring	chosen {
24*724ba675SRob Herring		stdout-path = "serial2:115200n8";
25*724ba675SRob Herring	};
26*724ba675SRob Herring
27*724ba675SRob Herring	connector {
28*724ba675SRob Herring		compatible = "hdmi-connector";
29*724ba675SRob Herring		label = "hdmi";
30*724ba675SRob Herring		type = "d";
31*724ba675SRob Herring		ddc-i2c-bus = <&hdmiddc0>;
32*724ba675SRob Herring
33*724ba675SRob Herring		port {
34*724ba675SRob Herring			hdmi_connector_in: endpoint {
35*724ba675SRob Herring				remote-endpoint = <&hdmi0_out>;
36*724ba675SRob Herring			};
37*724ba675SRob Herring		};
38*724ba675SRob Herring	};
39*724ba675SRob Herring
40*724ba675SRob Herring	cpus {
41*724ba675SRob Herring		cpu@0 {
42*724ba675SRob Herring			proc-supply = <&mt6323_vproc_reg>;
43*724ba675SRob Herring		};
44*724ba675SRob Herring
45*724ba675SRob Herring		cpu@1 {
46*724ba675SRob Herring			proc-supply = <&mt6323_vproc_reg>;
47*724ba675SRob Herring		};
48*724ba675SRob Herring
49*724ba675SRob Herring		cpu@2 {
50*724ba675SRob Herring			proc-supply = <&mt6323_vproc_reg>;
51*724ba675SRob Herring		};
52*724ba675SRob Herring
53*724ba675SRob Herring		cpu@3 {
54*724ba675SRob Herring			proc-supply = <&mt6323_vproc_reg>;
55*724ba675SRob Herring		};
56*724ba675SRob Herring	};
57*724ba675SRob Herring
58*724ba675SRob Herring	gpio-keys {
59*724ba675SRob Herring		compatible = "gpio-keys";
60*724ba675SRob Herring		pinctrl-names = "default";
61*724ba675SRob Herring		pinctrl-0 = <&key_pins_a>;
62*724ba675SRob Herring
63*724ba675SRob Herring		button-factory {
64*724ba675SRob Herring			label = "factory";
65*724ba675SRob Herring			linux,code = <BTN_0>;
66*724ba675SRob Herring			gpios = <&pio 256 GPIO_ACTIVE_LOW>;
67*724ba675SRob Herring		};
68*724ba675SRob Herring
69*724ba675SRob Herring		button-wps {
70*724ba675SRob Herring			label = "wps";
71*724ba675SRob Herring			linux,code = <KEY_WPS_BUTTON>;
72*724ba675SRob Herring			gpios = <&pio 257 GPIO_ACTIVE_HIGH>;
73*724ba675SRob Herring		};
74*724ba675SRob Herring	};
75*724ba675SRob Herring
76*724ba675SRob Herring	memory@80000000 {
77*724ba675SRob Herring		device_type = "memory";
78*724ba675SRob Herring		reg = <0 0x80000000 0 0x40000000>;
79*724ba675SRob Herring	};
80*724ba675SRob Herring
81*724ba675SRob Herring	reg_1p8v: regulator-1p8v {
82*724ba675SRob Herring		compatible = "regulator-fixed";
83*724ba675SRob Herring		regulator-name = "fixed-1.8V";
84*724ba675SRob Herring		regulator-min-microvolt = <1800000>;
85*724ba675SRob Herring		regulator-max-microvolt = <1800000>;
86*724ba675SRob Herring		regulator-boot-on;
87*724ba675SRob Herring		regulator-always-on;
88*724ba675SRob Herring	};
89*724ba675SRob Herring
90*724ba675SRob Herring	reg_3p3v: regulator-3p3v {
91*724ba675SRob Herring		compatible = "regulator-fixed";
92*724ba675SRob Herring		regulator-name = "fixed-3.3V";
93*724ba675SRob Herring		regulator-min-microvolt = <3300000>;
94*724ba675SRob Herring		regulator-max-microvolt = <3300000>;
95*724ba675SRob Herring		regulator-boot-on;
96*724ba675SRob Herring		regulator-always-on;
97*724ba675SRob Herring	};
98*724ba675SRob Herring
99*724ba675SRob Herring	reg_5v: regulator-5v {
100*724ba675SRob Herring		compatible = "regulator-fixed";
101*724ba675SRob Herring		regulator-name = "fixed-5V";
102*724ba675SRob Herring		regulator-min-microvolt = <5000000>;
103*724ba675SRob Herring		regulator-max-microvolt = <5000000>;
104*724ba675SRob Herring		regulator-boot-on;
105*724ba675SRob Herring		regulator-always-on;
106*724ba675SRob Herring	};
107*724ba675SRob Herring
108*724ba675SRob Herring	sound {
109*724ba675SRob Herring		compatible = "mediatek,mt2701-wm8960-machine";
110*724ba675SRob Herring		mediatek,platform = <&afe>;
111*724ba675SRob Herring		audio-routing =
112*724ba675SRob Herring			"Headphone", "HP_L",
113*724ba675SRob Herring			"Headphone", "HP_R",
114*724ba675SRob Herring			"LINPUT1", "AMIC",
115*724ba675SRob Herring			"RINPUT1", "AMIC";
116*724ba675SRob Herring		mediatek,audio-codec = <&wm8960>;
117*724ba675SRob Herring		pinctrl-names = "default";
118*724ba675SRob Herring		pinctrl-0 = <&i2s0_pins_a>;
119*724ba675SRob Herring	};
120*724ba675SRob Herring};
121*724ba675SRob Herring
122*724ba675SRob Herring&bls {
123*724ba675SRob Herring	status = "okay";
124*724ba675SRob Herring};
125*724ba675SRob Herring
126*724ba675SRob Herring&btif {
127*724ba675SRob Herring	status = "okay";
128*724ba675SRob Herring};
129*724ba675SRob Herring
130*724ba675SRob Herring&cec {
131*724ba675SRob Herring	status = "okay";
132*724ba675SRob Herring};
133*724ba675SRob Herring
134*724ba675SRob Herring&cir {
135*724ba675SRob Herring	pinctrl-names = "default";
136*724ba675SRob Herring	pinctrl-0 = <&cir_pins_a>;
137*724ba675SRob Herring	status = "okay";
138*724ba675SRob Herring};
139*724ba675SRob Herring
140*724ba675SRob Herring&crypto {
141*724ba675SRob Herring	status = "okay";
142*724ba675SRob Herring};
143*724ba675SRob Herring
144*724ba675SRob Herring&dpi0 {
145*724ba675SRob Herring	status = "okay";
146*724ba675SRob Herring
147*724ba675SRob Herring	ports {
148*724ba675SRob Herring		#address-cells = <1>;
149*724ba675SRob Herring		#size-cells = <0>;
150*724ba675SRob Herring		port@0 {
151*724ba675SRob Herring			reg = <0>;
152*724ba675SRob Herring			dpi0_out: endpoint {
153*724ba675SRob Herring				remote-endpoint = <&hdmi0_in>;
154*724ba675SRob Herring			};
155*724ba675SRob Herring		};
156*724ba675SRob Herring	};
157*724ba675SRob Herring};
158*724ba675SRob Herring
159*724ba675SRob Herring&gmac0 {
160*724ba675SRob Herring	status = "okay";
161*724ba675SRob Herring	phy-mode = "trgmii";
162*724ba675SRob Herring
163*724ba675SRob Herring	fixed-link {
164*724ba675SRob Herring		speed = <1000>;
165*724ba675SRob Herring		full-duplex;
166*724ba675SRob Herring		pause;
167*724ba675SRob Herring	};
168*724ba675SRob Herring};
169*724ba675SRob Herring
170*724ba675SRob Herring&gmac1 {
171*724ba675SRob Herring	status = "okay";
172*724ba675SRob Herring	phy-mode = "rgmii";
173*724ba675SRob Herring	phy-handle = <&phy5>;
174*724ba675SRob Herring};
175*724ba675SRob Herring
176*724ba675SRob Herring&eth {
177*724ba675SRob Herring	status = "okay";
178*724ba675SRob Herring
179*724ba675SRob Herring	mdio-bus {
180*724ba675SRob Herring		#address-cells = <1>;
181*724ba675SRob Herring		#size-cells = <0>;
182*724ba675SRob Herring
183*724ba675SRob Herring		phy5: ethernet-phy@5 {
184*724ba675SRob Herring			reg = <5>;
185*724ba675SRob Herring			phy-mode = "rgmii-rxid";
186*724ba675SRob Herring		};
187*724ba675SRob Herring
188*724ba675SRob Herring		switch@1f {
189*724ba675SRob Herring			compatible = "mediatek,mt7530";
190*724ba675SRob Herring			reg = <0x1f>;
191*724ba675SRob Herring			reset-gpios = <&pio 33 0>;
192*724ba675SRob Herring			core-supply = <&mt6323_vpa_reg>;
193*724ba675SRob Herring			io-supply = <&mt6323_vemc3v3_reg>;
194*724ba675SRob Herring
195*724ba675SRob Herring			ports {
196*724ba675SRob Herring				#address-cells = <1>;
197*724ba675SRob Herring				#size-cells = <0>;
198*724ba675SRob Herring
199*724ba675SRob Herring				port@0 {
200*724ba675SRob Herring					reg = <0>;
201*724ba675SRob Herring					label = "lan0";
202*724ba675SRob Herring				};
203*724ba675SRob Herring
204*724ba675SRob Herring				port@1 {
205*724ba675SRob Herring					reg = <1>;
206*724ba675SRob Herring					label = "lan1";
207*724ba675SRob Herring				};
208*724ba675SRob Herring
209*724ba675SRob Herring				port@2 {
210*724ba675SRob Herring					reg = <2>;
211*724ba675SRob Herring					label = "lan2";
212*724ba675SRob Herring				};
213*724ba675SRob Herring
214*724ba675SRob Herring				port@3 {
215*724ba675SRob Herring					reg = <3>;
216*724ba675SRob Herring					label = "lan3";
217*724ba675SRob Herring				};
218*724ba675SRob Herring
219*724ba675SRob Herring				port@4 {
220*724ba675SRob Herring					reg = <4>;
221*724ba675SRob Herring					label = "wan";
222*724ba675SRob Herring				};
223*724ba675SRob Herring
224*724ba675SRob Herring				port@6 {
225*724ba675SRob Herring					reg = <6>;
226*724ba675SRob Herring					label = "cpu";
227*724ba675SRob Herring					ethernet = <&gmac0>;
228*724ba675SRob Herring					phy-mode = "trgmii";
229*724ba675SRob Herring
230*724ba675SRob Herring					fixed-link {
231*724ba675SRob Herring						speed = <1000>;
232*724ba675SRob Herring						full-duplex;
233*724ba675SRob Herring						pause;
234*724ba675SRob Herring					};
235*724ba675SRob Herring				};
236*724ba675SRob Herring			};
237*724ba675SRob Herring		};
238*724ba675SRob Herring	};
239*724ba675SRob Herring};
240*724ba675SRob Herring
241*724ba675SRob Herring&hdmi0 {
242*724ba675SRob Herring	pinctrl-names = "default";
243*724ba675SRob Herring	pinctrl-0 = <&hdmi_pins_a>;
244*724ba675SRob Herring	status = "okay";
245*724ba675SRob Herring
246*724ba675SRob Herring	ports {
247*724ba675SRob Herring		#address-cells = <1>;
248*724ba675SRob Herring		#size-cells = <0>;
249*724ba675SRob Herring		port@0 {
250*724ba675SRob Herring			reg = <0>;
251*724ba675SRob Herring			hdmi0_in: endpoint {
252*724ba675SRob Herring				remote-endpoint = <&dpi0_out>;
253*724ba675SRob Herring			};
254*724ba675SRob Herring		};
255*724ba675SRob Herring
256*724ba675SRob Herring		port@1 {
257*724ba675SRob Herring			reg = <1>;
258*724ba675SRob Herring			hdmi0_out: endpoint {
259*724ba675SRob Herring				remote-endpoint = <&hdmi_connector_in>;
260*724ba675SRob Herring			};
261*724ba675SRob Herring		};
262*724ba675SRob Herring	};
263*724ba675SRob Herring};
264*724ba675SRob Herring
265*724ba675SRob Herring&hdmiddc0 {
266*724ba675SRob Herring	pinctrl-names = "default";
267*724ba675SRob Herring	pinctrl-0 = <&hdmi_ddc_pins_a>;
268*724ba675SRob Herring	status = "okay";
269*724ba675SRob Herring};
270*724ba675SRob Herring
271*724ba675SRob Herring&hdmi_phy {
272*724ba675SRob Herring	mediatek,ibias = <0xa>;
273*724ba675SRob Herring	mediatek,ibias_up = <0x1c>;
274*724ba675SRob Herring	status = "okay";
275*724ba675SRob Herring};
276*724ba675SRob Herring
277*724ba675SRob Herring&i2c0 {
278*724ba675SRob Herring	pinctrl-names = "default";
279*724ba675SRob Herring	pinctrl-0 = <&i2c0_pins_a>;
280*724ba675SRob Herring	status = "okay";
281*724ba675SRob Herring};
282*724ba675SRob Herring
283*724ba675SRob Herring&i2c1 {
284*724ba675SRob Herring	pinctrl-names = "default";
285*724ba675SRob Herring	pinctrl-0 = <&i2c1_pins_b>;
286*724ba675SRob Herring	status = "okay";
287*724ba675SRob Herring
288*724ba675SRob Herring	wm8960: wm8960@1a {
289*724ba675SRob Herring		compatible = "wlf,wm8960";
290*724ba675SRob Herring		reg = <0x1a>;
291*724ba675SRob Herring	};
292*724ba675SRob Herring};
293*724ba675SRob Herring
294*724ba675SRob Herring&i2c2 {
295*724ba675SRob Herring	pinctrl-names = "default";
296*724ba675SRob Herring	pinctrl-0 = <&i2c2_pins_a>;
297*724ba675SRob Herring	status = "okay";
298*724ba675SRob Herring};
299*724ba675SRob Herring
300*724ba675SRob Herring&mmc0 {
301*724ba675SRob Herring	pinctrl-names = "default", "state_uhs";
302*724ba675SRob Herring	pinctrl-0 = <&mmc0_pins_default>;
303*724ba675SRob Herring	pinctrl-1 = <&mmc0_pins_uhs>;
304*724ba675SRob Herring	status = "okay";
305*724ba675SRob Herring	bus-width = <8>;
306*724ba675SRob Herring	max-frequency = <50000000>;
307*724ba675SRob Herring	cap-mmc-highspeed;
308*724ba675SRob Herring	vmmc-supply = <&reg_3p3v>;
309*724ba675SRob Herring	vqmmc-supply = <&reg_1p8v>;
310*724ba675SRob Herring	non-removable;
311*724ba675SRob Herring};
312*724ba675SRob Herring
313*724ba675SRob Herring&mmc1 {
314*724ba675SRob Herring	pinctrl-names = "default", "state_uhs";
315*724ba675SRob Herring	pinctrl-0 = <&mmc1_pins_default>;
316*724ba675SRob Herring	pinctrl-1 = <&mmc1_pins_uhs>;
317*724ba675SRob Herring	status = "okay";
318*724ba675SRob Herring	bus-width = <4>;
319*724ba675SRob Herring	max-frequency = <50000000>;
320*724ba675SRob Herring	cap-sd-highspeed;
321*724ba675SRob Herring	cd-gpios = <&pio 261 GPIO_ACTIVE_LOW>;
322*724ba675SRob Herring	vmmc-supply = <&reg_3p3v>;
323*724ba675SRob Herring	vqmmc-supply = <&reg_3p3v>;
324*724ba675SRob Herring};
325*724ba675SRob Herring
326*724ba675SRob Herring&pcie {
327*724ba675SRob Herring	pinctrl-names = "default";
328*724ba675SRob Herring	pinctrl-0 = <&pcie_default>;
329*724ba675SRob Herring	status = "okay";
330*724ba675SRob Herring
331*724ba675SRob Herring	pcie@0,0 {
332*724ba675SRob Herring		status = "okay";
333*724ba675SRob Herring	};
334*724ba675SRob Herring
335*724ba675SRob Herring	pcie@1,0 {
336*724ba675SRob Herring		status = "okay";
337*724ba675SRob Herring	};
338*724ba675SRob Herring};
339*724ba675SRob Herring
340*724ba675SRob Herring&pcie0_phy {
341*724ba675SRob Herring	status = "okay";
342*724ba675SRob Herring};
343*724ba675SRob Herring
344*724ba675SRob Herring&pcie1_phy {
345*724ba675SRob Herring	status = "okay";
346*724ba675SRob Herring};
347*724ba675SRob Herring
348*724ba675SRob Herring&pwm {
349*724ba675SRob Herring	pinctrl-names = "default";
350*724ba675SRob Herring	pinctrl-0 = <&pwm_pins_a>;
351*724ba675SRob Herring	status = "okay";
352*724ba675SRob Herring};
353*724ba675SRob Herring
354*724ba675SRob Herring&spi0 {
355*724ba675SRob Herring	pinctrl-names = "default";
356*724ba675SRob Herring	pinctrl-0 = <&spi0_pins_a>;
357*724ba675SRob Herring	status = "okay";
358*724ba675SRob Herring};
359*724ba675SRob Herring
360*724ba675SRob Herring&spi1 {
361*724ba675SRob Herring	pinctrl-names = "default";
362*724ba675SRob Herring	pinctrl-0 = <&spi1_pins_a>;
363*724ba675SRob Herring	status = "okay";
364*724ba675SRob Herring};
365*724ba675SRob Herring
366*724ba675SRob Herring&spi2 {
367*724ba675SRob Herring	pinctrl-names = "default";
368*724ba675SRob Herring	pinctrl-0 = <&spi2_pins_a>;
369*724ba675SRob Herring	status = "okay";
370*724ba675SRob Herring};
371*724ba675SRob Herring
372*724ba675SRob Herring&uart0 {
373*724ba675SRob Herring	pinctrl-names = "default";
374*724ba675SRob Herring	pinctrl-0 = <&uart0_pins_a>;
375*724ba675SRob Herring	status = "okay";
376*724ba675SRob Herring};
377*724ba675SRob Herring
378*724ba675SRob Herring&uart1 {
379*724ba675SRob Herring	pinctrl-names = "default";
380*724ba675SRob Herring	pinctrl-0 = <&uart1_pins_a>;
381*724ba675SRob Herring	status = "okay";
382*724ba675SRob Herring};
383*724ba675SRob Herring
384*724ba675SRob Herring&uart2 {
385*724ba675SRob Herring	pinctrl-names = "default";
386*724ba675SRob Herring	pinctrl-0 = <&uart2_pins_a>;
387*724ba675SRob Herring	status = "okay";
388*724ba675SRob Herring};
389*724ba675SRob Herring
390*724ba675SRob Herring&usb1 {
391*724ba675SRob Herring	vusb33-supply = <&reg_3p3v>;
392*724ba675SRob Herring	vbus-supply = <&reg_5v>;
393*724ba675SRob Herring	status = "okay";
394*724ba675SRob Herring};
395*724ba675SRob Herring
396*724ba675SRob Herring&u3phy1 {
397*724ba675SRob Herring	status = "okay";
398*724ba675SRob Herring};
399