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

Maxim Sloyko maxims at google.com
Wed Jan 4 20:46:51 CET 2017


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 at 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



More information about the U-Boot mailing list