diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index 4133017e32d8949017adf5a2dc098cca175f2f01..f1c15cb9fa4060eb62a1606930eb5f6794e63509 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -158,6 +158,15 @@ config PCA9551_I2C_ADDR
 	help
 	  The I2C address of the PCA9551 LED controller.
 
+config STM32_RCC
+	bool "Enable RCC driver for the STM32 SoC's family"
+	depends on STM32 && MISC
+	help
+	  Enable the STM32 RCC driver. The RCC block (Reset and Clock Control
+	  block) is responsible of the management of the clock and reset
+	  generation.
+	  This driver is similar to an MFD driver in the Linux kernel.
+
 config TEGRA_CAR
 	bool "Enable support for the Tegra CAR driver"
 	depends on TEGRA_NO_BPMP
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index 21f7e6c6f58175e37545e88fab97414f50e29507..ada76244171f0ded42bdd73ec968ac67d204648b 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -52,3 +52,4 @@ obj-$(CONFIG_FSL_DEVICE_DISABLE) += fsl_devdis.o
 obj-$(CONFIG_WINBOND_W83627) += winbond_w83627.o
 obj-$(CONFIG_QFW) += qfw.o
 obj-$(CONFIG_ROCKCHIP_EFUSE) += rockchip-efuse.o
+obj-$(CONFIG_STM32_RCC) += stm32_rcc.o
diff --git a/drivers/misc/stm32_rcc.c b/drivers/misc/stm32_rcc.c
new file mode 100644
index 0000000000000000000000000000000000000000..a6c2a757ec00f837200e3087f14fbcadef6b2176
--- /dev/null
+++ b/drivers/misc/stm32_rcc.c
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) STMicroelectronics SA 2017
+ * Author(s): Patrice CHOTARD, <patrice.chotard@st.com> for STMicroelectronics.
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <misc.h>
+#include <dm/lists.h>
+
+static int stm32_rcc_bind(struct udevice *dev)
+{
+	int ret;
+	struct udevice *child;
+
+	debug("%s(dev=%p)\n", __func__, dev);
+
+	ret = device_bind_driver_to_node(dev, "stm32h7_rcc_clock",
+					 "stm32h7_rcc_clock",
+					 dev_ofnode(dev), &child);
+	if (ret)
+		return ret;
+
+	return device_bind_driver_to_node(dev, "stm32_rcc_reset",
+					  "stm32_rcc_reset",
+					  dev_ofnode(dev), &child);
+}
+
+static const struct misc_ops stm32_rcc_ops = {
+};
+
+static const struct udevice_id stm32_rcc_ids[] = {
+	{.compatible = "st,stm32h743-rcc"},
+	{ }
+};
+
+U_BOOT_DRIVER(stm32_rcc) = {
+	.name		= "stm32-rcc",
+	.id		= UCLASS_MISC,
+	.of_match	= stm32_rcc_ids,
+	.bind		= stm32_rcc_bind,
+	.ops		= &stm32_rcc_ops,
+};