Skip to content
Snippets Groups Projects
Commit 4e280b91 authored by Christophe Kerello's avatar Christophe Kerello Committed by Tom Rini
Browse files

dm: misc: add stm32 rcc driver


This patch adds the support of reset and clock control
block (rcc) found on STM32 SoCs.
This driver is similar to a MFD linux driver.

This driver supports currently STM32H7 only.
STM32F4 and STM32F7 will be migrated to this rcc MFD driver
in the future to uniformize all STM32 SoCs already upstreamed.

Signed-off-by: default avatarChristophe Kerello <christophe.kerello@st.com>
Signed-off-by: default avatarPatrice Chotard <patrice.chotard@st.com>
Reviewed-by: default avatarVikas Manocha <vikas.manocha@st.com>
Reviewed-by: default avatarSimon Glass <sjg@chromium.org>
parent 23a06416
No related branches found
No related tags found
No related merge requests found
...@@ -158,6 +158,15 @@ config PCA9551_I2C_ADDR ...@@ -158,6 +158,15 @@ config PCA9551_I2C_ADDR
help help
The I2C address of the PCA9551 LED controller. 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 config TEGRA_CAR
bool "Enable support for the Tegra CAR driver" bool "Enable support for the Tegra CAR driver"
depends on TEGRA_NO_BPMP depends on TEGRA_NO_BPMP
......
...@@ -52,3 +52,4 @@ obj-$(CONFIG_FSL_DEVICE_DISABLE) += fsl_devdis.o ...@@ -52,3 +52,4 @@ obj-$(CONFIG_FSL_DEVICE_DISABLE) += fsl_devdis.o
obj-$(CONFIG_WINBOND_W83627) += winbond_w83627.o obj-$(CONFIG_WINBOND_W83627) += winbond_w83627.o
obj-$(CONFIG_QFW) += qfw.o obj-$(CONFIG_QFW) += qfw.o
obj-$(CONFIG_ROCKCHIP_EFUSE) += rockchip-efuse.o obj-$(CONFIG_ROCKCHIP_EFUSE) += rockchip-efuse.o
obj-$(CONFIG_STM32_RCC) += stm32_rcc.o
/*
* 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,
};
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment