dbc4a9b
From: Hans de Goede <hdegoede@redhat.com>
dbc4a9b
Date: Tue, 30 Sep 2014 14:29:26 +0100
dbc4a9b
Subject: [PATCH] arm: dts sun7i bananapi
dbc4a9b
dbc4a9b
The Banana Pi is an A20 based development board using Raspberry Pi compatible
dbc4a9b
IO headers. It comes with 1 GB RAM, 1 Gb ethernet, 2x USB host, sata, hdmi
dbc4a9b
and stereo audio out + various expenansion headers:
dbc4a9b
dbc4a9b
Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
dbc4a9b
---
dbc4a9b
 arch/arm/boot/dts/Makefile               |   1 +
dbc4a9b
 arch/arm/boot/dts/sun7i-a20-bananapi.dts | 177 +++++++++++++++++++++++++++++++
dbc4a9b
 2 files changed, 178 insertions(+)
dbc4a9b
 create mode 100644 arch/arm/boot/dts/sun7i-a20-bananapi.dts
dbc4a9b
dbc4a9b
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
e241709
index e6aa6e77a3ec..0e858ebdad9e 100644
dbc4a9b
--- a/arch/arm/boot/dts/Makefile
dbc4a9b
+++ b/arch/arm/boot/dts/Makefile
dbc4a9b
@@ -414,6 +414,7 @@ dtb-$(CONFIG_MACH_SUN6I) += \
dbc4a9b
 	sun6i-a31-hummingbird.dtb \
dbc4a9b
 	sun6i-a31-m9.dtb
dbc4a9b
 dtb-$(CONFIG_MACH_SUN7I) += \
dbc4a9b
+	sun7i-a20-bananapi.dtb \
dbc4a9b
 	sun7i-a20-cubieboard2.dtb \
dbc4a9b
 	sun7i-a20-cubietruck.dtb \
dbc4a9b
 	sun7i-a20-i12-tvbox.dtb \
