diff options
Diffstat (limited to 'arch/arm/mach-stm32mp/syscon.c')
-rw-r--r-- | arch/arm/mach-stm32mp/syscon.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/arch/arm/mach-stm32mp/syscon.c b/arch/arm/mach-stm32mp/syscon.c new file mode 100644 index 00000000000..8bcbd979340 --- /dev/null +++ b/arch/arm/mach-stm32mp/syscon.c @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause +/* + * Copyright (C) 2018, STMicroelectronics - All Rights Reserved + */ + +#include <clk.h> +#include <dm.h> +#include <syscon.h> +#include <asm/arch/stm32.h> + +static const struct udevice_id stm32mp_syscon_ids[] = { + { .compatible = "st,stm32mp157-syscfg", .data = STM32MP_SYSCON_SYSCFG }, + { .compatible = "st,stm32mp25-syscfg", .data = STM32MP_SYSCON_SYSCFG}, + { } +}; + +static int stm32mp_syscon_probe(struct udevice *dev) +{ + struct clk_bulk clk_bulk; + int ret; + + ret = clk_get_bulk(dev, &clk_bulk); + if (!ret) + clk_enable_bulk(&clk_bulk); + + return 0; +} + +U_BOOT_DRIVER(syscon_stm32mp) = { + .name = "stmp32mp_syscon", + .id = UCLASS_SYSCON, + .of_match = stm32mp_syscon_ids, + .bind = dm_scan_fdt_dev, + .probe = stm32mp_syscon_probe, +}; |