xref: /OK3568_Linux_fs/kernel/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun/*
2*4882a593Smuzhiyun * Copyright (c) 2018 MediaTek Inc.
3*4882a593Smuzhiyun * Author: Ryder Lee <ryder.lee@mediatek.com>
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun * SPDX-License-Identifier: (GPL-2.0 OR MIT)
6*4882a593Smuzhiyun */
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun/dts-v1/;
9*4882a593Smuzhiyun#include <dt-bindings/input/input.h>
10*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h>
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun#include "mt7622.dtsi"
13*4882a593Smuzhiyun#include "mt6380.dtsi"
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun/ {
16*4882a593Smuzhiyun	model = "Bananapi BPI-R64";
17*4882a593Smuzhiyun	compatible = "bananapi,bpi-r64", "mediatek,mt7622";
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun	aliases {
20*4882a593Smuzhiyun		serial0 = &uart0;
21*4882a593Smuzhiyun	};
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun	chosen {
24*4882a593Smuzhiyun		stdout-path = "serial0:115200n8";
25*4882a593Smuzhiyun		bootargs = "earlycon=uart8250,mmio32,0x11002000 swiotlb=512";
26*4882a593Smuzhiyun	};
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun	cpus {
29*4882a593Smuzhiyun		cpu@0 {
30*4882a593Smuzhiyun			proc-supply = <&mt6380_vcpu_reg>;
31*4882a593Smuzhiyun			sram-supply = <&mt6380_vm_reg>;
32*4882a593Smuzhiyun		};
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun		cpu@1 {
35*4882a593Smuzhiyun			proc-supply = <&mt6380_vcpu_reg>;
36*4882a593Smuzhiyun			sram-supply = <&mt6380_vm_reg>;
37*4882a593Smuzhiyun		};
38*4882a593Smuzhiyun	};
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun	gpio-keys {
41*4882a593Smuzhiyun		compatible = "gpio-keys";
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun		factory {
44*4882a593Smuzhiyun			label = "factory";
45*4882a593Smuzhiyun			linux,code = <BTN_0>;
46*4882a593Smuzhiyun			gpios = <&pio 0 GPIO_ACTIVE_HIGH>;
47*4882a593Smuzhiyun		};
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun		wps {
50*4882a593Smuzhiyun			label = "wps";
51*4882a593Smuzhiyun			linux,code = <KEY_WPS_BUTTON>;
52*4882a593Smuzhiyun			gpios = <&pio 102 GPIO_ACTIVE_LOW>;
53*4882a593Smuzhiyun		};
54*4882a593Smuzhiyun	};
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun	leds {
57*4882a593Smuzhiyun		compatible = "gpio-leds";
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun		green {
60*4882a593Smuzhiyun			label = "bpi-r64:pio:green";
61*4882a593Smuzhiyun			gpios = <&pio 89 GPIO_ACTIVE_HIGH>;
62*4882a593Smuzhiyun			default-state = "off";
63*4882a593Smuzhiyun		};
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun		red {
66*4882a593Smuzhiyun			label = "bpi-r64:pio:red";
67*4882a593Smuzhiyun			gpios = <&pio 88 GPIO_ACTIVE_HIGH>;
68*4882a593Smuzhiyun			default-state = "off";
69*4882a593Smuzhiyun		};
70*4882a593Smuzhiyun	};
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun	memory {
73*4882a593Smuzhiyun		reg = <0 0x40000000 0 0x40000000>;
74*4882a593Smuzhiyun	};
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun	reg_1p8v: regulator-1p8v {
77*4882a593Smuzhiyun		compatible = "regulator-fixed";
78*4882a593Smuzhiyun		regulator-name = "fixed-1.8V";
79*4882a593Smuzhiyun		regulator-min-microvolt = <1800000>;
80*4882a593Smuzhiyun		regulator-max-microvolt = <1800000>;
81*4882a593Smuzhiyun		regulator-always-on;
82*4882a593Smuzhiyun	};
83*4882a593Smuzhiyun
84*4882a593Smuzhiyun	reg_3p3v: regulator-3p3v {
85*4882a593Smuzhiyun		compatible = "regulator-fixed";
86*4882a593Smuzhiyun		regulator-name = "fixed-3.3V";
87*4882a593Smuzhiyun		regulator-min-microvolt = <3300000>;
88*4882a593Smuzhiyun		regulator-max-microvolt = <3300000>;
89*4882a593Smuzhiyun		regulator-boot-on;
90*4882a593Smuzhiyun		regulator-always-on;
91*4882a593Smuzhiyun	};
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun	reg_5v: regulator-5v {
94*4882a593Smuzhiyun		compatible = "regulator-fixed";
95*4882a593Smuzhiyun		regulator-name = "fixed-5V";
96*4882a593Smuzhiyun		regulator-min-microvolt = <5000000>;
97*4882a593Smuzhiyun		regulator-max-microvolt = <5000000>;
98*4882a593Smuzhiyun		regulator-boot-on;
99*4882a593Smuzhiyun		regulator-always-on;
100*4882a593Smuzhiyun	};
101*4882a593Smuzhiyun};
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun&bch {
104*4882a593Smuzhiyun	status = "disabled";
105*4882a593Smuzhiyun};
106*4882a593Smuzhiyun
107*4882a593Smuzhiyun&btif {
108*4882a593Smuzhiyun	status = "okay";
109*4882a593Smuzhiyun};
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun&cir {
112*4882a593Smuzhiyun	pinctrl-names = "default";
113*4882a593Smuzhiyun	pinctrl-0 = <&irrx_pins>;
114*4882a593Smuzhiyun	status = "okay";
115*4882a593Smuzhiyun};
116*4882a593Smuzhiyun
117*4882a593Smuzhiyun&eth {
118*4882a593Smuzhiyun	status = "okay";
119*4882a593Smuzhiyun	gmac0: mac@0 {
120*4882a593Smuzhiyun		compatible = "mediatek,eth-mac";
121*4882a593Smuzhiyun		reg = <0>;
122*4882a593Smuzhiyun		phy-mode = "2500base-x";
123*4882a593Smuzhiyun
124*4882a593Smuzhiyun		fixed-link {
125*4882a593Smuzhiyun			speed = <2500>;
126*4882a593Smuzhiyun			full-duplex;
127*4882a593Smuzhiyun			pause;
128*4882a593Smuzhiyun		};
129*4882a593Smuzhiyun	};
130*4882a593Smuzhiyun
131*4882a593Smuzhiyun	gmac1: mac@1 {
132*4882a593Smuzhiyun		compatible = "mediatek,eth-mac";
133*4882a593Smuzhiyun		reg = <1>;
134*4882a593Smuzhiyun		phy-mode = "rgmii";
135*4882a593Smuzhiyun
136*4882a593Smuzhiyun		fixed-link {
137*4882a593Smuzhiyun			speed = <1000>;
138*4882a593Smuzhiyun			full-duplex;
139*4882a593Smuzhiyun			pause;
140*4882a593Smuzhiyun		};
141*4882a593Smuzhiyun	};
142*4882a593Smuzhiyun
143*4882a593Smuzhiyun	mdio: mdio-bus {
144*4882a593Smuzhiyun		#address-cells = <1>;
145*4882a593Smuzhiyun		#size-cells = <0>;
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun		switch@0 {
148*4882a593Smuzhiyun			compatible = "mediatek,mt7531";
149*4882a593Smuzhiyun			reg = <0>;
150*4882a593Smuzhiyun			reset-gpios = <&pio 54 0>;
151*4882a593Smuzhiyun
152*4882a593Smuzhiyun			ports {
153*4882a593Smuzhiyun				#address-cells = <1>;
154*4882a593Smuzhiyun				#size-cells = <0>;
155*4882a593Smuzhiyun
156*4882a593Smuzhiyun				port@0 {
157*4882a593Smuzhiyun					reg = <0>;
158*4882a593Smuzhiyun					label = "wan";
159*4882a593Smuzhiyun				};
160*4882a593Smuzhiyun
161*4882a593Smuzhiyun				port@1 {
162*4882a593Smuzhiyun					reg = <1>;
163*4882a593Smuzhiyun					label = "lan0";
164*4882a593Smuzhiyun				};
165*4882a593Smuzhiyun
166*4882a593Smuzhiyun				port@2 {
167*4882a593Smuzhiyun					reg = <2>;
168*4882a593Smuzhiyun					label = "lan1";
169*4882a593Smuzhiyun				};
170*4882a593Smuzhiyun
171*4882a593Smuzhiyun				port@3 {
172*4882a593Smuzhiyun					reg = <3>;
173*4882a593Smuzhiyun					label = "lan2";
174*4882a593Smuzhiyun				};
175*4882a593Smuzhiyun
176*4882a593Smuzhiyun				port@4 {
177*4882a593Smuzhiyun					reg = <4>;
178*4882a593Smuzhiyun					label = "lan3";
179*4882a593Smuzhiyun				};
180*4882a593Smuzhiyun
181*4882a593Smuzhiyun				port@6 {
182*4882a593Smuzhiyun					reg = <6>;
183*4882a593Smuzhiyun					label = "cpu";
184*4882a593Smuzhiyun					ethernet = <&gmac0>;
185*4882a593Smuzhiyun					phy-mode = "2500base-x";
186*4882a593Smuzhiyun
187*4882a593Smuzhiyun					fixed-link {
188*4882a593Smuzhiyun						speed = <2500>;
189*4882a593Smuzhiyun						full-duplex;
190*4882a593Smuzhiyun						pause;
191*4882a593Smuzhiyun					};
192*4882a593Smuzhiyun				};
193*4882a593Smuzhiyun			};
194*4882a593Smuzhiyun		};
195*4882a593Smuzhiyun
196*4882a593Smuzhiyun	};
197*4882a593Smuzhiyun};
198*4882a593Smuzhiyun
199*4882a593Smuzhiyun&i2c1 {
200*4882a593Smuzhiyun	pinctrl-names = "default";
201*4882a593Smuzhiyun	pinctrl-0 = <&i2c1_pins>;
202*4882a593Smuzhiyun	status = "okay";
203*4882a593Smuzhiyun};
204*4882a593Smuzhiyun
205*4882a593Smuzhiyun&i2c2 {
206*4882a593Smuzhiyun	pinctrl-names = "default";
207*4882a593Smuzhiyun	pinctrl-0 = <&i2c2_pins>;
208*4882a593Smuzhiyun	status = "okay";
209*4882a593Smuzhiyun};
210*4882a593Smuzhiyun
211*4882a593Smuzhiyun&mmc0 {
212*4882a593Smuzhiyun	pinctrl-names = "default", "state_uhs";
213*4882a593Smuzhiyun	pinctrl-0 = <&emmc_pins_default>;
214*4882a593Smuzhiyun	pinctrl-1 = <&emmc_pins_uhs>;
215*4882a593Smuzhiyun	status = "okay";
216*4882a593Smuzhiyun	bus-width = <8>;
217*4882a593Smuzhiyun	max-frequency = <50000000>;
218*4882a593Smuzhiyun	cap-mmc-highspeed;
219*4882a593Smuzhiyun	mmc-hs200-1_8v;
220*4882a593Smuzhiyun	vmmc-supply = <&reg_3p3v>;
221*4882a593Smuzhiyun	vqmmc-supply = <&reg_1p8v>;
222*4882a593Smuzhiyun	assigned-clocks = <&topckgen CLK_TOP_MSDC30_0_SEL>;
223*4882a593Smuzhiyun	assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
224*4882a593Smuzhiyun	non-removable;
225*4882a593Smuzhiyun};
226*4882a593Smuzhiyun
227*4882a593Smuzhiyun&mmc1 {
228*4882a593Smuzhiyun	pinctrl-names = "default", "state_uhs";
229*4882a593Smuzhiyun	pinctrl-0 = <&sd0_pins_default>;
230*4882a593Smuzhiyun	pinctrl-1 = <&sd0_pins_uhs>;
231*4882a593Smuzhiyun	status = "okay";
232*4882a593Smuzhiyun	bus-width = <4>;
233*4882a593Smuzhiyun	max-frequency = <50000000>;
234*4882a593Smuzhiyun	cap-sd-highspeed;
235*4882a593Smuzhiyun	r_smpl = <1>;
236*4882a593Smuzhiyun	cd-gpios = <&pio 81 GPIO_ACTIVE_LOW>;
237*4882a593Smuzhiyun	vmmc-supply = <&reg_3p3v>;
238*4882a593Smuzhiyun	vqmmc-supply = <&reg_3p3v>;
239*4882a593Smuzhiyun	assigned-clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>;
240*4882a593Smuzhiyun	assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
241*4882a593Smuzhiyun};
242*4882a593Smuzhiyun
243*4882a593Smuzhiyun&nandc {
244*4882a593Smuzhiyun	pinctrl-names = "default";
245*4882a593Smuzhiyun	pinctrl-0 = <&parallel_nand_pins>;
246*4882a593Smuzhiyun	status = "disabled";
247*4882a593Smuzhiyun};
248*4882a593Smuzhiyun
249*4882a593Smuzhiyun&nor_flash {
250*4882a593Smuzhiyun	pinctrl-names = "default";
251*4882a593Smuzhiyun	pinctrl-0 = <&spi_nor_pins>;
252*4882a593Smuzhiyun	status = "disabled";
253*4882a593Smuzhiyun
254*4882a593Smuzhiyun	flash@0 {
255*4882a593Smuzhiyun		compatible = "jedec,spi-nor";
256*4882a593Smuzhiyun		reg = <0>;
257*4882a593Smuzhiyun	};
258*4882a593Smuzhiyun};
259*4882a593Smuzhiyun
260*4882a593Smuzhiyun&pcie {
261*4882a593Smuzhiyun	pinctrl-names = "default";
262*4882a593Smuzhiyun	pinctrl-0 = <&pcie0_pins>, <&pcie1_pins>;
263*4882a593Smuzhiyun	status = "okay";
264*4882a593Smuzhiyun
265*4882a593Smuzhiyun	pcie@0,0 {
266*4882a593Smuzhiyun		status = "okay";
267*4882a593Smuzhiyun	};
268*4882a593Smuzhiyun
269*4882a593Smuzhiyun	pcie@1,0 {
270*4882a593Smuzhiyun		status = "okay";
271*4882a593Smuzhiyun	};
272*4882a593Smuzhiyun};
273*4882a593Smuzhiyun
274*4882a593Smuzhiyun&pio {
275*4882a593Smuzhiyun	/* Attention: GPIO 90 is used to switch between PCIe@1,0 and
276*4882a593Smuzhiyun	 * SATA functions. i.e. output-high: PCIe, output-low: SATA
277*4882a593Smuzhiyun	 */
278*4882a593Smuzhiyun	asm_sel {
279*4882a593Smuzhiyun		gpio-hog;
280*4882a593Smuzhiyun		gpios = <90 GPIO_ACTIVE_HIGH>;
281*4882a593Smuzhiyun		output-high;
282*4882a593Smuzhiyun	};
283*4882a593Smuzhiyun
284*4882a593Smuzhiyun	/* eMMC is shared pin with parallel NAND */
285*4882a593Smuzhiyun	emmc_pins_default: emmc-pins-default {
286*4882a593Smuzhiyun		mux {
287*4882a593Smuzhiyun			function = "emmc", "emmc_rst";
288*4882a593Smuzhiyun			groups = "emmc";
289*4882a593Smuzhiyun		};
290*4882a593Smuzhiyun
291*4882a593Smuzhiyun		/* "NDL0","NDL1","NDL2","NDL3","NDL4","NDL5","NDL6","NDL7",
292*4882a593Smuzhiyun		 * "NRB","NCLE" pins are used as DAT0,DAT1,DAT2,DAT3,DAT4,
293*4882a593Smuzhiyun		 * DAT5,DAT6,DAT7,CMD,CLK for eMMC respectively
294*4882a593Smuzhiyun		 */
295*4882a593Smuzhiyun		conf-cmd-dat {
296*4882a593Smuzhiyun			pins = "NDL0", "NDL1", "NDL2",
297*4882a593Smuzhiyun			       "NDL3", "NDL4", "NDL5",
298*4882a593Smuzhiyun			       "NDL6", "NDL7", "NRB";
299*4882a593Smuzhiyun			input-enable;
300*4882a593Smuzhiyun			bias-pull-up;
301*4882a593Smuzhiyun		};
302*4882a593Smuzhiyun
303*4882a593Smuzhiyun		conf-clk {
304*4882a593Smuzhiyun			pins = "NCLE";
305*4882a593Smuzhiyun			bias-pull-down;
306*4882a593Smuzhiyun		};
307*4882a593Smuzhiyun	};
308*4882a593Smuzhiyun
309*4882a593Smuzhiyun	emmc_pins_uhs: emmc-pins-uhs {
310*4882a593Smuzhiyun		mux {
311*4882a593Smuzhiyun			function = "emmc";
312*4882a593Smuzhiyun			groups = "emmc";
313*4882a593Smuzhiyun		};
314*4882a593Smuzhiyun
315*4882a593Smuzhiyun		conf-cmd-dat {
316*4882a593Smuzhiyun			pins = "NDL0", "NDL1", "NDL2",
317*4882a593Smuzhiyun			       "NDL3", "NDL4", "NDL5",
318*4882a593Smuzhiyun			       "NDL6", "NDL7", "NRB";
319*4882a593Smuzhiyun			input-enable;
320*4882a593Smuzhiyun			drive-strength = <4>;
321*4882a593Smuzhiyun			bias-pull-up;
322*4882a593Smuzhiyun		};
323*4882a593Smuzhiyun
324*4882a593Smuzhiyun		conf-clk {
325*4882a593Smuzhiyun			pins = "NCLE";
326*4882a593Smuzhiyun			drive-strength = <4>;
327*4882a593Smuzhiyun			bias-pull-down;
328*4882a593Smuzhiyun		};
329*4882a593Smuzhiyun	};
330*4882a593Smuzhiyun
331*4882a593Smuzhiyun	eth_pins: eth-pins {
332*4882a593Smuzhiyun		mux {
333*4882a593Smuzhiyun			function = "eth";
334*4882a593Smuzhiyun			groups = "mdc_mdio", "rgmii_via_gmac2";
335*4882a593Smuzhiyun		};
336*4882a593Smuzhiyun	};
337*4882a593Smuzhiyun
338*4882a593Smuzhiyun	i2c1_pins: i2c1-pins {
339*4882a593Smuzhiyun		mux {
340*4882a593Smuzhiyun			function = "i2c";
341*4882a593Smuzhiyun			groups =  "i2c1_0";
342*4882a593Smuzhiyun		};
343*4882a593Smuzhiyun	};
344*4882a593Smuzhiyun
345*4882a593Smuzhiyun	i2c2_pins: i2c2-pins {
346*4882a593Smuzhiyun		mux {
347*4882a593Smuzhiyun			function = "i2c";
348*4882a593Smuzhiyun			groups =  "i2c2_0";
349*4882a593Smuzhiyun		};
350*4882a593Smuzhiyun	};
351*4882a593Smuzhiyun
352*4882a593Smuzhiyun	i2s1_pins: i2s1-pins {
353*4882a593Smuzhiyun		mux {
354*4882a593Smuzhiyun			function = "i2s";
355*4882a593Smuzhiyun			groups =  "i2s_out_mclk_bclk_ws",
356*4882a593Smuzhiyun				  "i2s1_in_data",
357*4882a593Smuzhiyun				  "i2s1_out_data";
358*4882a593Smuzhiyun		};
359*4882a593Smuzhiyun
360*4882a593Smuzhiyun		conf {
361*4882a593Smuzhiyun			pins = "I2S1_IN", "I2S1_OUT", "I2S_BCLK",
362*4882a593Smuzhiyun			       "I2S_WS", "I2S_MCLK";
363*4882a593Smuzhiyun			drive-strength = <12>;
364*4882a593Smuzhiyun			bias-pull-down;
365*4882a593Smuzhiyun		};
366*4882a593Smuzhiyun	};
367*4882a593Smuzhiyun
368*4882a593Smuzhiyun	irrx_pins: irrx-pins {
369*4882a593Smuzhiyun		mux {
370*4882a593Smuzhiyun			function = "ir";
371*4882a593Smuzhiyun			groups =  "ir_1_rx";
372*4882a593Smuzhiyun		};
373*4882a593Smuzhiyun	};
374*4882a593Smuzhiyun
375*4882a593Smuzhiyun	irtx_pins: irtx-pins {
376*4882a593Smuzhiyun		mux {
377*4882a593Smuzhiyun			function = "ir";
378*4882a593Smuzhiyun			groups =  "ir_1_tx";
379*4882a593Smuzhiyun		};
380*4882a593Smuzhiyun	};
381*4882a593Smuzhiyun
382*4882a593Smuzhiyun	/* Parallel nand is shared pin with eMMC */
383*4882a593Smuzhiyun	parallel_nand_pins: parallel-nand-pins {
384*4882a593Smuzhiyun		mux {
385*4882a593Smuzhiyun			function = "flash";
386*4882a593Smuzhiyun			groups = "par_nand";
387*4882a593Smuzhiyun		};
388*4882a593Smuzhiyun	};
389*4882a593Smuzhiyun
390*4882a593Smuzhiyun	pcie0_pins: pcie0-pins {
391*4882a593Smuzhiyun		mux {
392*4882a593Smuzhiyun			function = "pcie";
393*4882a593Smuzhiyun			groups = "pcie0_pad_perst",
394*4882a593Smuzhiyun				 "pcie0_1_waken",
395*4882a593Smuzhiyun				 "pcie0_1_clkreq";
396*4882a593Smuzhiyun		};
397*4882a593Smuzhiyun	};
398*4882a593Smuzhiyun
399*4882a593Smuzhiyun	pcie1_pins: pcie1-pins {
400*4882a593Smuzhiyun		mux {
401*4882a593Smuzhiyun			function = "pcie";
402*4882a593Smuzhiyun			groups = "pcie1_pad_perst",
403*4882a593Smuzhiyun				 "pcie1_0_waken",
404*4882a593Smuzhiyun				 "pcie1_0_clkreq";
405*4882a593Smuzhiyun		};
406*4882a593Smuzhiyun	};
407*4882a593Smuzhiyun
408*4882a593Smuzhiyun	pmic_bus_pins: pmic-bus-pins {
409*4882a593Smuzhiyun		mux {
410*4882a593Smuzhiyun			function = "pmic";
411*4882a593Smuzhiyun			groups = "pmic_bus";
412*4882a593Smuzhiyun		};
413*4882a593Smuzhiyun	};
414*4882a593Smuzhiyun
415*4882a593Smuzhiyun	pwm7_pins: pwm1-2-pins {
416*4882a593Smuzhiyun		mux {
417*4882a593Smuzhiyun			function = "pwm";
418*4882a593Smuzhiyun			groups = "pwm_ch7_2";
419*4882a593Smuzhiyun		};
420*4882a593Smuzhiyun	};
421*4882a593Smuzhiyun
422*4882a593Smuzhiyun	wled_pins: wled-pins {
423*4882a593Smuzhiyun		mux {
424*4882a593Smuzhiyun			function = "led";
425*4882a593Smuzhiyun			groups = "wled";
426*4882a593Smuzhiyun		};
427*4882a593Smuzhiyun	};
428*4882a593Smuzhiyun
429*4882a593Smuzhiyun	sd0_pins_default: sd0-pins-default {
430*4882a593Smuzhiyun		mux {
431*4882a593Smuzhiyun			function = "sd";
432*4882a593Smuzhiyun			groups = "sd_0";
433*4882a593Smuzhiyun		};
434*4882a593Smuzhiyun
435*4882a593Smuzhiyun		/* "I2S2_OUT, "I2S4_IN"", "I2S3_IN", "I2S2_IN",
436*4882a593Smuzhiyun		 *  "I2S4_OUT", "I2S3_OUT" are used as DAT0, DAT1,
437*4882a593Smuzhiyun		 *  DAT2, DAT3, CMD, CLK for SD respectively.
438*4882a593Smuzhiyun		 */
439*4882a593Smuzhiyun		conf-cmd-data {
440*4882a593Smuzhiyun			pins = "I2S2_OUT", "I2S4_IN", "I2S3_IN",
441*4882a593Smuzhiyun			       "I2S2_IN","I2S4_OUT";
442*4882a593Smuzhiyun			input-enable;
443*4882a593Smuzhiyun			drive-strength = <8>;
444*4882a593Smuzhiyun			bias-pull-up;
445*4882a593Smuzhiyun		};
446*4882a593Smuzhiyun		conf-clk {
447*4882a593Smuzhiyun			pins = "I2S3_OUT";
448*4882a593Smuzhiyun			drive-strength = <12>;
449*4882a593Smuzhiyun			bias-pull-down;
450*4882a593Smuzhiyun		};
451*4882a593Smuzhiyun		conf-cd {
452*4882a593Smuzhiyun			pins = "TXD3";
453*4882a593Smuzhiyun			bias-pull-up;
454*4882a593Smuzhiyun		};
455*4882a593Smuzhiyun	};
456*4882a593Smuzhiyun
457*4882a593Smuzhiyun	sd0_pins_uhs: sd0-pins-uhs {
458*4882a593Smuzhiyun		mux {
459*4882a593Smuzhiyun			function = "sd";
460*4882a593Smuzhiyun			groups = "sd_0";
461*4882a593Smuzhiyun		};
462*4882a593Smuzhiyun
463*4882a593Smuzhiyun		conf-cmd-data {
464*4882a593Smuzhiyun			pins = "I2S2_OUT", "I2S4_IN", "I2S3_IN",
465*4882a593Smuzhiyun			       "I2S2_IN","I2S4_OUT";
466*4882a593Smuzhiyun			input-enable;
467*4882a593Smuzhiyun			bias-pull-up;
468*4882a593Smuzhiyun		};
469*4882a593Smuzhiyun
470*4882a593Smuzhiyun		conf-clk {
471*4882a593Smuzhiyun			pins = "I2S3_OUT";
472*4882a593Smuzhiyun			bias-pull-down;
473*4882a593Smuzhiyun		};
474*4882a593Smuzhiyun	};
475*4882a593Smuzhiyun
476*4882a593Smuzhiyun	/* Serial NAND is shared pin with SPI-NOR */
477*4882a593Smuzhiyun	serial_nand_pins: serial-nand-pins {
478*4882a593Smuzhiyun		mux {
479*4882a593Smuzhiyun			function = "flash";
480*4882a593Smuzhiyun			groups = "snfi";
481*4882a593Smuzhiyun		};
482*4882a593Smuzhiyun	};
483*4882a593Smuzhiyun
484*4882a593Smuzhiyun	spic0_pins: spic0-pins {
485*4882a593Smuzhiyun		mux {
486*4882a593Smuzhiyun			function = "spi";
487*4882a593Smuzhiyun			groups = "spic0_0";
488*4882a593Smuzhiyun		};
489*4882a593Smuzhiyun	};
490*4882a593Smuzhiyun
491*4882a593Smuzhiyun	spic1_pins: spic1-pins {
492*4882a593Smuzhiyun		mux {
493*4882a593Smuzhiyun			function = "spi";
494*4882a593Smuzhiyun			groups = "spic1_0";
495*4882a593Smuzhiyun		};
496*4882a593Smuzhiyun	};
497*4882a593Smuzhiyun
498*4882a593Smuzhiyun	/* SPI-NOR is shared pin with serial NAND */
499*4882a593Smuzhiyun	spi_nor_pins: spi-nor-pins {
500*4882a593Smuzhiyun		mux {
501*4882a593Smuzhiyun			function = "flash";
502*4882a593Smuzhiyun			groups = "spi_nor";
503*4882a593Smuzhiyun		};
504*4882a593Smuzhiyun	};
505*4882a593Smuzhiyun
506*4882a593Smuzhiyun	/* serial NAND is shared pin with SPI-NOR */
507*4882a593Smuzhiyun	serial_nand_pins: serial-nand-pins {
508*4882a593Smuzhiyun		mux {
509*4882a593Smuzhiyun			function = "flash";
510*4882a593Smuzhiyun			groups = "snfi";
511*4882a593Smuzhiyun		};
512*4882a593Smuzhiyun	};
513*4882a593Smuzhiyun
514*4882a593Smuzhiyun	uart0_pins: uart0-pins {
515*4882a593Smuzhiyun		mux {
516*4882a593Smuzhiyun			function = "uart";
517*4882a593Smuzhiyun			groups = "uart0_0_tx_rx" ;
518*4882a593Smuzhiyun		};
519*4882a593Smuzhiyun	};
520*4882a593Smuzhiyun
521*4882a593Smuzhiyun	uart2_pins: uart2-pins {
522*4882a593Smuzhiyun		mux {
523*4882a593Smuzhiyun			function = "uart";
524*4882a593Smuzhiyun			groups = "uart2_1_tx_rx" ;
525*4882a593Smuzhiyun		};
526*4882a593Smuzhiyun	};
527*4882a593Smuzhiyun
528*4882a593Smuzhiyun	watchdog_pins: watchdog-pins {
529*4882a593Smuzhiyun		mux {
530*4882a593Smuzhiyun			function = "watchdog";
531*4882a593Smuzhiyun			groups = "watchdog";
532*4882a593Smuzhiyun		};
533*4882a593Smuzhiyun	};
534*4882a593Smuzhiyun};
535*4882a593Smuzhiyun
536*4882a593Smuzhiyun&pwm {
537*4882a593Smuzhiyun	pinctrl-names = "default";
538*4882a593Smuzhiyun	pinctrl-0 = <&pwm7_pins>;
539*4882a593Smuzhiyun	status = "okay";
540*4882a593Smuzhiyun};
541*4882a593Smuzhiyun
542*4882a593Smuzhiyun&pwrap {
543*4882a593Smuzhiyun	pinctrl-names = "default";
544*4882a593Smuzhiyun	pinctrl-0 = <&pmic_bus_pins>;
545*4882a593Smuzhiyun
546*4882a593Smuzhiyun	status = "okay";
547*4882a593Smuzhiyun};
548*4882a593Smuzhiyun
549*4882a593Smuzhiyun&sata {
550*4882a593Smuzhiyun	status = "disable";
551*4882a593Smuzhiyun};
552*4882a593Smuzhiyun
553*4882a593Smuzhiyun&sata_phy {
554*4882a593Smuzhiyun	status = "disable";
555*4882a593Smuzhiyun};
556*4882a593Smuzhiyun
557*4882a593Smuzhiyun&spi0 {
558*4882a593Smuzhiyun	pinctrl-names = "default";
559*4882a593Smuzhiyun	pinctrl-0 = <&spic0_pins>;
560*4882a593Smuzhiyun	status = "okay";
561*4882a593Smuzhiyun};
562*4882a593Smuzhiyun
563*4882a593Smuzhiyun&spi1 {
564*4882a593Smuzhiyun	pinctrl-names = "default";
565*4882a593Smuzhiyun	pinctrl-0 = <&spic1_pins>;
566*4882a593Smuzhiyun	status = "okay";
567*4882a593Smuzhiyun};
568*4882a593Smuzhiyun
569*4882a593Smuzhiyun&ssusb {
570*4882a593Smuzhiyun	vusb33-supply = <&reg_3p3v>;
571*4882a593Smuzhiyun	vbus-supply = <&reg_5v>;
572*4882a593Smuzhiyun	status = "okay";
573*4882a593Smuzhiyun};
574*4882a593Smuzhiyun
575*4882a593Smuzhiyun&u3phy {
576*4882a593Smuzhiyun	status = "okay";
577*4882a593Smuzhiyun};
578*4882a593Smuzhiyun
579*4882a593Smuzhiyun&uart0 {
580*4882a593Smuzhiyun	pinctrl-names = "default";
581*4882a593Smuzhiyun	pinctrl-0 = <&uart0_pins>;
582*4882a593Smuzhiyun	status = "okay";
583*4882a593Smuzhiyun};
584*4882a593Smuzhiyun
585*4882a593Smuzhiyun&uart2 {
586*4882a593Smuzhiyun	pinctrl-names = "default";
587*4882a593Smuzhiyun	pinctrl-0 = <&uart2_pins>;
588*4882a593Smuzhiyun	status = "okay";
589*4882a593Smuzhiyun};
590*4882a593Smuzhiyun
591*4882a593Smuzhiyun&watchdog {
592*4882a593Smuzhiyun	pinctrl-names = "default";
593*4882a593Smuzhiyun	pinctrl-0 = <&watchdog_pins>;
594*4882a593Smuzhiyun	status = "okay";
595*4882a593Smuzhiyun};
596*4882a593Smuzhiyun
597*4882a593Smuzhiyun&wmac {
598*4882a593Smuzhiyun	status = "okay";
599*4882a593Smuzhiyun};
600