1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (c) 2017-2018 MediaTek Inc.
4 * Author: Sean Wang <sean.wang@mediatek.com>
5 *
6 */
7
8/dts-v1/;
9#include <dt-bindings/input/input.h>
10#include "mt7623a.dtsi"
11#include "mt6323.dtsi"
12
13/ {
14	model = "MediaTek MT7623A with eMMC reference board";
15	compatible = "mediatek,mt7623a-rfb-emmc", "mediatek,mt7623";
16
17	aliases {
18		serial2 = &uart2;
19	};
20
21	chosen {
22		stdout-path = "serial2:115200n8";
23	};
24
25	cpus {
26		cpu@0 {
27			proc-supply = <&mt6323_vproc_reg>;
28		};
29
30		cpu@1 {
31			proc-supply = <&mt6323_vproc_reg>;
32		};
33
34		cpu@2 {
35			proc-supply = <&mt6323_vproc_reg>;
36		};
37
38		cpu@3 {
39			proc-supply = <&mt6323_vproc_reg>;
40		};
41	};
42
43	gpio-keys {
44		compatible = "gpio-keys";
45		pinctrl-names = "default";
46		pinctrl-0 = <&key_pins_a>;
47
48		button-factory {
49			label = "factory";
50			linux,code = <BTN_0>;
51			gpios = <&pio 256 GPIO_ACTIVE_LOW>;
52		};
53
54		button-wps {
55			label = "wps";
56			linux,code = <KEY_WPS_BUTTON>;
57			gpios = <&pio 257 GPIO_ACTIVE_HIGH>;
58		};
59	};
60
61	memory@80000000 {
62		device_type = "memory";
63		reg = <0 0x80000000 0 0x20000000>;
64	};
65
66	reg_1p8v: regulator-1p8v {
67		compatible = "regulator-fixed";
68		regulator-name = "fixed-1.8V";
69		regulator-min-microvolt = <1800000>;
70		regulator-max-microvolt = <1800000>;
71		regulator-boot-on;
72		regulator-always-on;
73	};
74
75	reg_3p3v: regulator-3p3v {
76		compatible = "regulator-fixed";
77		regulator-name = "fixed-3.3V";
78		regulator-min-microvolt = <3300000>;
79		regulator-max-microvolt = <3300000>;
80		regulator-boot-on;
81		regulator-always-on;
82	};
83
84	reg_5v: regulator-5v {
85		compatible = "regulator-fixed";
86		regulator-name = "fixed-5V";
87		regulator-min-microvolt = <5000000>;
88		regulator-max-microvolt = <5000000>;
89		regulator-boot-on;
90		regulator-always-on;
91	};
92
93	sound {
94		compatible = "mediatek,mt2701-wm8960-machine";
95		mediatek,platform = <&afe>;
96		audio-routing =
97			"Headphone", "HP_L",
98			"Headphone", "HP_R",
99			"LINPUT1", "AMIC",
100			"RINPUT1", "AMIC";
101		mediatek,audio-codec = <&wm8960>;
102		pinctrl-names = "default";
103		pinctrl-0 = <&i2s0_pins_a>;
104	};
105};
106
107&btif {
108	status = "okay";
109};
110
111&crypto {
112	status = "okay";
113};
114
115&switch0 {
116	ports {
117		port@0 {
118			status = "okay";
119			label = "lan0";
120		};
121
122		port@1 {
123			status = "okay";
124			label = "lan1";
125		};
126
127		port@2 {
128			status = "okay";
129			label = "lan2";
130		};
131
132		port@3 {
133			status = "okay";
134			label = "lan3";
135		};
136
137		port@4 {
138			status = "okay";
139			label = "wan";
140		};
141	};
142};
143
144&i2c0 {
145	pinctrl-names = "default";
146	pinctrl-0 = <&i2c0_pins_a>;
147	status = "okay";
148};
149
150&i2c1 {
151	pinctrl-names = "default";
152	pinctrl-0 = <&i2c1_pins_b>;
153	status = "okay";
154
155	wm8960: wm8960@1a {
156		compatible = "wlf,wm8960";
157		reg = <0x1a>;
158	};
159};
160
161&i2c2 {
162	pinctrl-names = "default";
163	pinctrl-0 = <&i2c2_pins_b>;
164	status = "okay";
165};
166
167&mmc0 {
168	pinctrl-names = "default", "state_uhs";
169	pinctrl-0 = <&mmc0_pins_default>;
170	pinctrl-1 = <&mmc0_pins_uhs>;
171	status = "okay";
172	bus-width = <8>;
173	max-frequency = <50000000>;
174	cap-mmc-highspeed;
175	vmmc-supply = <&reg_3p3v>;
176	vqmmc-supply = <&reg_1p8v>;
177	non-removable;
178};
179
180&mmc1 {
181	pinctrl-names = "default", "state_uhs";
182	pinctrl-0 = <&mmc1_pins_default>;
183	pinctrl-1 = <&mmc1_pins_uhs>;
184	status = "okay";
185	bus-width = <4>;
186	max-frequency = <50000000>;
187	cap-sd-highspeed;
188	cd-gpios = <&pio 261 GPIO_ACTIVE_LOW>;
189	vmmc-supply = <&reg_3p3v>;
190	vqmmc-supply = <&reg_3p3v>;
191};
192
193&pcie {
194	pinctrl-names = "default";
195	pinctrl-0 = <&pcie_default>;
196	status = "okay";
197
198	pcie@0,0 {
199		status = "okay";
200	};
201
202	pcie@1,0 {
203		status = "okay";
204	};
205};
206
207&pcie0_phy {
208	status = "okay";
209};
210
211&pcie1_phy {
212	status = "okay";
213};
214
215&pwm {
216	pinctrl-names = "default";
217	pinctrl-0 = <&pwm_pins_a>;
218	status = "okay";
219};
220
221&spi0 {
222	pinctrl-names = "default";
223	pinctrl-0 = <&spi0_pins_a>;
224	status = "okay";
225};
226
227&spi1 {
228	pinctrl-names = "default";
229	pinctrl-0 = <&spi1_pins_a>;
230	status = "okay";
231};
232
233&uart2 {
234	pinctrl-names = "default";
235	pinctrl-0 = <&uart2_pins_b>;
236	status = "okay";
237};
238
239&usb1 {
240	vusb33-supply = <&reg_3p3v>;
241	vbus-supply = <&reg_5v>;
242	status = "okay";
243};
244
245&u3phy1 {
246	status = "okay";
247};
248