
Helper function to get access to SCU (System Control Unit) through Clock driver. This is similar to rockchip_get_cru function, which was used as an example.
It will be used by other drivers to get access to SCU.
Signed-off-by: Maxim Sloyko maxims@google.com ---
arch/arm/mach-aspeed/Kconfig | 2 ++ arch/arm/mach-aspeed/Makefile | 1 + arch/arm/mach-aspeed/ast2500/Kconfig | 6 ++++++ arch/arm/mach-aspeed/ast2500/Makefile | 1 + arch/arm/mach-aspeed/ast2500/clk_ast2500.c | 31 ++++++++++++++++++++++++++++++ 5 files changed, 41 insertions(+) create mode 100644 arch/arm/mach-aspeed/ast2500/Kconfig create mode 100644 arch/arm/mach-aspeed/ast2500/Makefile create mode 100644 arch/arm/mach-aspeed/ast2500/clk_ast2500.c
diff --git a/arch/arm/mach-aspeed/Kconfig b/arch/arm/mach-aspeed/Kconfig index 43cdbeda84..4aba39cae5 100644 --- a/arch/arm/mach-aspeed/Kconfig +++ b/arch/arm/mach-aspeed/Kconfig @@ -12,4 +12,6 @@ config ASPEED_AST2500 help The Aspeed AST2500 is a ARM-based SoC with arm1176 CPU
+source "arch/arm/mach-aspeed/ast2500/Kconfig" + endif diff --git a/arch/arm/mach-aspeed/Makefile b/arch/arm/mach-aspeed/Makefile index a14b8f751d..1f7af71b03 100644 --- a/arch/arm/mach-aspeed/Makefile +++ b/arch/arm/mach-aspeed/Makefile @@ -5,3 +5,4 @@ #
obj-$(CONFIG_ARCH_ASPEED) += ast_wdt.o +obj-$(CONFIG_ASPEED_AST2500) += ast2500/ diff --git a/arch/arm/mach-aspeed/ast2500/Kconfig b/arch/arm/mach-aspeed/ast2500/Kconfig new file mode 100644 index 0000000000..c0b448f19e --- /dev/null +++ b/arch/arm/mach-aspeed/ast2500/Kconfig @@ -0,0 +1,6 @@ +if ASPEED_AST2500 + +config SYS_CPU + default "arm1176" + +endif diff --git a/arch/arm/mach-aspeed/ast2500/Makefile b/arch/arm/mach-aspeed/ast2500/Makefile new file mode 100644 index 0000000000..97d4078ddd --- /dev/null +++ b/arch/arm/mach-aspeed/ast2500/Makefile @@ -0,0 +1 @@ +obj-y += clk_ast2500.o diff --git a/arch/arm/mach-aspeed/ast2500/clk_ast2500.c b/arch/arm/mach-aspeed/ast2500/clk_ast2500.c new file mode 100644 index 0000000000..06aca5d63a --- /dev/null +++ b/arch/arm/mach-aspeed/ast2500/clk_ast2500.c @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2016 Google, Inc + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <common.h> +#include <dm.h> +#include <asm/arch/scu_ast2500.h> + +int ast_get_clk(struct udevice **devp) +{ + return uclass_get_device_by_driver(UCLASS_CLK, + DM_GET_DRIVER(aspeed_ast2500_scu), devp); +} + +void *ast_get_scu(void) +{ + struct ast2500_clk_priv *priv; + struct udevice *dev; + int ret; + + ret = ast_get_clk(&dev); + if (ret) + return ERR_PTR(ret); + + priv = dev_get_priv(dev); + + return priv->scu; +} +