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