diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi b/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi
index f110ee382..c25c08bae 100644
--- a/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi
+++ b/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi
@@ -51,6 +51,10 @@
 / {
 	aliases {
 		serial0 = &uart0;
+		serial1 = &uart1;
+		serial2 = &uart2;
+		serial3 = &uart3;
+		ethernet0 = &emac;
 	};
 
 	chosen {
@@ -89,10 +93,38 @@
 	};
 };
 
+&ehci0 {
+	status = "okay";
+};
+
+&ohci0 {
+	status = "okay";
+};
+
+&ehci1 {
+	status = "okay";
+};
+
+&ohci1 {
+	status = "okay";
+};
+
+&ehci2 {
+	status = "okay";
+};
+
+&ohci2 {
+	status = "okay";
+};
+
 &ehci3 {
 	status = "okay";
 };
 
+&ohci3 {
+	status = "okay";
+};
+
 &mmc0 {
 	bus-width = <4>;
 	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
@@ -100,10 +132,6 @@
 	vmmc-supply = <&reg_vcc3v3>;
 };
 
-&ohci3 {
-	status = "okay";
-};
-
 &pio {
 	leds_npi: led_pins {
 		pins = "PA10";
@@ -129,6 +157,25 @@
 	status = "okay";
 };
 
+&uart3 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart3_pins>, <&uart3_rts_cts_pins>;
+	status = "disabled";
+};
+
+&i2c0 {
+	status = "okay";
+};
+
+&usb_otg {
+	// OTG is not stable.
+	// most nanopi-h3's MicroUSB support OTG, except:
+	// 1. nanopi-neo-V1.4 support OTG, nanopi-neo-V1.3/1.2... support USB device.
+	// 2. nanopi-k1 only use as power.
+	dr_mode = "otg";
+	status = "okay";
+};
+
 &usbphy {
 	status = "okay";
 };
