diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts
index 8ddd1b2..948d0af
--- a/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts
+++ b/arch/arm/boot/dts/sun8i-h3-nanopi-m1-plus.dts
@@ -43,8 +43,164 @@
 #include "sun8i-h3-nanopi.dtsi"

 / {
-	model = "FriendlyArm NanoPi M1 Plus";
+	model = "FriendlyElec NanoPi M1 Plus";
 	compatible = "friendlyarm,nanopi-m1-plus", "allwinner,sun8i-h3";
+
+	connector {
+		compatible = "hdmi-connector";
+		type = "a";
+
+		port {
+			hdmi_con_in: endpoint {
+				remote-endpoint = <&hdmi_out_con>;
+			};
+		};
+	};
+
+	wifi_pwrseq: wifi_pwrseq {
+        compatible = "mmc-pwrseq-simple";
+        pinctrl-names = "default";
+        pinctrl-0 = <&wifi_en_npi>;
+        reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
+        post-power-on-delay-ms = <200>;
+    };
+
+    reg_gmac_3v3: gmac-3v3 {
+        compatible = "regulator-fixed";
+        pinctrl-names = "default";
+        pinctrl-0 = <&gmac_power_pin_nanopi>;
+        regulator-name = "gmac-3v3";
+        regulator-min-microvolt = <3300000>;
+        regulator-max-microvolt = <3300000>;
+        startup-delay-us = <100000>;
+        enable-active-high;
+        gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
+    };
+
+    rfkill_bt {
+        compatible = "rfkill-gpio";
+        pinctrl-names = "default";
+        pinctrl-0 = <&bt_pwr_pin>;
+        reset-gpios = <&pio 6 13 GPIO_ACTIVE_HIGH>; /* PG13 */
+        clocks = <&osc32k>;
+        clock-frequency = <32768>;
+        rfkill-name = "sunxi-bt";
+        rfkill-type = "bluetooth";
+    };
+
+};
+
+&pio {
+    gmac_power_pin_nanopi: gmac_power_pin@0 {
+        pins = "PD6";
+        function = "gpio_out";
+    };
+    bt_pwr_pin: bt_pwr_pin@0 {
+        pins = "PG13";
+        function = "gpio_out";
+    };
+};
+
+&r_pio {
+    wifi_en_npi: wifi_en_pin {
+        pins = "PL7";
+        function = "gpio_out";
+    };
+};
+
+&mdio {
+    ext_rgmii_phy: ethernet-phy@1 {
+        reg = <0>;
+    };
+};
+
+&emac {
+    pinctrl-names = "default";
+    pinctrl-0 = <&emac_rgmii_pins>;
+    phy-supply = <&reg_gmac_3v3>;
+    phy-handle = <&ext_rgmii_phy>;
+    phy-mode = "rgmii";
+
+    allwinner,leds-active-low;
+    status = "okay";
+};
+
+&mmc1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc1_pins_a>;
+	vmmc-supply = <&reg_vcc3v3>;
+	vqmmc-supply = <&reg_vcc3v3>;
+	mmc-pwrseq = <&wifi_pwrseq>;
+	bus-width = <4>;
+	non-removable;
+	status = "okay";
+
+	brcmf: bcrmf@1 {
+		reg = <1>;
+		compatible = "brcm,bcm4329-fmac";
+		interrupt-parent = <&pio>;
+		interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */
+		interrupt-names = "host-wake";
+	};
+};
+
+&mmc2 {
+    pinctrl-names = "default";
+    pinctrl-0 = <&mmc2_8bit_pins>;
+    vmmc-supply = <&reg_vcc3v3>;
+    bus-width = <8>;
+    non-removable;
+    cap-mmc-hw-reset;
+    status = "okay";
+};
+
+&mmc2_8bit_pins {
+    /* Increase drive strength for DDR modes */
+    drive-strength = <40>;
+    /* eMMC is missing pull-ups */
+    bias-pull-up;
+};
+
+&codec {
+	allwinner,audio-routing =
+		"Line Out", "LINEOUT",
+		"MIC1", "Mic",
+		"Mic",  "MBIAS";
+	status = "okay";
+};
+
+&de {
+	status = "okay";
+};
+
+&hdmi {
+	status = "okay";
+};
+
+&hdmi_out {
+	hdmi_out_con: endpoint {
+		remote-endpoint = <&hdmi_con_in>;
+	};
+};
+
+&i2s2 {
+	status = "okay";
+};
+
+&mixer0 {
+	status = "okay";
+};
+
+&sound_hdmi {
+	status = "okay";
+};
+
+&tcon0 {
+	status = "okay";
+};
+
+&ehci0 {
+	status = "okay";
 };

 &ehci1 {
@@ -55,6 +207,10 @@
 	status = "okay";
 };

+&ohci0 {
+	status = "okay";
+};
+
 &ohci1 {
 	status = "okay";
 };
@@ -62,3 +218,13 @@
 &ohci2 {
 	status = "okay";
 };
+
+&r_i2c {
+	status = "okay";
+};
+
+&uart3 {
+    pinctrl-names = "default";
+    pinctrl-0 = <&uart3_pins>, <&uart3_rts_cts_pins>;
+    status = "okay";
+};
\ No newline at end of file