dbc4a9b
diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi.dts b/arch/arm/boot/dts/sun7i-a20-bananapi.dts
dbc4a9b
new file mode 100644
dbc4a9b
index 000000000000..7214475a3c36
dbc4a9b
--- /dev/null
dbc4a9b
+++ b/arch/arm/boot/dts/sun7i-a20-bananapi.dts
dbc4a9b
@@ -0,0 +1,177 @@
dbc4a9b
+/*
dbc4a9b
+ * Copyright 2014 Hans de Goede <hdegoede@xxxxxxxxxx>
dbc4a9b
+ *
dbc4a9b
+ * The code contained herein is licensed under the GNU General Public
dbc4a9b
+ * License. You may obtain a copy of the GNU General Public License
dbc4a9b
+ * Version 2 or later at the following locations:
dbc4a9b
+ *
dbc4a9b
+ * http://www.opensource.org/licenses/gpl-license.html
dbc4a9b
+ * http://www.gnu.org/copyleft/gpl.html
dbc4a9b
+ */
dbc4a9b
+
dbc4a9b
+/dts-v1/;
dbc4a9b
+/include/ "sun7i-a20.dtsi"
dbc4a9b
+/include/ "sunxi-common-regulators.dtsi"
dbc4a9b
+
dbc4a9b
+/ {
dbc4a9b
+	model = "LeMaker Banana Pi";
dbc4a9b
+	compatible = "lemaker,bananapi", "allwinner,sun7i-a20";
dbc4a9b
+
dbc4a9b
+	soc@01c00000 {
dbc4a9b
+		mmc0: mmc@01c0f000 {
dbc4a9b
+			pinctrl-names = "default";
dbc4a9b
+			pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_bananapi>;
dbc4a9b
+			vmmc-supply = <&reg_vcc3v3>;
dbc4a9b
+			bus-width = <4>;
dbc4a9b
+			cd-gpios = <&pio 7 10 0>; /* PH10 */
dbc4a9b
+			cd-inverted;
dbc4a9b
+			status = "okay";
dbc4a9b
+		};
dbc4a9b
+
dbc4a9b
+		usbphy: phy@01c13400 {
dbc4a9b
+			usb1_vbus-supply = <&reg_usb1_vbus>;
dbc4a9b
+			usb2_vbus-supply = <&reg_usb2_vbus>;
dbc4a9b
+			status = "okay";
dbc4a9b
+		};
dbc4a9b
+
dbc4a9b
+		ehci0: usb@01c14000 {
dbc4a9b
+			status = "okay";
dbc4a9b
+		};
dbc4a9b
+
dbc4a9b
+		ohci0: usb@01c14400 {
dbc4a9b
+			status = "okay";
dbc4a9b
+		};
dbc4a9b
+
dbc4a9b
+		ahci: sata@01c18000 {
dbc4a9b
+			status = "okay";
dbc4a9b
+		};
dbc4a9b
+
dbc4a9b
+		ehci1: usb@01c1c000 {
dbc4a9b
+			status = "okay";
dbc4a9b
+		};
dbc4a9b
+
dbc4a9b
+		ohci1: usb@01c1c400 {
dbc4a9b
+			status = "okay";
dbc4a9b
+		};
dbc4a9b
+
dbc4a9b
+		pinctrl@01c20800 {
dbc4a9b
+			uart3_pins_bananapi: uart3_pin@0 {
dbc4a9b
+				allwinner,pins = "PH0", "PH1";
dbc4a9b
+				allwinner,function = "uart3";
dbc4a9b
+				allwinner,drive = <0>;
dbc4a9b
+				allwinner,pull = <0>;
dbc4a9b
+			};
dbc4a9b
+
dbc4a9b
+			mmc0_cd_pin_bananapi: mmc0_cd_pin@0 {
dbc4a9b
+				allwinner,pins = "PH10";
dbc4a9b
+				allwinner,function = "gpio_in";
dbc4a9b
+				allwinner,drive = <0>;
dbc4a9b
+				allwinner,pull = <1>;
dbc4a9b
+			};
dbc4a9b
+
dbc4a9b
+			gmac_power_pin_bananapi: gmac_power_pin@0 {
dbc4a9b
+				allwinner,pins = "PH23";
dbc4a9b
+				allwinner,function = "gpio_out";
dbc4a9b
+				allwinner,drive = <0>;
dbc4a9b
+				allwinner,pull = <0>;
dbc4a9b
+			};
dbc4a9b
+
dbc4a9b
+			led_pins_bananapi: led_pins@0 {
dbc4a9b
+				allwinner,pins = "PH24";
dbc4a9b
+				allwinner,function = "gpio_out";
dbc4a9b
+				allwinner,drive = <0>;
dbc4a9b
+				allwinner,pull = <0>;
dbc4a9b
+			};
dbc4a9b
+		};
dbc4a9b
+
dbc4a9b
+		ir0: ir@01c21800 {
dbc4a9b
+			pinctrl-names = "default";
dbc4a9b
+			pinctrl-0 = <&ir0_pins_a>;
dbc4a9b
+			status = "okay";
dbc4a9b
+		};
dbc4a9b
+
dbc4a9b
+		uart0: serial@01c28000 {
dbc4a9b
+			pinctrl-names = "default";
dbc4a9b
+			pinctrl-0 = <&uart0_pins_a>;
dbc4a9b
+			status = "okay";
dbc4a9b
+		};
dbc4a9b
+
dbc4a9b
+		uart3: serial@01c28c00 {
dbc4a9b
+			pinctrl-names = "default";
dbc4a9b
+			pinctrl-0 = <&uart3_pins_bananapi>;
dbc4a9b
+			status = "okay";
dbc4a9b
+		};
dbc4a9b
+
dbc4a9b
+		uart7: serial@01c29c00 {
dbc4a9b
+			pinctrl-names = "default";
dbc4a9b
+			pinctrl-0 = <&uart7_pins_a>;
dbc4a9b
+			status = "okay";
dbc4a9b
+		};
dbc4a9b
+
dbc4a9b
+		i2c0: i2c@01c2ac00 {
dbc4a9b
+			pinctrl-names = "default";
dbc4a9b
+			pinctrl-0 = <&i2c0_pins_a>;
dbc4a9b
+			status = "okay";
dbc4a9b
+
dbc4a9b
+			axp209: pmic@34 {
dbc4a9b
+				compatible = "x-powers,axp209";
dbc4a9b
+				reg = <0x34>;
dbc4a9b
+				interrupt-parent = <&nmi_intc>;
dbc4a9b
+				interrupts = <0 8>;
dbc4a9b
+
dbc4a9b
+				interrupt-controller;
dbc4a9b
+				#interrupt-cells = <1>;
dbc4a9b
+			};
dbc4a9b
+		};
dbc4a9b
+
dbc4a9b
+		i2c2: i2c@01c2b400 {
dbc4a9b
+			pinctrl-names = "default";
dbc4a9b
+			pinctrl-0 = <&i2c2_pins_a>;
dbc4a9b
+			status = "okay";
dbc4a9b
+		};
dbc4a9b
+
dbc4a9b
+		gmac: ethernet@01c50000 {
dbc4a9b
+			pinctrl-names = "default";
dbc4a9b
+			pinctrl-0 = <&gmac_pins_rgmii_a>;
dbc4a9b
+			phy = <&phy1>;
dbc4a9b
+			phy-mode = "rgmii";
dbc4a9b
+			phy-supply = <&reg_gmac_3v3>;
dbc4a9b
+			status = "okay";
dbc4a9b
+
dbc4a9b
+			phy1: ethernet-phy@1 {
dbc4a9b
+				reg = <1>;
dbc4a9b
+			};
dbc4a9b
+		};
dbc4a9b
+	};
dbc4a9b
+
dbc4a9b
+	leds {
dbc4a9b
+		compatible = "gpio-leds";
dbc4a9b
+		pinctrl-names = "default";
dbc4a9b
+		pinctrl-0 = <&led_pins_bananapi>;
dbc4a9b
+
dbc4a9b
+		green {
dbc4a9b
+			label = "bananapi:green:usr";
dbc4a9b
+			gpios = <&pio 7 24 0>;
dbc4a9b
+		};
dbc4a9b
+	};
dbc4a9b
+
dbc4a9b
+	reg_usb1_vbus: usb1-vbus {
dbc4a9b
+		status = "okay";
dbc4a9b
+	};
dbc4a9b
+
dbc4a9b
+	reg_usb2_vbus: usb2-vbus {
dbc4a9b
+		status = "okay";
dbc4a9b
+	};
dbc4a9b
+
dbc4a9b
+	reg_gmac_3v3: gmac-3v3 {
dbc4a9b
+		compatible = "regulator-fixed";
dbc4a9b
+		pinctrl-names = "default";
dbc4a9b
+		pinctrl-0 = <&gmac_power_pin_bananapi>;
dbc4a9b
+		regulator-name = "gmac-3v3";
dbc4a9b
+		regulator-min-microvolt = <3300000>;
dbc4a9b
+		regulator-max-microvolt = <3300000>;
dbc4a9b
+		startup-delay-us = <50000>;
dbc4a9b
+		enable-active-high;
dbc4a9b
+		gpio = <&pio 7 23 0>;
dbc4a9b
+	};
dbc4a9b
+};
dbc4a9b
-- 
c47527a
2.1.0
dbc4a9b