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 "mt7623a.dtsi"
11*724ba675SRob Herring#include "mt6323.dtsi"
12*724ba675SRob Herring
13*724ba675SRob Herring/ {
14*724ba675SRob Herring	model = "MediaTek MT7623A with NAND reference board";
15*724ba675SRob Herring	compatible = "mediatek,mt7623a-rfb-nand", "mediatek,mt7623";
16*724ba675SRob Herring
17*724ba675SRob Herring	aliases {
18*724ba675SRob Herring		serial2 = &uart2;
19*724ba675SRob Herring	};
20*724ba675SRob Herring
21*724ba675SRob Herring	chosen {
22*724ba675SRob Herring		stdout-path = "serial2:115200n8";
23*724ba675SRob Herring	};
24*724ba675SRob Herring
25*724ba675SRob Herring	cpus {
26*724ba675SRob Herring		cpu@0 {
27*724ba675SRob Herring			proc-supply = <&mt6323_vproc_reg>;
28*724ba675SRob Herring		};
29*724ba675SRob Herring
30*724ba675SRob Herring		cpu@1 {
31*724ba675SRob Herring			proc-supply = <&mt6323_vproc_reg>;
32*724ba675SRob Herring		};
33*724ba675SRob Herring
34*724ba675SRob Herring		cpu@2 {
35*724ba675SRob Herring			proc-supply = <&mt6323_vproc_reg>;
36*724ba675SRob Herring		};
37*724ba675SRob Herring
38*724ba675SRob Herring		cpu@3 {
39*724ba675SRob Herring			proc-supply = <&mt6323_vproc_reg>;
40*724ba675SRob Herring		};
41*724ba675SRob Herring	};
42*724ba675SRob Herring
43*724ba675SRob Herring	gpio-keys {
44*724ba675SRob Herring		compatible = "gpio-keys";
45*724ba675SRob Herring		pinctrl-names = "default";
46*724ba675SRob Herring		pinctrl-0 = <&key_pins_a>;
47*724ba675SRob Herring
48*724ba675SRob Herring		button-factory {
49*724ba675SRob Herring			label = "factory";
50*724ba675SRob Herring			linux,code = <BTN_0>;
51*724ba675SRob Herring			gpios = <&pio 256 GPIO_ACTIVE_LOW>;
52*724ba675SRob Herring		};
53*724ba675SRob Herring
54*724ba675SRob Herring		button-wps {
55*724ba675SRob Herring			label = "wps";
56*724ba675SRob Herring			linux,code = <KEY_WPS_BUTTON>;
57*724ba675SRob Herring			gpios = <&pio 257 GPIO_ACTIVE_HIGH>;
58*724ba675SRob Herring		};
59*724ba675SRob Herring	};
60*724ba675SRob Herring
61*724ba675SRob Herring	memory@80000000 {
62*724ba675SRob Herring		device_type = "memory";
63*724ba675SRob Herring		reg = <0 0x80000000 0 0x20000000>;
64*724ba675SRob Herring	};
65*724ba675SRob Herring
66*724ba675SRob Herring	reg_1p8v: regulator-1p8v {
67*724ba675SRob Herring		compatible = "regulator-fixed";
68*724ba675SRob Herring		regulator-name = "fixed-1.8V";
69*724ba675SRob Herring		regulator-min-microvolt = <1800000>;
70*724ba675SRob Herring		regulator-max-microvolt = <1800000>;
71*724ba675SRob Herring		regulator-boot-on;
72*724ba675SRob Herring		regulator-always-on;
73*724ba675SRob Herring	};
74*724ba675SRob Herring
75*724ba675SRob Herring	reg_3p3v: regulator-3p3v {
76*724ba675SRob Herring		compatible = "regulator-fixed";
77*724ba675SRob Herring		regulator-name = "fixed-3.3V";
78*724ba675SRob Herring		regulator-min-microvolt = <3300000>;
79*724ba675SRob Herring		regulator-max-microvolt = <3300000>;
80*724ba675SRob Herring		regulator-boot-on;
81*724ba675SRob Herring		regulator-always-on;
82*724ba675SRob Herring	};
83*724ba675SRob Herring
84*724ba675SRob Herring	reg_5v: regulator-5v {
85*724ba675SRob Herring		compatible = "regulator-fixed";
86*724ba675SRob Herring		regulator-name = "fixed-5V";
87*724ba675SRob Herring		regulator-min-microvolt = <5000000>;
88*724ba675SRob Herring		regulator-max-microvolt = <5000000>;
89*724ba675SRob Herring		regulator-boot-on;
90*724ba675SRob Herring		regulator-always-on;
91*724ba675SRob Herring	};
92*724ba675SRob Herring
93*724ba675SRob Herring	sound {
94*724ba675SRob Herring		compatible = "mediatek,mt2701-wm8960-machine";
95*724ba675SRob Herring		mediatek,platform = <&afe>;
96*724ba675SRob Herring		audio-routing =
97*724ba675SRob Herring			"Headphone", "HP_L",
98*724ba675SRob Herring			"Headphone", "HP_R",
99*724ba675SRob Herring			"LINPUT1", "AMIC",
100*724ba675SRob Herring			"RINPUT1", "AMIC";
101*724ba675SRob Herring		mediatek,audio-codec = <&wm8960>;
102*724ba675SRob Herring		pinctrl-names = "default";
103*724ba675SRob Herring		pinctrl-0 = <&i2s0_pins_a>;
104*724ba675SRob Herring	};
105*724ba675SRob Herring};
106*724ba675SRob Herring
107*724ba675SRob Herring&bch {
108*724ba675SRob Herring	status = "okay";
109*724ba675SRob Herring};
110*724ba675SRob Herring
111*724ba675SRob Herring&btif {
112*724ba675SRob Herring	status = "okay";
113*724ba675SRob Herring};
114*724ba675SRob Herring
115*724ba675SRob Herring&crypto {
116*724ba675SRob Herring	status = "okay";
117*724ba675SRob Herring};
118*724ba675SRob Herring
119*724ba675SRob Herring&switch0 {
120*724ba675SRob Herring	ports {
121*724ba675SRob Herring		port@0 {
122*724ba675SRob Herring			status = "okay";
123*724ba675SRob Herring			label = "lan0";
124*724ba675SRob Herring		};
125*724ba675SRob Herring
126*724ba675SRob Herring		port@1 {
127*724ba675SRob Herring			status = "okay";
128*724ba675SRob Herring			label = "lan1";
129*724ba675SRob Herring		};
130*724ba675SRob Herring
131*724ba675SRob Herring		port@2 {
132*724ba675SRob Herring			status = "okay";
133*724ba675SRob Herring			label = "lan2";
134*724ba675SRob Herring		};
135*724ba675SRob Herring
136*724ba675SRob Herring		port@3 {
137*724ba675SRob Herring			status = "okay";
138*724ba675SRob Herring			label = "lan3";
139*724ba675SRob Herring		};
140*724ba675SRob Herring
141*724ba675SRob Herring		port@4 {
142*724ba675SRob Herring			status = "okay";
143*724ba675SRob Herring			label = "wan";
144*724ba675SRob Herring		};
145*724ba675SRob Herring	};
146*724ba675SRob Herring};
147*724ba675SRob Herring
148*724ba675SRob Herring&i2c0 {
149*724ba675SRob Herring	pinctrl-names = "default";
150*724ba675SRob Herring	pinctrl-0 = <&i2c0_pins_a>;
151*724ba675SRob Herring	status = "okay";
152*724ba675SRob Herring};
153*724ba675SRob Herring
154*724ba675SRob Herring&i2c1 {
155*724ba675SRob Herring	pinctrl-names = "default";
156*724ba675SRob Herring	pinctrl-0 = <&i2c1_pins_b>;
157*724ba675SRob Herring	status = "okay";
158*724ba675SRob Herring
159*724ba675SRob Herring	wm8960: wm8960@1a {
160*724ba675SRob Herring		compatible = "wlf,wm8960";
161*724ba675SRob Herring		reg = <0x1a>;
162*724ba675SRob Herring	};
163*724ba675SRob Herring};
164*724ba675SRob Herring
165*724ba675SRob Herring&i2c2 {
166*724ba675SRob Herring	pinctrl-names = "default";
167*724ba675SRob Herring	pinctrl-0 = <&i2c2_pins_b>;
168*724ba675SRob Herring	status = "okay";
169*724ba675SRob Herring};
170*724ba675SRob Herring
171*724ba675SRob Herring&mmc1 {
172*724ba675SRob Herring	pinctrl-names = "default", "state_uhs";
173*724ba675SRob Herring	pinctrl-0 = <&mmc1_pins_default>;
174*724ba675SRob Herring	pinctrl-1 = <&mmc1_pins_uhs>;
175*724ba675SRob Herring	status = "okay";
176*724ba675SRob Herring	bus-width = <4>;
177*724ba675SRob Herring	max-frequency = <50000000>;
178*724ba675SRob Herring	cap-sd-highspeed;
179*724ba675SRob Herring	cd-gpios = <&pio 261 GPIO_ACTIVE_LOW>;
180*724ba675SRob Herring	vmmc-supply = <&reg_3p3v>;
181*724ba675SRob Herring	vqmmc-supply = <&reg_3p3v>;
182*724ba675SRob Herring};
183*724ba675SRob Herring
184*724ba675SRob Herring&nandc {
185*724ba675SRob Herring	pinctrl-names = "default";
186*724ba675SRob Herring	pinctrl-0 = <&nand_pins_default>;
187*724ba675SRob Herring	status = "okay";
188*724ba675SRob Herring
189*724ba675SRob Herring	nand@0 {
190*724ba675SRob Herring		reg = <0>;
191*724ba675SRob Herring		spare_per_sector = <64>;
192*724ba675SRob Herring		nand-ecc-mode = "hw";
193*724ba675SRob Herring		nand-ecc-strength = <12>;
194*724ba675SRob Herring		nand-ecc-step-size = <1024>;
195*724ba675SRob Herring
196*724ba675SRob Herring		partitions {
197*724ba675SRob Herring			compatible = "fixed-partitions";
198*724ba675SRob Herring			#address-cells = <1>;
199*724ba675SRob Herring			#size-cells = <1>;
200*724ba675SRob Herring
201*724ba675SRob Herring			partition@0 {
202*724ba675SRob Herring				label = "preloader";
203*724ba675SRob Herring				reg = <0x0 0x40000>;
204*724ba675SRob Herring			};
205*724ba675SRob Herring
206*724ba675SRob Herring			partition@40000 {
207*724ba675SRob Herring				label = "uboot";
208*724ba675SRob Herring				reg = <0x40000 0x80000>;
209*724ba675SRob Herring			};
210*724ba675SRob Herring
211*724ba675SRob Herring			partition@c0000 {
212*724ba675SRob Herring				label = "uboot-env";
213*724ba675SRob Herring				reg = <0xC0000 0x40000>;
214*724ba675SRob Herring			};
215*724ba675SRob Herring
216*724ba675SRob Herring			partition@140000 {
217*724ba675SRob Herring				label = "bootimg";
218*724ba675SRob Herring				reg = <0x140000 0x2000000>;
219*724ba675SRob Herring			};
220*724ba675SRob Herring
221*724ba675SRob Herring			partition@2140000 {
222*724ba675SRob Herring				label = "recovery";
223*724ba675SRob Herring				reg = <0x2140000 0x2000000>;
224*724ba675SRob Herring			};
225*724ba675SRob Herring
226*724ba675SRob Herring			partition@4140000 {
227*724ba675SRob Herring				label = "rootfs";
228*724ba675SRob Herring				reg = <0x4140000 0x1000000>;
229*724ba675SRob Herring			};
230*724ba675SRob Herring
231*724ba675SRob Herring			partition@5140000 {
232*724ba675SRob Herring				label = "usrdata";
233*724ba675SRob Herring				reg = <0x5140000 0x1000000>;
234*724ba675SRob Herring			};
235*724ba675SRob Herring		};
236*724ba675SRob Herring	};
237*724ba675SRob Herring};
238*724ba675SRob Herring
239*724ba675SRob Herring&pcie {
240*724ba675SRob Herring	pinctrl-names = "default";
241*724ba675SRob Herring	pinctrl-0 = <&pcie_default>;
242*724ba675SRob Herring	status = "okay";
243*724ba675SRob Herring
244*724ba675SRob Herring	pcie@0,0 {
245*724ba675SRob Herring		status = "okay";
246*724ba675SRob Herring	};
247*724ba675SRob Herring
248*724ba675SRob Herring	pcie@1,0 {
249*724ba675SRob Herring		status = "okay";
250*724ba675SRob Herring	};
251*724ba675SRob Herring};
252*724ba675SRob Herring
253*724ba675SRob Herring&pcie0_phy {
254*724ba675SRob Herring	status = "okay";
255*724ba675SRob Herring};
256*724ba675SRob Herring
257*724ba675SRob Herring&pcie1_phy {
258*724ba675SRob Herring	status = "okay";
259*724ba675SRob Herring};
260*724ba675SRob Herring
261*724ba675SRob Herring&pwm {
262*724ba675SRob Herring	pinctrl-names = "default";
263*724ba675SRob Herring	pinctrl-0 = <&pwm_pins_a>;
264*724ba675SRob Herring	status = "okay";
265*724ba675SRob Herring};
266*724ba675SRob Herring
267*724ba675SRob Herring&spi0 {
268*724ba675SRob Herring	pinctrl-names = "default";
269*724ba675SRob Herring	pinctrl-0 = <&spi0_pins_a>;
270*724ba675SRob Herring	status = "okay";
271*724ba675SRob Herring};
272*724ba675SRob Herring
273*724ba675SRob Herring&spi1 {
274*724ba675SRob Herring	pinctrl-names = "default";
275*724ba675SRob Herring	pinctrl-0 = <&spi1_pins_a>;
276*724ba675SRob Herring	status = "okay";
277*724ba675SRob Herring};
278*724ba675SRob Herring
279*724ba675SRob Herring&uart2 {
280*724ba675SRob Herring	pinctrl-names = "default";
281*724ba675SRob Herring	pinctrl-0 = <&uart2_pins_b>;
282*724ba675SRob Herring	status = "okay";
283*724ba675SRob Herring};
284*724ba675SRob Herring
285*724ba675SRob Herring&usb1 {
286*724ba675SRob Herring	vusb33-supply = <&reg_3p3v>;
287*724ba675SRob Herring	vbus-supply = <&reg_5v>;
288*724ba675SRob Herring	status = "okay";
289*724ba675SRob Herring};
290*724ba675SRob Herring
291*724ba675SRob Herring&u3phy1 {
292*724ba675SRob Herring	status = "okay";
293*724ba675SRob Herring};
294