1d84982dbSRyder Lee/*
2d84982dbSRyder Lee * Copyright (C) 2018 MediaTek Inc.
3d84982dbSRyder Lee * Author: Ryder Lee <ryder.lee@mediatek.com>
4d84982dbSRyder Lee *
5d84982dbSRyder Lee * SPDX-License-Identifier: (GPL-2.0 OR MIT)
6d84982dbSRyder Lee */
7d84982dbSRyder Lee
8d84982dbSRyder Lee/dts-v1/;
9d84982dbSRyder Lee#include "mt7623.dtsi"
10d84982dbSRyder Lee
11d84982dbSRyder Lee/ {
12d84982dbSRyder Lee	model = "Bananapi BPI-R2";
13d84982dbSRyder Lee	compatible = "bananapi,bpi-r2", "mediatek,mt7623";
14d84982dbSRyder Lee
15d84982dbSRyder Lee	chosen {
16d84982dbSRyder Lee		stdout-path = &uart2;
17d84982dbSRyder Lee		tick-timer = &timer0;
18d84982dbSRyder Lee	};
19d84982dbSRyder Lee
20d84982dbSRyder Lee	reg_1p8v: regulator-1p8v {
21d84982dbSRyder Lee		compatible = "regulator-fixed";
22d84982dbSRyder Lee		regulator-name = "fixed-1.8V";
23d84982dbSRyder Lee		regulator-min-microvolt = <1800000>;
24d84982dbSRyder Lee		regulator-max-microvolt = <1800000>;
25d84982dbSRyder Lee		regulator-boot-on;
26d84982dbSRyder Lee		regulator-always-on;
27d84982dbSRyder Lee	};
28d84982dbSRyder Lee
29d84982dbSRyder Lee	reg_3p3v: regulator-3p3v {
30d84982dbSRyder Lee		compatible = "regulator-fixed";
31d84982dbSRyder Lee		regulator-name = "fixed-3.3V";
32d84982dbSRyder Lee		regulator-min-microvolt = <3300000>;
33d84982dbSRyder Lee		regulator-max-microvolt = <3300000>;
34d84982dbSRyder Lee		regulator-boot-on;
35d84982dbSRyder Lee		regulator-always-on;
36d84982dbSRyder Lee	};
37d84982dbSRyder Lee
38d84982dbSRyder Lee	reg_5v: regulator-5v {
39d84982dbSRyder Lee		compatible = "regulator-fixed";
40d84982dbSRyder Lee		regulator-name = "fixed-5V";
41d84982dbSRyder Lee		regulator-min-microvolt = <5000000>;
42d84982dbSRyder Lee		regulator-max-microvolt = <5000000>;
43d84982dbSRyder Lee		regulator-boot-on;
44d84982dbSRyder Lee		regulator-always-on;
45d84982dbSRyder Lee	};
46d84982dbSRyder Lee
47d84982dbSRyder Lee	leds {
48d84982dbSRyder Lee		compatible = "gpio-leds";
49d84982dbSRyder Lee
50d84982dbSRyder Lee		blue {
51d84982dbSRyder Lee			label = "bpi-r2:pio:blue";
52d84982dbSRyder Lee			gpios = <&gpio 241 GPIO_ACTIVE_HIGH>;
53d84982dbSRyder Lee			default-state = "off";
54d84982dbSRyder Lee		};
55d84982dbSRyder Lee
56d84982dbSRyder Lee		green {
57d84982dbSRyder Lee			label = "bpi-r2:pio:green";
58d84982dbSRyder Lee			gpios = <&gpio 240 GPIO_ACTIVE_HIGH>;
59d84982dbSRyder Lee			default-state = "off";
60d84982dbSRyder Lee		};
61d84982dbSRyder Lee
62d84982dbSRyder Lee		red {
63d84982dbSRyder Lee			label = "bpi-r2:pio:red";
64d84982dbSRyder Lee			gpios = <&gpio 239 GPIO_ACTIVE_HIGH>;
65d84982dbSRyder Lee			default-state = "off";
66d84982dbSRyder Lee		};
67d84982dbSRyder Lee	};
68d84982dbSRyder Lee};
69d84982dbSRyder Lee
70*d9506a6fSWeijie Gao&eth {
71*d9506a6fSWeijie Gao	status = "okay";
72*d9506a6fSWeijie Gao	mediatek,gmac-id = <0>;
73*d9506a6fSWeijie Gao	phy-mode = "rgmii";
74*d9506a6fSWeijie Gao	mediatek,switch = "mt7530";
75*d9506a6fSWeijie Gao	reset-gpios = <&gpio 33 GPIO_ACTIVE_HIGH>;
76*d9506a6fSWeijie Gao
77*d9506a6fSWeijie Gao	fixed-link {
78*d9506a6fSWeijie Gao		speed = <1000>;
79*d9506a6fSWeijie Gao		full-duplex;
80*d9506a6fSWeijie Gao	};
81*d9506a6fSWeijie Gao};
82*d9506a6fSWeijie Gao
83d84982dbSRyder Lee&mmc0 {
84d84982dbSRyder Lee	pinctrl-names = "default";
85d84982dbSRyder Lee	pinctrl-0 = <&mmc0_pins_default>;
86d84982dbSRyder Lee	status = "okay";
87d84982dbSRyder Lee	bus-width = <8>;
88d84982dbSRyder Lee	max-frequency = <50000000>;
89d84982dbSRyder Lee	cap-mmc-highspeed;
90d84982dbSRyder Lee	vmmc-supply = <&reg_3p3v>;
91d84982dbSRyder Lee	vqmmc-supply = <&reg_1p8v>;
92d84982dbSRyder Lee	non-removable;
93d84982dbSRyder Lee};
94d84982dbSRyder Lee
95d84982dbSRyder Lee&mmc1 {
96d84982dbSRyder Lee	pinctrl-names = "default";
97d84982dbSRyder Lee	pinctrl-0 = <&mmc1_pins_default>;
98d84982dbSRyder Lee	status = "okay";
99d84982dbSRyder Lee	bus-width = <4>;
100d84982dbSRyder Lee	max-frequency = <50000000>;
101d84982dbSRyder Lee	cap-sd-highspeed;
102d84982dbSRyder Lee	cd-gpios = <&gpio 261 GPIO_ACTIVE_LOW>;
103d84982dbSRyder Lee	vmmc-supply = <&reg_3p3v>;
104d84982dbSRyder Lee	vqmmc-supply = <&reg_3p3v>;
105d84982dbSRyder Lee};
106d84982dbSRyder Lee
107d84982dbSRyder Lee&pinctrl {
108d84982dbSRyder Lee	ephy_default: ephy_default {
109d84982dbSRyder Lee		mux {
110d84982dbSRyder Lee			function = "eth";
111d84982dbSRyder Lee			groups = "mdc_mdio", "ephy";
112d84982dbSRyder Lee		};
113d84982dbSRyder Lee
114d84982dbSRyder Lee		conf {
115d84982dbSRyder Lee			pins = "G2_TXEN", "G2_TXD0", "G2_TXD1", "G2_TXD2",
116d84982dbSRyder Lee			       "G2_TXD3", "G2_TXC", "G2_RXC", "G2_RXD0",
117d84982dbSRyder Lee			       "G2_RXD1", "G2_RXD2", "G2_RXD3", "G2_RXDV",
118d84982dbSRyder Lee			       "MDC", "MDIO";
119d84982dbSRyder Lee			drive-strength = <12>;
120d84982dbSRyder Lee			mediatek,tdsel = <5>;
121d84982dbSRyder Lee		};
122d84982dbSRyder Lee	};
123d84982dbSRyder Lee
124d84982dbSRyder Lee	mmc0_pins_default: mmc0default {
125d84982dbSRyder Lee		mux {
126d84982dbSRyder Lee			function = "msdc";
127d84982dbSRyder Lee			groups =  "msdc0";
128d84982dbSRyder Lee		};
129d84982dbSRyder Lee
130d84982dbSRyder Lee		conf-cmd-data {
131d84982dbSRyder Lee			pins = "MSDC0_CMD", "MSDC0_DAT0", "MSDC0_DAT1",
132d84982dbSRyder Lee			       "MSDC0_DAT2", "MSDC0_DAT3", "MSDC0_DAT4",
133d84982dbSRyder Lee			       "MSDC0_DAT5", "MSDC0_DAT6", "MSDC0_DAT7";
134d84982dbSRyder Lee			input-enable;
135d84982dbSRyder Lee			bias-pull-up;
136d84982dbSRyder Lee		};
137d84982dbSRyder Lee
138d84982dbSRyder Lee		conf-clk {
139d84982dbSRyder Lee			pins = "MSDC0_CLK";
140d84982dbSRyder Lee			bias-pull-down;
141d84982dbSRyder Lee		};
142d84982dbSRyder Lee
143d84982dbSRyder Lee		conf-rst {
144d84982dbSRyder Lee			pins = "MSDC0_RSTB";
145d84982dbSRyder Lee			bias-pull-up;
146d84982dbSRyder Lee		};
147d84982dbSRyder Lee	};
148d84982dbSRyder Lee
149d84982dbSRyder Lee	mmc1_pins_default: mmc1default {
150d84982dbSRyder Lee		mux {
151d84982dbSRyder Lee			function = "msdc";
152d84982dbSRyder Lee			groups =  "msdc1", "msdc1_wp_0";
153d84982dbSRyder Lee		};
154d84982dbSRyder Lee
155d84982dbSRyder Lee		conf-cmd-data {
156d84982dbSRyder Lee			pins = "MSDC1_DAT0", "MSDC1_DAT1", "MSDC1_DAT2",
157d84982dbSRyder Lee			       "MSDC1_DAT3", "MSDC1_DAT3", "MSDC1_CMD";
158d84982dbSRyder Lee			input-enable;
159d84982dbSRyder Lee			drive-strength = <4>;
160d84982dbSRyder Lee			bias-pull-up;
161d84982dbSRyder Lee		};
162d84982dbSRyder Lee
163d84982dbSRyder Lee		conf-clk {
164d84982dbSRyder Lee			pins = "MSDC1_CLK";
165d84982dbSRyder Lee			drive-strength = <4>;
166d84982dbSRyder Lee		};
167d84982dbSRyder Lee
168d84982dbSRyder Lee		conf-wp {
169d84982dbSRyder Lee			pins = "EINT7";
170d84982dbSRyder Lee			input-enable;
171d84982dbSRyder Lee			bias-pull-up;
172d84982dbSRyder Lee		};
173d84982dbSRyder Lee	};
174d84982dbSRyder Lee
175d84982dbSRyder Lee	uart0_pins_a: uart0-default {
176d84982dbSRyder Lee		mux {
177d84982dbSRyder Lee			function = "uart";
178d84982dbSRyder Lee			groups =  "uart0_0_txd_rxd";
179d84982dbSRyder Lee		};
180d84982dbSRyder Lee	};
181d84982dbSRyder Lee
182d84982dbSRyder Lee	uart1_pins_a: uart1-default {
183d84982dbSRyder Lee		mux {
184d84982dbSRyder Lee			function = "uart";
185d84982dbSRyder Lee			groups =  "uart1_0_txd_rxd";
186d84982dbSRyder Lee		};
187d84982dbSRyder Lee	};
188d84982dbSRyder Lee
189d84982dbSRyder Lee	uart2_pins_a: uart2-default {
190d84982dbSRyder Lee		mux {
191d84982dbSRyder Lee			function = "uart";
192d84982dbSRyder Lee			groups =  "uart2_0_txd_rxd";
193d84982dbSRyder Lee		};
194d84982dbSRyder Lee	};
195d84982dbSRyder Lee
196d84982dbSRyder Lee	uart2_pins_b: uart2-alt {
197d84982dbSRyder Lee		mux {
198d84982dbSRyder Lee			function = "uart";
199d84982dbSRyder Lee			groups =  "uart2_1_txd_rxd";
200d84982dbSRyder Lee		};
201d84982dbSRyder Lee	};
202d84982dbSRyder Lee};
203d84982dbSRyder Lee
204d84982dbSRyder Lee&uart0 {
205d84982dbSRyder Lee	pinctrl-names = "default";
206d84982dbSRyder Lee	pinctrl-0 = <&uart0_pins_a>;
207d84982dbSRyder Lee	status = "okay";
208d84982dbSRyder Lee};
209d84982dbSRyder Lee
210d84982dbSRyder Lee&uart1 {
211d84982dbSRyder Lee	pinctrl-names = "default";
212d84982dbSRyder Lee	pinctrl-0 = <&uart1_pins_a>;
213d84982dbSRyder Lee	status = "okay";
214d84982dbSRyder Lee};
215d84982dbSRyder Lee
216d84982dbSRyder Lee&uart2 {
217d84982dbSRyder Lee	pinctrl-names = "default";
218d84982dbSRyder Lee	pinctrl-0 = <&uart2_pins_a>;
219d84982dbSRyder Lee	status = "okay";
220d84982dbSRyder Lee};
221