Skip to content

Commit 04c85ec

Browse files
luoyimripard
authored andcommitted
ARM: dts: sun7i: Add dts file for Bananapi M1 Plus board
Add support for the Bananapi M1 Plus A20 development board from sinovoip.com.cn . This board is nearly a clone of the Lemaker's Bananapro, but differ with the wlan chipset connection and i2s pinout. And I also enable the integrated audio codec on default. Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
1 parent 1cdc0aa commit 04c85ec

File tree

2 files changed

+231
-0
lines changed

2 files changed

+231
-0
lines changed

arch/arm/boot/dts/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -728,6 +728,7 @@ dtb-$(CONFIG_MACH_SUN6I) += \
728728
sun6i-a31s-yones-toptech-bs1078-v2.dtb
729729
dtb-$(CONFIG_MACH_SUN7I) += \
730730
sun7i-a20-bananapi.dtb \
731+
sun7i-a20-bananapi-m1-plus.dtb \
731732
sun7i-a20-bananapro.dtb \
732733
sun7i-a20-cubieboard2.dtb \
733734
sun7i-a20-cubietruck.dtb \
Lines changed: 230 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,230 @@
1+
/*
2+
* Copyright 2016 Luo Yi <luoyi.ly@gmail.com>
3+
*
4+
* Thanks to the original work by Hans de Goede <hdegoede@redhat.com>
5+
*
6+
* This file is dual-licensed: you can use it either under the terms
7+
* of the GPL or the X11 license, at your option. Note that this dual
8+
* licensing only applies to this file, and not this project as a
9+
* whole.
10+
*
11+
* a) This file is free software; you can redistribute it and/or
12+
* modify it under the terms of the GNU General Public License as
13+
* published by the Free Software Foundation; either version 2 of the
14+
* License, or (at your option) any later version.
15+
*
16+
* This file is distributed in the hope that it will be useful,
17+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
18+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19+
* GNU General Public License for more details.
20+
*
21+
* Or, alternatively,
22+
*
23+
* b) Permission is hereby granted, free of charge, to any person
24+
* obtaining a copy of this software and associated documentation
25+
* files (the "Software"), to deal in the Software without
26+
* restriction, including without limitation the rights to use,
27+
* copy, modify, merge, publish, distribute, sublicense, and/or
28+
* sell copies of the Software, and to permit persons to whom the
29+
* Software is furnished to do so, subject to the following
30+
* conditions:
31+
*
32+
* The above copyright notice and this permission notice shall be
33+
* included in all copies or substantial portions of the Software.
34+
*
35+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36+
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37+
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38+
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39+
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40+
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41+
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42+
* OTHER DEALINGS IN THE SOFTWARE.
43+
*/
44+
45+
/dts-v1/;
46+
#include "sun7i-a20.dtsi"
47+
#include "sunxi-common-regulators.dtsi"
48+
#include <dt-bindings/gpio/gpio.h>
49+
#include <dt-bindings/interrupt-controller/arm-gic.h>
50+
51+
/ {
52+
model = "Banana Pi BPI-M1-Plus";
53+
compatible = "sinovoip,bpi-m1-plus", "allwinner,sun7i-a20";
54+
55+
aliases {
56+
serial0 = &uart0;
57+
};
58+
59+
chosen {
60+
stdout-path = "serial0:115200n8";
61+
};
62+
63+
leds {
64+
compatible = "gpio-leds";
65+
pinctrl-names = "default";
66+
pinctrl-0 = <&led_pins_bananapi>;
67+
68+
green {
69+
label = "bananapi-m1-plus:green:usr";
70+
gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>;
71+
};
72+
73+
red {
74+
label = "bananapi-m1-plus:red:usr";
75+
gpios = <&pio 7 25 GPIO_ACTIVE_HIGH>;
76+
linux,default-trigger = "default-on";
77+
};
78+
79+
};
80+
81+
mmc3_pwrseq: mmc3_pwrseq {
82+
compatible = "mmc-pwrseq-simple";
83+
pinctrl-names = "default";
84+
pinctrl-0 = <&mmc3_pwrseq_pin_bananapim1plus>;
85+
reset-gpios = <&pio 7 22 GPIO_ACTIVE_LOW>; /* PH22 WL-PMU-EN */
86+
};
87+
88+
reg_gmac_3v3: gmac-3v3 {
89+
compatible = "regulator-fixed";
90+
pinctrl-names = "default";
91+
pinctrl-0 = <&gmac_power_pin_bananapi>;
92+
regulator-name = "gmac-3v3";
93+
regulator-min-microvolt = <3300000>;
94+
regulator-max-microvolt = <3300000>;
95+
startup-delay-us = <100000>;
96+
enable-active-high;
97+
gpio = <&pio 7 23 GPIO_ACTIVE_HIGH>;
98+
};
99+
};
100+
101+
&ahci {
102+
status = "okay";
103+
};
104+
105+
&codec {
106+
status = "okay";
107+
};
108+
109+
&ehci0 {
110+
status = "okay";
111+
};
112+
113+
&ehci1 {
114+
status = "okay";
115+
};
116+
117+
&gmac {
118+
pinctrl-names = "default";
119+
pinctrl-0 = <&gmac_pins_rgmii_a>;
120+
phy = <&phy1>;
121+
phy-mode = "rgmii";
122+
phy-supply = <&reg_gmac_3v3>;
123+
status = "okay";
124+
125+
phy1: ethernet-phy@1 {
126+
reg = <1>;
127+
};
128+
};
129+
130+
&i2c0 {
131+
pinctrl-names = "default";
132+
pinctrl-0 = <&i2c0_pins_a>;
133+
status = "okay";
134+
135+
axp209: pmic@34 {
136+
compatible = "x-powers,axp209";
137+
reg = <0x34>;
138+
interrupt-parent = <&nmi_intc>;
139+
interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
140+
141+
interrupt-controller;
142+
#interrupt-cells = <1>;
143+
};
144+
};
145+
146+
&ir0 {
147+
pinctrl-names = "default";
148+
pinctrl-0 = <&ir0_rx_pins_a>;
149+
status = "okay";
150+
};
151+
152+
&mmc0 {
153+
pinctrl-names = "default";
154+
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_bananapi>;
155+
vmmc-supply = <&reg_vcc3v3>;
156+
bus-width = <4>;
157+
cd-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */
158+
cd-inverted;
159+
status = "okay";
160+
};
161+
162+
&mmc3 {
163+
#address-cells = <1>;
164+
#size-cells = <0>;
165+
pinctrl-names = "default";
166+
pinctrl-0 = <&mmc3_pins_a>;
167+
vmmc-supply = <&reg_vcc3v3>;
168+
mmc-pwrseq = <&mmc3_pwrseq>;
169+
bus-width = <4>;
170+
non-removable;
171+
enable-sdio-wakeup;
172+
status = "okay";
173+
174+
brcmf: bcrmf@1 {
175+
reg = <1>;
176+
compatible = "brcm,bcm4329-fmac";
177+
interrupt-parent = <&pio>;
178+
interrupts = <7 15 IRQ_TYPE_LEVEL_LOW>;
179+
interrupt-names = "host-wake";
180+
};
181+
};
182+
183+
&mmc3_pins_a {
184+
/* AP6210 requires pull-up */
185+
allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
186+
};
187+
188+
&ohci0 {
189+
status = "okay";
190+
};
191+
192+
&ohci1 {
193+
status = "okay";
194+
};
195+
196+
&pio {
197+
gmac_power_pin_bananapi: gmac_power_pin@0 {
198+
allwinner,pins = "PH23";
199+
allwinner,function = "gpio_out";
200+
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
201+
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
202+
};
203+
204+
led_pins_bananapi: led_pins@0 {
205+
allwinner,pins = "PH24", "PG2";
206+
allwinner,function = "gpio_out";
207+
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
208+
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
209+
};
210+
211+
mmc0_cd_pin_bananapi: mmc0_cd_pin@0 {
212+
allwinner,pins = "PH10";
213+
allwinner,function = "gpio_in";
214+
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
215+
allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
216+
};
217+
218+
mmc3_pwrseq_pin_bananapim1plus: mmc3_pwrseq_pin@0 {
219+
allwinner,pins = "PH22";
220+
allwinner,function = "gpio_out";
221+
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
222+
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
223+
};
224+
};
225+
226+
&uart0 {
227+
pinctrl-names = "default";
228+
pinctrl-0 = <&uart0_pins_a>;
229+
status = "okay";
230+
};

0 commit comments

Comments
 (0)