1// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
2/*
3 * Copyright (C) 2018, STMicroelectronics - All Rights Reserved
4 */
5
6#include <common.h>
7#include <clk.h>
8#include <dm.h>
9#include <syscon.h>
10#include <asm/arch/stm32.h>
11
12static const struct udevice_id stm32mp_syscon_ids[] = {
13	{ .compatible = "st,stm32mp157-syscfg", .data = STM32MP_SYSCON_SYSCFG },
14	{ .compatible = "st,stm32mp25-syscfg", .data = STM32MP_SYSCON_SYSCFG},
15	{ }
16};
17
18static int stm32mp_syscon_probe(struct udevice *dev)
19{
20	struct clk_bulk clk_bulk;
21	int ret;
22
23	ret = clk_get_bulk(dev, &clk_bulk);
24	if (!ret)
25		clk_enable_bulk(&clk_bulk);
26
27	return 0;
28}
29
30U_BOOT_DRIVER(syscon_stm32mp) = {
31	.name = "stmp32mp_syscon",
32	.id = UCLASS_SYSCON,
33	.of_match = stm32mp_syscon_ids,
34	.bind = dm_scan_fdt_dev,
35	.probe = stm32mp_syscon_probe,
36};
37