xref: /freebsd-src/sys/contrib/device-tree/src/arm64/mediatek/mt7622-bananapi-bpi-r64.dts (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1c66ec88fSEmmanuel Vadot/*
2c66ec88fSEmmanuel Vadot * Copyright (c) 2018 MediaTek Inc.
3c66ec88fSEmmanuel Vadot * Author: Ryder Lee <ryder.lee@mediatek.com>
4c66ec88fSEmmanuel Vadot *
5c66ec88fSEmmanuel Vadot * SPDX-License-Identifier: (GPL-2.0 OR MIT)
6c66ec88fSEmmanuel Vadot */
7c66ec88fSEmmanuel Vadot
8c66ec88fSEmmanuel Vadot/dts-v1/;
9c66ec88fSEmmanuel Vadot#include <dt-bindings/input/input.h>
10c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
11b97ee269SEmmanuel Vadot#include <dt-bindings/leds/common.h>
12c66ec88fSEmmanuel Vadot
13c66ec88fSEmmanuel Vadot#include "mt7622.dtsi"
14c66ec88fSEmmanuel Vadot#include "mt6380.dtsi"
15c66ec88fSEmmanuel Vadot
16c66ec88fSEmmanuel Vadot/ {
17c66ec88fSEmmanuel Vadot	model = "Bananapi BPI-R64";
18f126890aSEmmanuel Vadot	chassis-type = "embedded";
19c66ec88fSEmmanuel Vadot	compatible = "bananapi,bpi-r64", "mediatek,mt7622";
20c66ec88fSEmmanuel Vadot
21c66ec88fSEmmanuel Vadot	aliases {
22c66ec88fSEmmanuel Vadot		serial0 = &uart0;
23c66ec88fSEmmanuel Vadot	};
24c66ec88fSEmmanuel Vadot
25c66ec88fSEmmanuel Vadot	chosen {
26c66ec88fSEmmanuel Vadot		stdout-path = "serial0:115200n8";
27c66ec88fSEmmanuel Vadot		bootargs = "earlycon=uart8250,mmio32,0x11002000 swiotlb=512";
28c66ec88fSEmmanuel Vadot	};
29c66ec88fSEmmanuel Vadot
30c66ec88fSEmmanuel Vadot	cpus {
31c66ec88fSEmmanuel Vadot		cpu@0 {
32c66ec88fSEmmanuel Vadot			proc-supply = <&mt6380_vcpu_reg>;
33c66ec88fSEmmanuel Vadot			sram-supply = <&mt6380_vm_reg>;
34c66ec88fSEmmanuel Vadot		};
35c66ec88fSEmmanuel Vadot
36c66ec88fSEmmanuel Vadot		cpu@1 {
37c66ec88fSEmmanuel Vadot			proc-supply = <&mt6380_vcpu_reg>;
38c66ec88fSEmmanuel Vadot			sram-supply = <&mt6380_vm_reg>;
39c66ec88fSEmmanuel Vadot		};
40c66ec88fSEmmanuel Vadot	};
41c66ec88fSEmmanuel Vadot
42c66ec88fSEmmanuel Vadot	gpio-keys {
43c66ec88fSEmmanuel Vadot		compatible = "gpio-keys";
44c66ec88fSEmmanuel Vadot
45b97ee269SEmmanuel Vadot		factory-key {
46c66ec88fSEmmanuel Vadot			label = "factory";
47c66ec88fSEmmanuel Vadot			linux,code = <BTN_0>;
48c66ec88fSEmmanuel Vadot			gpios = <&pio 0 GPIO_ACTIVE_HIGH>;
49c66ec88fSEmmanuel Vadot		};
50c66ec88fSEmmanuel Vadot
51b97ee269SEmmanuel Vadot		wps-key {
52c66ec88fSEmmanuel Vadot			label = "wps";
53c66ec88fSEmmanuel Vadot			linux,code = <KEY_WPS_BUTTON>;
54b97ee269SEmmanuel Vadot			gpios = <&pio 102 GPIO_ACTIVE_LOW>;
55c66ec88fSEmmanuel Vadot		};
56c66ec88fSEmmanuel Vadot	};
57c66ec88fSEmmanuel Vadot
58c66ec88fSEmmanuel Vadot	leds {
59c66ec88fSEmmanuel Vadot		compatible = "gpio-leds";
60c66ec88fSEmmanuel Vadot
61b97ee269SEmmanuel Vadot		led-0 {
62c66ec88fSEmmanuel Vadot			label = "bpi-r64:pio:green";
63b97ee269SEmmanuel Vadot			color = <LED_COLOR_ID_GREEN>;
64c66ec88fSEmmanuel Vadot			gpios = <&pio 89 GPIO_ACTIVE_HIGH>;
65c66ec88fSEmmanuel Vadot			default-state = "off";
66c66ec88fSEmmanuel Vadot		};
67c66ec88fSEmmanuel Vadot
68b97ee269SEmmanuel Vadot		led-1 {
69c66ec88fSEmmanuel Vadot			label = "bpi-r64:pio:red";
70b97ee269SEmmanuel Vadot			color = <LED_COLOR_ID_RED>;
71c66ec88fSEmmanuel Vadot			gpios = <&pio 88 GPIO_ACTIVE_HIGH>;
72c66ec88fSEmmanuel Vadot			default-state = "off";
73c66ec88fSEmmanuel Vadot		};
74c66ec88fSEmmanuel Vadot	};
75c66ec88fSEmmanuel Vadot
7684943d6fSEmmanuel Vadot	memory@40000000 {
77c66ec88fSEmmanuel Vadot		reg = <0 0x40000000 0 0x40000000>;
7801950c46SEmmanuel Vadot		device_type = "memory";
79c66ec88fSEmmanuel Vadot	};
80c66ec88fSEmmanuel Vadot
81c66ec88fSEmmanuel Vadot	reg_1p8v: regulator-1p8v {
82c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
83c66ec88fSEmmanuel Vadot		regulator-name = "fixed-1.8V";
84c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <1800000>;
85c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <1800000>;
86c66ec88fSEmmanuel Vadot		regulator-always-on;
87c66ec88fSEmmanuel Vadot	};
88c66ec88fSEmmanuel Vadot
89c66ec88fSEmmanuel Vadot	reg_3p3v: regulator-3p3v {
90c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
91c66ec88fSEmmanuel Vadot		regulator-name = "fixed-3.3V";
92c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
93c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
94c66ec88fSEmmanuel Vadot		regulator-boot-on;
95c66ec88fSEmmanuel Vadot		regulator-always-on;
96c66ec88fSEmmanuel Vadot	};
97c66ec88fSEmmanuel Vadot
98c66ec88fSEmmanuel Vadot	reg_5v: regulator-5v {
99c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
100c66ec88fSEmmanuel Vadot		regulator-name = "fixed-5V";
101c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <5000000>;
102c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <5000000>;
103c66ec88fSEmmanuel Vadot		regulator-boot-on;
104c66ec88fSEmmanuel Vadot		regulator-always-on;
105c66ec88fSEmmanuel Vadot	};
106c66ec88fSEmmanuel Vadot};
107c66ec88fSEmmanuel Vadot
108c66ec88fSEmmanuel Vadot&bch {
109c66ec88fSEmmanuel Vadot	status = "disabled";
110c66ec88fSEmmanuel Vadot};
111c66ec88fSEmmanuel Vadot
112c66ec88fSEmmanuel Vadot&btif {
113c66ec88fSEmmanuel Vadot	status = "okay";
114c66ec88fSEmmanuel Vadot};
115c66ec88fSEmmanuel Vadot
116c66ec88fSEmmanuel Vadot&cir {
117c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
118c66ec88fSEmmanuel Vadot	pinctrl-0 = <&irrx_pins>;
119c66ec88fSEmmanuel Vadot	status = "okay";
120c66ec88fSEmmanuel Vadot};
121c66ec88fSEmmanuel Vadot
122c66ec88fSEmmanuel Vadot&eth {
123c66ec88fSEmmanuel Vadot	status = "okay";
124c66ec88fSEmmanuel Vadot	gmac0: mac@0 {
125c66ec88fSEmmanuel Vadot		compatible = "mediatek,eth-mac";
126c66ec88fSEmmanuel Vadot		reg = <0>;
127c66ec88fSEmmanuel Vadot		phy-mode = "2500base-x";
128c66ec88fSEmmanuel Vadot
129c66ec88fSEmmanuel Vadot		fixed-link {
130c66ec88fSEmmanuel Vadot			speed = <2500>;
131c66ec88fSEmmanuel Vadot			full-duplex;
132c66ec88fSEmmanuel Vadot			pause;
133c66ec88fSEmmanuel Vadot		};
134c66ec88fSEmmanuel Vadot	};
135c66ec88fSEmmanuel Vadot
136c66ec88fSEmmanuel Vadot	gmac1: mac@1 {
137c66ec88fSEmmanuel Vadot		compatible = "mediatek,eth-mac";
138c66ec88fSEmmanuel Vadot		reg = <1>;
139c66ec88fSEmmanuel Vadot		phy-mode = "rgmii";
140c66ec88fSEmmanuel Vadot
141c66ec88fSEmmanuel Vadot		fixed-link {
142c66ec88fSEmmanuel Vadot			speed = <1000>;
143c66ec88fSEmmanuel Vadot			full-duplex;
144c66ec88fSEmmanuel Vadot			pause;
145c66ec88fSEmmanuel Vadot		};
146c66ec88fSEmmanuel Vadot	};
147c66ec88fSEmmanuel Vadot
148c66ec88fSEmmanuel Vadot	mdio: mdio-bus {
149c66ec88fSEmmanuel Vadot		#address-cells = <1>;
150c66ec88fSEmmanuel Vadot		#size-cells = <0>;
1516be33864SEmmanuel Vadot
152*0e8011faSEmmanuel Vadot		switch@1f {
1536be33864SEmmanuel Vadot			compatible = "mediatek,mt7531";
154*0e8011faSEmmanuel Vadot			reg = <0x1f>;
155f126890aSEmmanuel Vadot			interrupt-controller;
156f126890aSEmmanuel Vadot			#interrupt-cells = <1>;
1578d13bc63SEmmanuel Vadot			interrupts-extended = <&pio 53 IRQ_TYPE_LEVEL_HIGH>;
1586be33864SEmmanuel Vadot			reset-gpios = <&pio 54 0>;
1596be33864SEmmanuel Vadot
1606be33864SEmmanuel Vadot			ports {
1616be33864SEmmanuel Vadot				#address-cells = <1>;
1626be33864SEmmanuel Vadot				#size-cells = <0>;
1636be33864SEmmanuel Vadot
1646be33864SEmmanuel Vadot				port@0 {
1656be33864SEmmanuel Vadot					reg = <0>;
1666be33864SEmmanuel Vadot					label = "wan";
1676be33864SEmmanuel Vadot				};
1686be33864SEmmanuel Vadot
1696be33864SEmmanuel Vadot				port@1 {
1706be33864SEmmanuel Vadot					reg = <1>;
1716be33864SEmmanuel Vadot					label = "lan0";
1726be33864SEmmanuel Vadot				};
1736be33864SEmmanuel Vadot
1746be33864SEmmanuel Vadot				port@2 {
1756be33864SEmmanuel Vadot					reg = <2>;
1766be33864SEmmanuel Vadot					label = "lan1";
1776be33864SEmmanuel Vadot				};
1786be33864SEmmanuel Vadot
1796be33864SEmmanuel Vadot				port@3 {
1806be33864SEmmanuel Vadot					reg = <3>;
1816be33864SEmmanuel Vadot					label = "lan2";
1826be33864SEmmanuel Vadot				};
1836be33864SEmmanuel Vadot
1846be33864SEmmanuel Vadot				port@4 {
1856be33864SEmmanuel Vadot					reg = <4>;
1866be33864SEmmanuel Vadot					label = "lan3";
1876be33864SEmmanuel Vadot				};
1886be33864SEmmanuel Vadot
18901950c46SEmmanuel Vadot				port@5 {
19001950c46SEmmanuel Vadot					reg = <5>;
19101950c46SEmmanuel Vadot					ethernet = <&gmac1>;
19201950c46SEmmanuel Vadot					phy-mode = "rgmii";
19301950c46SEmmanuel Vadot
19401950c46SEmmanuel Vadot					fixed-link {
19501950c46SEmmanuel Vadot						speed = <1000>;
19601950c46SEmmanuel Vadot						full-duplex;
19701950c46SEmmanuel Vadot						pause;
19801950c46SEmmanuel Vadot					};
19901950c46SEmmanuel Vadot				};
20001950c46SEmmanuel Vadot
2016be33864SEmmanuel Vadot				port@6 {
2026be33864SEmmanuel Vadot					reg = <6>;
2036be33864SEmmanuel Vadot					label = "cpu";
2046be33864SEmmanuel Vadot					ethernet = <&gmac0>;
2056be33864SEmmanuel Vadot					phy-mode = "2500base-x";
2066be33864SEmmanuel Vadot
2076be33864SEmmanuel Vadot					fixed-link {
2086be33864SEmmanuel Vadot						speed = <2500>;
2096be33864SEmmanuel Vadot						full-duplex;
2106be33864SEmmanuel Vadot						pause;
2116be33864SEmmanuel Vadot					};
2126be33864SEmmanuel Vadot				};
2136be33864SEmmanuel Vadot			};
2146be33864SEmmanuel Vadot		};
2156be33864SEmmanuel Vadot
216c66ec88fSEmmanuel Vadot	};
217c66ec88fSEmmanuel Vadot};
218c66ec88fSEmmanuel Vadot
219c66ec88fSEmmanuel Vadot&i2c1 {
220c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
221c66ec88fSEmmanuel Vadot	pinctrl-0 = <&i2c1_pins>;
222c66ec88fSEmmanuel Vadot	status = "okay";
223c66ec88fSEmmanuel Vadot};
224c66ec88fSEmmanuel Vadot
225c66ec88fSEmmanuel Vadot&i2c2 {
226c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
227c66ec88fSEmmanuel Vadot	pinctrl-0 = <&i2c2_pins>;
228c66ec88fSEmmanuel Vadot	status = "okay";
229c66ec88fSEmmanuel Vadot};
230c66ec88fSEmmanuel Vadot
231c66ec88fSEmmanuel Vadot&mmc0 {
232c66ec88fSEmmanuel Vadot	pinctrl-names = "default", "state_uhs";
233c66ec88fSEmmanuel Vadot	pinctrl-0 = <&emmc_pins_default>;
234c66ec88fSEmmanuel Vadot	pinctrl-1 = <&emmc_pins_uhs>;
235c66ec88fSEmmanuel Vadot	status = "okay";
236c66ec88fSEmmanuel Vadot	bus-width = <8>;
237c66ec88fSEmmanuel Vadot	max-frequency = <50000000>;
238c66ec88fSEmmanuel Vadot	cap-mmc-highspeed;
239c66ec88fSEmmanuel Vadot	mmc-hs200-1_8v;
240c66ec88fSEmmanuel Vadot	vmmc-supply = <&reg_3p3v>;
241c66ec88fSEmmanuel Vadot	vqmmc-supply = <&reg_1p8v>;
242c66ec88fSEmmanuel Vadot	assigned-clocks = <&topckgen CLK_TOP_MSDC30_0_SEL>;
243c66ec88fSEmmanuel Vadot	assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
244c66ec88fSEmmanuel Vadot	non-removable;
245c66ec88fSEmmanuel Vadot};
246c66ec88fSEmmanuel Vadot
247c66ec88fSEmmanuel Vadot&mmc1 {
248c66ec88fSEmmanuel Vadot	pinctrl-names = "default", "state_uhs";
249c66ec88fSEmmanuel Vadot	pinctrl-0 = <&sd0_pins_default>;
250c66ec88fSEmmanuel Vadot	pinctrl-1 = <&sd0_pins_uhs>;
251c66ec88fSEmmanuel Vadot	status = "okay";
252c66ec88fSEmmanuel Vadot	bus-width = <4>;
253c66ec88fSEmmanuel Vadot	max-frequency = <50000000>;
254c66ec88fSEmmanuel Vadot	cap-sd-highspeed;
255c66ec88fSEmmanuel Vadot	cd-gpios = <&pio 81 GPIO_ACTIVE_LOW>;
256c66ec88fSEmmanuel Vadot	vmmc-supply = <&reg_3p3v>;
257c66ec88fSEmmanuel Vadot	vqmmc-supply = <&reg_3p3v>;
258c66ec88fSEmmanuel Vadot	assigned-clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>;
259c66ec88fSEmmanuel Vadot	assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
260c66ec88fSEmmanuel Vadot};
261c66ec88fSEmmanuel Vadot
262c66ec88fSEmmanuel Vadot&nandc {
263c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
264c66ec88fSEmmanuel Vadot	pinctrl-0 = <&parallel_nand_pins>;
265c66ec88fSEmmanuel Vadot	status = "disabled";
266c66ec88fSEmmanuel Vadot};
267c66ec88fSEmmanuel Vadot
268f126890aSEmmanuel Vadot&bch {
269f126890aSEmmanuel Vadot	status = "okay";
270f126890aSEmmanuel Vadot};
271c66ec88fSEmmanuel Vadot
272f126890aSEmmanuel Vadot&snfi {
273f126890aSEmmanuel Vadot	pinctrl-names = "default";
274f126890aSEmmanuel Vadot	pinctrl-0 = <&serial_nand_pins>;
275f126890aSEmmanuel Vadot	status = "okay";
276c66ec88fSEmmanuel Vadot	flash@0 {
277f126890aSEmmanuel Vadot		compatible = "spi-nand";
278c66ec88fSEmmanuel Vadot		reg = <0>;
279f126890aSEmmanuel Vadot		spi-tx-bus-width = <4>;
280f126890aSEmmanuel Vadot		spi-rx-bus-width = <4>;
281f126890aSEmmanuel Vadot		nand-ecc-engine = <&snfi>;
282f126890aSEmmanuel Vadot		partitions {
283f126890aSEmmanuel Vadot			compatible = "fixed-partitions";
284f126890aSEmmanuel Vadot			#address-cells = <1>;
285f126890aSEmmanuel Vadot			#size-cells = <1>;
286f126890aSEmmanuel Vadot
287f126890aSEmmanuel Vadot			partition@0 {
288f126890aSEmmanuel Vadot				label = "bl2";
289f126890aSEmmanuel Vadot				reg = <0x0 0x80000>;
290f126890aSEmmanuel Vadot				read-only;
291f126890aSEmmanuel Vadot			};
292f126890aSEmmanuel Vadot
293f126890aSEmmanuel Vadot			partition@80000 {
294f126890aSEmmanuel Vadot				label = "fip";
295f126890aSEmmanuel Vadot				reg = <0x80000 0x200000>;
296f126890aSEmmanuel Vadot				read-only;
297f126890aSEmmanuel Vadot			};
298f126890aSEmmanuel Vadot
299f126890aSEmmanuel Vadot			ubi: partition@280000 {
300f126890aSEmmanuel Vadot				label = "ubi";
301f126890aSEmmanuel Vadot				reg = <0x280000 0x7d80000>;
302f126890aSEmmanuel Vadot			};
303f126890aSEmmanuel Vadot		};
304c66ec88fSEmmanuel Vadot	};
305c66ec88fSEmmanuel Vadot};
306c66ec88fSEmmanuel Vadot
3078cc087a1SEmmanuel Vadot&pcie0 {
308c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
3098cc087a1SEmmanuel Vadot	pinctrl-0 = <&pcie0_pins>;
310c66ec88fSEmmanuel Vadot	status = "okay";
311c66ec88fSEmmanuel Vadot};
312c66ec88fSEmmanuel Vadot
3138cc087a1SEmmanuel Vadot&pcie1 {
3148cc087a1SEmmanuel Vadot	pinctrl-names = "default";
3158cc087a1SEmmanuel Vadot	pinctrl-0 = <&pcie1_pins>;
316c66ec88fSEmmanuel Vadot	status = "okay";
317c66ec88fSEmmanuel Vadot};
318c66ec88fSEmmanuel Vadot
319c66ec88fSEmmanuel Vadot&pio {
320c66ec88fSEmmanuel Vadot	/* Attention: GPIO 90 is used to switch between PCIe@1,0 and
321c66ec88fSEmmanuel Vadot	 * SATA functions. i.e. output-high: PCIe, output-low: SATA
322c66ec88fSEmmanuel Vadot	 */
323c66ec88fSEmmanuel Vadot	asm_sel {
324c66ec88fSEmmanuel Vadot		gpio-hog;
325c66ec88fSEmmanuel Vadot		gpios = <90 GPIO_ACTIVE_HIGH>;
326c66ec88fSEmmanuel Vadot		output-high;
327c66ec88fSEmmanuel Vadot	};
328c66ec88fSEmmanuel Vadot
329c66ec88fSEmmanuel Vadot	/* eMMC is shared pin with parallel NAND */
330c66ec88fSEmmanuel Vadot	emmc_pins_default: emmc-pins-default {
331c66ec88fSEmmanuel Vadot		mux {
332*0e8011faSEmmanuel Vadot			function = "emmc";
333*0e8011faSEmmanuel Vadot			groups = "emmc", "emmc_rst";
334c66ec88fSEmmanuel Vadot		};
335c66ec88fSEmmanuel Vadot
336c66ec88fSEmmanuel Vadot		/* "NDL0","NDL1","NDL2","NDL3","NDL4","NDL5","NDL6","NDL7",
337c66ec88fSEmmanuel Vadot		 * "NRB","NCLE" pins are used as DAT0,DAT1,DAT2,DAT3,DAT4,
338c66ec88fSEmmanuel Vadot		 * DAT5,DAT6,DAT7,CMD,CLK for eMMC respectively
339c66ec88fSEmmanuel Vadot		 */
340c66ec88fSEmmanuel Vadot		conf-cmd-dat {
341c66ec88fSEmmanuel Vadot			pins = "NDL0", "NDL1", "NDL2",
342c66ec88fSEmmanuel Vadot			       "NDL3", "NDL4", "NDL5",
343c66ec88fSEmmanuel Vadot			       "NDL6", "NDL7", "NRB";
344c66ec88fSEmmanuel Vadot			input-enable;
345c66ec88fSEmmanuel Vadot			bias-pull-up;
346c66ec88fSEmmanuel Vadot		};
347c66ec88fSEmmanuel Vadot
348c66ec88fSEmmanuel Vadot		conf-clk {
349c66ec88fSEmmanuel Vadot			pins = "NCLE";
350c66ec88fSEmmanuel Vadot			bias-pull-down;
351c66ec88fSEmmanuel Vadot		};
352c66ec88fSEmmanuel Vadot	};
353c66ec88fSEmmanuel Vadot
354c66ec88fSEmmanuel Vadot	emmc_pins_uhs: emmc-pins-uhs {
355c66ec88fSEmmanuel Vadot		mux {
356c66ec88fSEmmanuel Vadot			function = "emmc";
357c66ec88fSEmmanuel Vadot			groups = "emmc";
358c66ec88fSEmmanuel Vadot		};
359c66ec88fSEmmanuel Vadot
360c66ec88fSEmmanuel Vadot		conf-cmd-dat {
361c66ec88fSEmmanuel Vadot			pins = "NDL0", "NDL1", "NDL2",
362c66ec88fSEmmanuel Vadot			       "NDL3", "NDL4", "NDL5",
363c66ec88fSEmmanuel Vadot			       "NDL6", "NDL7", "NRB";
364c66ec88fSEmmanuel Vadot			input-enable;
365c66ec88fSEmmanuel Vadot			drive-strength = <4>;
366c66ec88fSEmmanuel Vadot			bias-pull-up;
367c66ec88fSEmmanuel Vadot		};
368c66ec88fSEmmanuel Vadot
369c66ec88fSEmmanuel Vadot		conf-clk {
370c66ec88fSEmmanuel Vadot			pins = "NCLE";
371c66ec88fSEmmanuel Vadot			drive-strength = <4>;
372c66ec88fSEmmanuel Vadot			bias-pull-down;
373c66ec88fSEmmanuel Vadot		};
374c66ec88fSEmmanuel Vadot	};
375c66ec88fSEmmanuel Vadot
376c66ec88fSEmmanuel Vadot	eth_pins: eth-pins {
377c66ec88fSEmmanuel Vadot		mux {
378c66ec88fSEmmanuel Vadot			function = "eth";
379c66ec88fSEmmanuel Vadot			groups = "mdc_mdio", "rgmii_via_gmac2";
380c66ec88fSEmmanuel Vadot		};
381c66ec88fSEmmanuel Vadot	};
382c66ec88fSEmmanuel Vadot
383c66ec88fSEmmanuel Vadot	i2c1_pins: i2c1-pins {
384c66ec88fSEmmanuel Vadot		mux {
385c66ec88fSEmmanuel Vadot			function = "i2c";
386c66ec88fSEmmanuel Vadot			groups = "i2c1_0";
387c66ec88fSEmmanuel Vadot		};
388c66ec88fSEmmanuel Vadot	};
389c66ec88fSEmmanuel Vadot
390c66ec88fSEmmanuel Vadot	i2c2_pins: i2c2-pins {
391c66ec88fSEmmanuel Vadot		mux {
392c66ec88fSEmmanuel Vadot			function = "i2c";
393c66ec88fSEmmanuel Vadot			groups = "i2c2_0";
394c66ec88fSEmmanuel Vadot		};
395c66ec88fSEmmanuel Vadot	};
396c66ec88fSEmmanuel Vadot
397c66ec88fSEmmanuel Vadot	i2s1_pins: i2s1-pins {
398c66ec88fSEmmanuel Vadot		mux {
399c66ec88fSEmmanuel Vadot			function = "i2s";
400c66ec88fSEmmanuel Vadot			groups = "i2s_out_mclk_bclk_ws",
401c66ec88fSEmmanuel Vadot				 "i2s1_in_data",
402c66ec88fSEmmanuel Vadot				 "i2s1_out_data";
403c66ec88fSEmmanuel Vadot		};
404c66ec88fSEmmanuel Vadot
405c66ec88fSEmmanuel Vadot		conf {
406c66ec88fSEmmanuel Vadot			pins = "I2S1_IN", "I2S1_OUT", "I2S_BCLK",
407c66ec88fSEmmanuel Vadot			       "I2S_WS", "I2S_MCLK";
408c66ec88fSEmmanuel Vadot			drive-strength = <12>;
409c66ec88fSEmmanuel Vadot			bias-pull-down;
410c66ec88fSEmmanuel Vadot		};
411c66ec88fSEmmanuel Vadot	};
412c66ec88fSEmmanuel Vadot
413c66ec88fSEmmanuel Vadot	irrx_pins: irrx-pins {
414c66ec88fSEmmanuel Vadot		mux {
415c66ec88fSEmmanuel Vadot			function = "ir";
416c66ec88fSEmmanuel Vadot			groups = "ir_1_rx";
417c66ec88fSEmmanuel Vadot		};
418c66ec88fSEmmanuel Vadot	};
419c66ec88fSEmmanuel Vadot
420c66ec88fSEmmanuel Vadot	irtx_pins: irtx-pins {
421c66ec88fSEmmanuel Vadot		mux {
422c66ec88fSEmmanuel Vadot			function = "ir";
423c66ec88fSEmmanuel Vadot			groups = "ir_1_tx";
424c66ec88fSEmmanuel Vadot		};
425c66ec88fSEmmanuel Vadot	};
426c66ec88fSEmmanuel Vadot
427c66ec88fSEmmanuel Vadot	/* Parallel nand is shared pin with eMMC */
428c66ec88fSEmmanuel Vadot	parallel_nand_pins: parallel-nand-pins {
429c66ec88fSEmmanuel Vadot		mux {
430c66ec88fSEmmanuel Vadot			function = "flash";
431c66ec88fSEmmanuel Vadot			groups = "par_nand";
432c66ec88fSEmmanuel Vadot		};
433c66ec88fSEmmanuel Vadot	};
434c66ec88fSEmmanuel Vadot
435c66ec88fSEmmanuel Vadot	pcie0_pins: pcie0-pins {
436c66ec88fSEmmanuel Vadot		mux {
437c66ec88fSEmmanuel Vadot			function = "pcie";
438c66ec88fSEmmanuel Vadot			groups = "pcie0_pad_perst",
439c66ec88fSEmmanuel Vadot				 "pcie0_1_waken",
440c66ec88fSEmmanuel Vadot				 "pcie0_1_clkreq";
441c66ec88fSEmmanuel Vadot		};
442c66ec88fSEmmanuel Vadot	};
443c66ec88fSEmmanuel Vadot
444c66ec88fSEmmanuel Vadot	pcie1_pins: pcie1-pins {
445c66ec88fSEmmanuel Vadot		mux {
446c66ec88fSEmmanuel Vadot			function = "pcie";
447c66ec88fSEmmanuel Vadot			groups = "pcie1_pad_perst",
448c66ec88fSEmmanuel Vadot				 "pcie1_0_waken",
449c66ec88fSEmmanuel Vadot				 "pcie1_0_clkreq";
450c66ec88fSEmmanuel Vadot		};
451c66ec88fSEmmanuel Vadot	};
452c66ec88fSEmmanuel Vadot
453c66ec88fSEmmanuel Vadot	pmic_bus_pins: pmic-bus-pins {
454c66ec88fSEmmanuel Vadot		mux {
455c66ec88fSEmmanuel Vadot			function = "pmic";
456c66ec88fSEmmanuel Vadot			groups = "pmic_bus";
457c66ec88fSEmmanuel Vadot		};
458c66ec88fSEmmanuel Vadot	};
459c66ec88fSEmmanuel Vadot
4605def4c47SEmmanuel Vadot	pwm_pins: pwm-pins {
461c66ec88fSEmmanuel Vadot		mux {
462c66ec88fSEmmanuel Vadot			function = "pwm";
4635def4c47SEmmanuel Vadot			groups = "pwm_ch1_0", /* mt7622_pwm_ch1_0_pins[] = { 51, }; */
4645def4c47SEmmanuel Vadot				 "pwm_ch2_0", /* mt7622_pwm_ch2_0_pins[] = { 52, }; */
4655def4c47SEmmanuel Vadot				 "pwm_ch3_2", /* mt7622_pwm_ch3_2_pins[] = { 97, }; */
4665def4c47SEmmanuel Vadot				 "pwm_ch4_1", /* mt7622_pwm_ch4_1_pins[] = { 67, }; */
4675def4c47SEmmanuel Vadot				 "pwm_ch5_0", /* mt7622_pwm_ch5_0_pins[] = { 68, }; */
4685def4c47SEmmanuel Vadot				 "pwm_ch6_0"; /* mt7622_pwm_ch6_0_pins[] = { 69, }; */
469c66ec88fSEmmanuel Vadot		};
470c66ec88fSEmmanuel Vadot	};
471c66ec88fSEmmanuel Vadot
472c66ec88fSEmmanuel Vadot	wled_pins: wled-pins {
473c66ec88fSEmmanuel Vadot		mux {
474c66ec88fSEmmanuel Vadot			function = "led";
475c66ec88fSEmmanuel Vadot			groups = "wled";
476c66ec88fSEmmanuel Vadot		};
477c66ec88fSEmmanuel Vadot	};
478c66ec88fSEmmanuel Vadot
479c66ec88fSEmmanuel Vadot	sd0_pins_default: sd0-pins-default {
480c66ec88fSEmmanuel Vadot		mux {
481c66ec88fSEmmanuel Vadot			function = "sd";
482c66ec88fSEmmanuel Vadot			groups = "sd_0";
483c66ec88fSEmmanuel Vadot		};
484c66ec88fSEmmanuel Vadot
485c66ec88fSEmmanuel Vadot		/* "I2S2_OUT, "I2S4_IN"", "I2S3_IN", "I2S2_IN",
486c66ec88fSEmmanuel Vadot		 *  "I2S4_OUT", "I2S3_OUT" are used as DAT0, DAT1,
487c66ec88fSEmmanuel Vadot		 *  DAT2, DAT3, CMD, CLK for SD respectively.
488c66ec88fSEmmanuel Vadot		 */
489c66ec88fSEmmanuel Vadot		conf-cmd-data {
490c66ec88fSEmmanuel Vadot			pins = "I2S2_OUT", "I2S4_IN", "I2S3_IN",
491c66ec88fSEmmanuel Vadot			       "I2S2_IN","I2S4_OUT";
492c66ec88fSEmmanuel Vadot			input-enable;
493c66ec88fSEmmanuel Vadot			drive-strength = <8>;
494c66ec88fSEmmanuel Vadot			bias-pull-up;
495c66ec88fSEmmanuel Vadot		};
496c66ec88fSEmmanuel Vadot		conf-clk {
497c66ec88fSEmmanuel Vadot			pins = "I2S3_OUT";
498c66ec88fSEmmanuel Vadot			drive-strength = <12>;
499c66ec88fSEmmanuel Vadot			bias-pull-down;
500c66ec88fSEmmanuel Vadot		};
501c66ec88fSEmmanuel Vadot		conf-cd {
502c66ec88fSEmmanuel Vadot			pins = "TXD3";
503c66ec88fSEmmanuel Vadot			bias-pull-up;
504c66ec88fSEmmanuel Vadot		};
505c66ec88fSEmmanuel Vadot	};
506c66ec88fSEmmanuel Vadot
507c66ec88fSEmmanuel Vadot	sd0_pins_uhs: sd0-pins-uhs {
508c66ec88fSEmmanuel Vadot		mux {
509c66ec88fSEmmanuel Vadot			function = "sd";
510c66ec88fSEmmanuel Vadot			groups = "sd_0";
511c66ec88fSEmmanuel Vadot		};
512c66ec88fSEmmanuel Vadot
513c66ec88fSEmmanuel Vadot		conf-cmd-data {
514c66ec88fSEmmanuel Vadot			pins = "I2S2_OUT", "I2S4_IN", "I2S3_IN",
515c66ec88fSEmmanuel Vadot			       "I2S2_IN","I2S4_OUT";
516c66ec88fSEmmanuel Vadot			input-enable;
517c66ec88fSEmmanuel Vadot			bias-pull-up;
518c66ec88fSEmmanuel Vadot		};
519c66ec88fSEmmanuel Vadot
520c66ec88fSEmmanuel Vadot		conf-clk {
521c66ec88fSEmmanuel Vadot			pins = "I2S3_OUT";
522c66ec88fSEmmanuel Vadot			bias-pull-down;
523c66ec88fSEmmanuel Vadot		};
524c66ec88fSEmmanuel Vadot	};
525c66ec88fSEmmanuel Vadot
526c66ec88fSEmmanuel Vadot	/* Serial NAND is shared pin with SPI-NOR */
527c66ec88fSEmmanuel Vadot	serial_nand_pins: serial-nand-pins {
528c66ec88fSEmmanuel Vadot		mux {
529c66ec88fSEmmanuel Vadot			function = "flash";
530c66ec88fSEmmanuel Vadot			groups = "snfi";
531c66ec88fSEmmanuel Vadot		};
532c66ec88fSEmmanuel Vadot	};
533c66ec88fSEmmanuel Vadot
534c66ec88fSEmmanuel Vadot	spic0_pins: spic0-pins {
535c66ec88fSEmmanuel Vadot		mux {
536c66ec88fSEmmanuel Vadot			function = "spi";
537c66ec88fSEmmanuel Vadot			groups = "spic0_0";
538c66ec88fSEmmanuel Vadot		};
539c66ec88fSEmmanuel Vadot	};
540c66ec88fSEmmanuel Vadot
541c66ec88fSEmmanuel Vadot	spic1_pins: spic1-pins {
542c66ec88fSEmmanuel Vadot		mux {
543c66ec88fSEmmanuel Vadot			function = "spi";
544c66ec88fSEmmanuel Vadot			groups = "spic1_0";
545c66ec88fSEmmanuel Vadot		};
546c66ec88fSEmmanuel Vadot	};
547c66ec88fSEmmanuel Vadot
548c66ec88fSEmmanuel Vadot	/* SPI-NOR is shared pin with serial NAND */
549c66ec88fSEmmanuel Vadot	spi_nor_pins: spi-nor-pins {
550c66ec88fSEmmanuel Vadot		mux {
551c66ec88fSEmmanuel Vadot			function = "flash";
552c66ec88fSEmmanuel Vadot			groups = "spi_nor";
553c66ec88fSEmmanuel Vadot		};
554c66ec88fSEmmanuel Vadot	};
555c66ec88fSEmmanuel Vadot
556c66ec88fSEmmanuel Vadot	/* serial NAND is shared pin with SPI-NOR */
557c66ec88fSEmmanuel Vadot	serial_nand_pins: serial-nand-pins {
558c66ec88fSEmmanuel Vadot		mux {
559c66ec88fSEmmanuel Vadot			function = "flash";
560c66ec88fSEmmanuel Vadot			groups = "snfi";
561c66ec88fSEmmanuel Vadot		};
562c66ec88fSEmmanuel Vadot	};
563c66ec88fSEmmanuel Vadot
564c66ec88fSEmmanuel Vadot	uart0_pins: uart0-pins {
565c66ec88fSEmmanuel Vadot		mux {
566c66ec88fSEmmanuel Vadot			function = "uart";
567c66ec88fSEmmanuel Vadot			groups = "uart0_0_tx_rx" ;
568c66ec88fSEmmanuel Vadot		};
569c66ec88fSEmmanuel Vadot	};
570c66ec88fSEmmanuel Vadot
571c66ec88fSEmmanuel Vadot	uart2_pins: uart2-pins {
572c66ec88fSEmmanuel Vadot		mux {
573c66ec88fSEmmanuel Vadot			function = "uart";
574c66ec88fSEmmanuel Vadot			groups = "uart2_1_tx_rx" ;
575c66ec88fSEmmanuel Vadot		};
576c66ec88fSEmmanuel Vadot	};
577c66ec88fSEmmanuel Vadot
578c66ec88fSEmmanuel Vadot	watchdog_pins: watchdog-pins {
579c66ec88fSEmmanuel Vadot		mux {
580c66ec88fSEmmanuel Vadot			function = "watchdog";
581c66ec88fSEmmanuel Vadot			groups = "watchdog";
582c66ec88fSEmmanuel Vadot		};
583c66ec88fSEmmanuel Vadot	};
584c66ec88fSEmmanuel Vadot};
585c66ec88fSEmmanuel Vadot
586c66ec88fSEmmanuel Vadot&pwm {
587c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
5885def4c47SEmmanuel Vadot	pinctrl-0 = <&pwm_pins>;
589c66ec88fSEmmanuel Vadot	status = "okay";
590c66ec88fSEmmanuel Vadot};
591c66ec88fSEmmanuel Vadot
592c66ec88fSEmmanuel Vadot&pwrap {
593c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
594c66ec88fSEmmanuel Vadot	pinctrl-0 = <&pmic_bus_pins>;
595c66ec88fSEmmanuel Vadot
596c66ec88fSEmmanuel Vadot	status = "okay";
597c66ec88fSEmmanuel Vadot};
598c66ec88fSEmmanuel Vadot
599c66ec88fSEmmanuel Vadot&sata {
600aa1a8ff2SEmmanuel Vadot	status = "disabled";
601c66ec88fSEmmanuel Vadot};
602c66ec88fSEmmanuel Vadot
603c66ec88fSEmmanuel Vadot&sata_phy {
604aa1a8ff2SEmmanuel Vadot	status = "disabled";
605c66ec88fSEmmanuel Vadot};
606c66ec88fSEmmanuel Vadot
607c66ec88fSEmmanuel Vadot&spi0 {
608c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
609c66ec88fSEmmanuel Vadot	pinctrl-0 = <&spic0_pins>;
610c66ec88fSEmmanuel Vadot	status = "okay";
611c66ec88fSEmmanuel Vadot};
612c66ec88fSEmmanuel Vadot
613c66ec88fSEmmanuel Vadot&spi1 {
614c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
615c66ec88fSEmmanuel Vadot	pinctrl-0 = <&spic1_pins>;
616c66ec88fSEmmanuel Vadot};
617c66ec88fSEmmanuel Vadot
618c66ec88fSEmmanuel Vadot&ssusb {
619c66ec88fSEmmanuel Vadot	vusb33-supply = <&reg_3p3v>;
620c66ec88fSEmmanuel Vadot	vbus-supply = <&reg_5v>;
621c66ec88fSEmmanuel Vadot	status = "okay";
622c66ec88fSEmmanuel Vadot};
623c66ec88fSEmmanuel Vadot
624c66ec88fSEmmanuel Vadot&u3phy {
625c66ec88fSEmmanuel Vadot	status = "okay";
626c66ec88fSEmmanuel Vadot};
627c66ec88fSEmmanuel Vadot
628c66ec88fSEmmanuel Vadot&uart0 {
629c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
630c66ec88fSEmmanuel Vadot	pinctrl-0 = <&uart0_pins>;
631c66ec88fSEmmanuel Vadot	status = "okay";
632c66ec88fSEmmanuel Vadot};
633c66ec88fSEmmanuel Vadot
634c66ec88fSEmmanuel Vadot&uart2 {
635c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
636c66ec88fSEmmanuel Vadot	pinctrl-0 = <&uart2_pins>;
637c66ec88fSEmmanuel Vadot};
638c66ec88fSEmmanuel Vadot
639c66ec88fSEmmanuel Vadot&watchdog {
640c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
641c66ec88fSEmmanuel Vadot	pinctrl-0 = <&watchdog_pins>;
642c66ec88fSEmmanuel Vadot	status = "okay";
643c66ec88fSEmmanuel Vadot};
644c66ec88fSEmmanuel Vadot
645c66ec88fSEmmanuel Vadot&wmac {
646c66ec88fSEmmanuel Vadot	status = "okay";
647c66ec88fSEmmanuel Vadot};
648