diff -ruN old/arch/arm/boot/dts/sun7i-a20-bananapi.dts new/arch/arm/boot/dts/sun7i-a20-bananapi.dts
--- old/arch/arm/boot/dts/sun7i-a20-bananapi.dts	2014-09-19 01:08:58.000000000 +0200
+++ new/arch/arm/boot/dts/sun7i-a20-bananapi.dts	2014-09-19 01:05:02.000000000 +0200
@@ -86,6 +86,13 @@
 				allwinner,drive = <0>;
 				allwinner,pull = <1>;
 			};
+			
+			gmac_power_pin_bananapi: gmac_power_pin@0 {
+				allwinner,pins = "PH23";
+				allwinner,function = "gpio_out";
+				allwinner,drive = <0>;
+				allwinner,pull = <0>;
+			};
 		};
 
 		lradc: lradc@01c22800 {
@@ -134,9 +141,10 @@
 
 		gmac: ethernet@01c50000 {
 			pinctrl-names = "default";
-			pinctrl-0 = <&gmac_pins_mii_a>;
+			pinctrl-0 = <&gmac_pins_rgmii_a>;
 			phy = <&phy1>;
-			phy-mode = "mii";
+			phy-mode = "rgmii";
+			phy-supply = <&reg_gmac_3v3>;
 			status = "okay";
 
 			phy1: ethernet-phy@1 {
@@ -169,4 +177,16 @@
                 status = "okay";
         };
 
+	reg_gmac_3v3: gmac-3v3 {
+			compatible = "regulator-fixed";
+			pinctrl-names = "default";
+			pinctrl-0 = <&gmac_power_pin_bananapi>;
+			regulator-name = "gmac-3v3";
+			regulator-min-microvolt = <3300000>;
+			regulator-max-microvolt = <3300000>;
+			startup-delay-us = <50000>;
+			enable-active-high;
+			gpio = <&pio 7 23 0>;
+			status = "okay";
+	};
 };
