[U-Boot] [PATCH 07/12] aspeed/ast2500: Helper function to get access to SCU

Maxim Sloyko
2017-01-04T19:46:51Z

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;
+}
+
--
2.11.0.390.gc69c2f50cf-goog