diff --git a/arch/arm/mach-rockchip/rk3036/Makefile b/arch/arm/mach-rockchip/rk3036/Makefile
index a48334733580d34601bd16691280c5ed87c27d5f..5d14b95eb1b4dad8dbe4a7f71315923b50591736 100644
--- a/arch/arm/mach-rockchip/rk3036/Makefile
+++ b/arch/arm/mach-rockchip/rk3036/Makefile
@@ -6,5 +6,5 @@
 
 ifndef CONFIG_SPL_BUILD
 obj-y += reset_rk3036.o
+obj-y += syscon_rk3036.o
 endif
-
diff --git a/arch/arm/mach-rockchip/rk3036/syscon_rk3036.c b/arch/arm/mach-rockchip/rk3036/syscon_rk3036.c
new file mode 100644
index 0000000000000000000000000000000000000000..965afde4a02c57240ef1aedde7a7096bee16f722
--- /dev/null
+++ b/arch/arm/mach-rockchip/rk3036/syscon_rk3036.c
@@ -0,0 +1,21 @@
+/*
+ * (C) Copyright 2015 Rockchip Electronics Co., Ltd
+ *
+ * SPDX-License-Identifier:     GPL-2.0+
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <syscon.h>
+#include <asm/arch/clock.h>
+
+static const struct udevice_id rk3036_syscon_ids[] = {
+	{ .compatible = "rockchip,rk3036-grf", .data = ROCKCHIP_SYSCON_GRF },
+	{ }
+};
+
+U_BOOT_DRIVER(syscon_rk3036) = {
+	.name = "rk3036_syscon",
+	.id = UCLASS_SYSCON,
+	.of_match = rk3036_syscon_ids,
+};