Thread (4 messages) 4 messages, 3 authors, 2011-04-28
DORMANTno replies

[PATCH] at91: switch to CLKDEV_LOOKUP

From: Russell King - ARM Linux <hidden>
Date: 2011-04-28 19:22:37

On Wed, Apr 20, 2011 at 10:16:24AM +0200, Uwe Kleine-K?nig wrote:
Hello Jean-Christophe,

On Wed, Apr 20, 2011 at 05:59:29AM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
quoted
 /*
  * The five programmable clocks.
  * You must configure pin multiplexing to bring these signals out.
@@ -234,6 +265,13 @@ static struct clk pck3 = {
 	.id		= 3,
 };
 
+static struct clk_lookup program_clocks_lookups[] = {
+	CLKDEV_CON_ID("pck0", &pck0),
+	CLKDEV_CON_ID("pck1", &pck1),
+	CLKDEV_CON_ID("pck2", &pck2),
+	CLKDEV_CON_ID("pck3", &pck3),
+};
+
 static struct clk mAgicV_mem_clk = {
 	.name		= "mAgicV_mem_clk",
 	.pmc_mask	= AT91_PMC_PCK4,
@@ -241,6 +279,9 @@ static struct clk mAgicV_mem_clk = {
 	.id		= 4,
 };
 
+static struct clk_lookup mAgicV_mem_clk_lookup =
+	CLKDEV_CON_ID("mAgicV_mem_clk", &mAgicV_mem_clk);
+
 /* HClocks */
 static struct clk hck0 = {
 	.name		= "hck0",
@@ -255,6 +296,11 @@ static struct clk hck1 = {
 	.id		= 1,
 };
 
+static struct clk_lookup hc_clocks_lookups[] = {
+	CLKDEV_CON_ID("hck0", &hck0),
+	CLKDEV_CON_ID("hck1", &hck1),
+};
+
 static void __init at572d940hf_register_clocks(void)
 {
 	int i;
@@ -262,14 +308,32 @@ static void __init at572d940hf_register_clocks(void)
 	for (i = 0; i < ARRAY_SIZE(periph_clocks); i++)
 		clk_register(periph_clocks[i]);
 
+	clkdev_add_table(periph_clocks_lookups,
+			 ARRAY_SIZE(periph_clocks_lookups));
+
Does it make sense to add a (maybe global) helper function ? la:

	void __init clkdev_register_and_add_table(struct clk_lookup *cl, size_t num)
	{
		while (num--) {
			clk_register(&cl->clk);
			clkdev_add(cl);
			++cl;
		}
	}

? (The locking isn't optimal here, but I think you get the point.)
Err no.  clk_register() has nothing to do with clkdev, and actually
clkdev has no business knowing about clk_register() at all.  Note
that clk_register() is not part of the clk API but a private
function to the implementation.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help