[PATCH 5/5] versatilek: switch to static allocation clkdev

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Mon Aug 8 17:17:16 EDT 2011


as we need to register it before the device

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
---
 arch/arm/mach-versatile/core.c                |   19 ++++++++++++++++---
 arch/arm/mach-versatile/include/mach/clkdev.h |    6 ++++++
 2 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c
index 28582f7..f58e3bd 100644
--- a/arch/arm/mach-versatile/core.c
+++ b/arch/arm/mach-versatile/core.c
@@ -144,10 +144,24 @@ static int vpb_clocksource_init(void)
 
 core_initcall(vpb_clocksource_init);
 
+static struct clk_lookup clocks_lookups[] = {
+	CLKDEV_CON_ID("uart-pl0110", &ref_clk_24),
+	CLKDEV_CON_ID("uart-pl0111", &ref_clk_24),
+	CLKDEV_CON_ID("uart-pl0112", &ref_clk_24),
+	CLKDEV_CON_ID("uart-pl0113", &ref_clk_24),
+};
+
+static int versatile_clkdev_init(void)
+{
+	clkdev_add_table(clocks_lookups, ARRAY_SIZE(clocks_lookups));
+
+	return 0;
+}
+postcore_initcall(versatile_clkdev_init);
+
 void versatile_register_uart(unsigned id)
 {
 	resource_size_t start;
-	struct device_d *dev;
 
 	switch (id) {
 	case 0:
@@ -165,9 +179,8 @@ void versatile_register_uart(unsigned id)
 	default:
 		return;
 	}
-	dev = add_generic_device("uart-pl011", id, NULL, start, 4096,
+	add_generic_device("uart-pl011", id, NULL, start, 4096,
 			   IORESOURCE_MEM, NULL);
-	vpb_clk_create(&ref_clk_24, dev_name(dev));
 }
 
 void __noreturn reset_cpu (unsigned long ignored)
diff --git a/arch/arm/mach-versatile/include/mach/clkdev.h b/arch/arm/mach-versatile/include/mach/clkdev.h
index 04b37a8..a9092a2 100644
--- a/arch/arm/mach-versatile/include/mach/clkdev.h
+++ b/arch/arm/mach-versatile/include/mach/clkdev.h
@@ -4,4 +4,10 @@
 #define __clk_get(clk) ({ 1; })
 #define __clk_put(clk) do { } while (0)
 
+#define CLKDEV_CON_ID(_id, _clk)			\
+	{						\
+		.con_id = _id,				\
+		.clk = _clk,				\
+	}
+
 #endif
-- 
1.7.5.4




More information about the barebox mailing list