diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 3e899253..7f4999fc 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -603,6 +603,7 @@ dtb-$(CONFIG_MACH_SUN50I_H5) += \
 	sun50i-h5-orangepi-zero-plus2.dtb
 dtb-$(CONFIG_MACH_SUN50I_H6) += \
 	sun50i-h6-beelink-gs1.dtb \
+	sun50i-h6-clockworkpi-a04.dtb \
 	sun50i-h6-orangepi-3.dtb \
 	sun50i-h6-orangepi-lite2.dtb \
 	sun50i-h6-orangepi-one-plus.dtb \
diff --git a/arch/arm/dts/sun50i-h6-clockworkpi-a04.dts b/arch/arm/dts/sun50i-h6-clockworkpi-a04.dts
new file mode 100644
index 00000000..02651651
--- /dev/null
+++ b/arch/arm/dts/sun50i-h6-clockworkpi-a04.dts
@@ -0,0 +1,38 @@
+// SPDX-License-Identifier: (GPL-2.0+ or MIT)
+/*
+ * Copyright (C) 2018 Amarula Solutions
+ * Author: Jagan Teki <jagan@amarulasolutions.com>
+ */
+
+/dts-v1/;
+
+#include "sun50i-h6.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+	model = "Clockworkpi A04";
+	compatible = "clockwork,devterm-a04", "allwinner,sun50i-h6";
+
+	aliases {
+		serial0 = &uart0;
+	};
+
+	chosen {
+		stdout-path = "serial0:115200n8";
+	};
+};
+
+&mmc0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc0_pins>;
+	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
+	bus-width = <4>;
+	status = "okay";
+};
+
+&uart0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart0_ph_pins>;
+	status = "okay";
+};
diff --git a/configs/clockworkpi-a04-h6_defconfig b/configs/clockworkpi-a04-h6_defconfig
new file mode 100644
index 00000000..4844c725
--- /dev/null
+++ b/configs/clockworkpi-a04-h6_defconfig
@@ -0,0 +1,11 @@
+CONFIG_ARM=y
+CONFIG_ARCH_SUNXI=y
+CONFIG_MACH_SUN50I_H6=y
+CONFIG_SUNXI_DRAM_H6_LPDDR3=n
+CONFIG_SUNXI_DRAM_H6_DDR3_1333=y
+CONFIG_DRAM_ODT_EN=y
+CONFIG_MMC0_CD_PIN="PF6"
+CONFIG_MMC_SUNXI_SLOT_EXTRA=2
+CONFIG_HDMI_DDC_EN="PH2"
+CONFIG_DEFAULT_DEVICE_TREE="sun50i-h6-clockworkpi-a04"
+CONFIG_SPL=y
