All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] clk: ti: change clock init to use generic of_clk_init
@ 2014-08-21 13:49 ` Tero Kristo
  0 siblings, 0 replies; 14+ messages in thread
From: Tero Kristo @ 2014-08-21 13:49 UTC (permalink / raw)
  To: linux-omap
  Cc: linux-arm-kernel, Mike Turquette, Paul Walmsley, Tony Lindgren,
	Mark Rutland, Peter Ujfalusi, Jyri Sarha, Stefan Assmann

Previously, the TI clock driver initialized all the clocks hierarchically
under each separate clock provider node. Now, each clock that requires
IO access will instead check their parent node to find out which IO range
to use.

This patch allows the TI clock driver to use a few new features provided
by the generic of_clk_init, and also allows registration of clock nodes
outside the clock hierarchy (for example, any external clocks.)

Signed-off-by: Tero Kristo <t-kristo@ti.com>
Cc: Mike Turquette <mturquette@linaro.org>
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
Cc: Jyri Sarha <jsarha@ti.com>
Cc: Stefan Assmann <sassmann@kpanic.de>
---
 arch/arm/mach-omap2/io.c         |   10 ++++++++--
 arch/arm/mach-omap2/prm_common.c |    2 --
 drivers/clk/ti/clk.c             |   31 ++++++++++++++++---------------
 3 files changed, 24 insertions(+), 19 deletions(-)

diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index 5d0667c..3325df6 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -734,8 +734,14 @@ int __init omap_clk_init(void)
 	ti_clk_init_features();
 
 	ret = of_prcm_init();
-	if (!ret)
-		ret = omap_clk_soc_init();
+	if (ret)
+		return ret;
+
+	of_clk_init(NULL);
+
+	ti_dt_clockdomains_setup();
+
+	ret = omap_clk_soc_init();
 
 	return ret;
 }
diff --git a/arch/arm/mach-omap2/prm_common.c b/arch/arm/mach-omap2/prm_common.c
index 76ca320..3b89080 100644
--- a/arch/arm/mach-omap2/prm_common.c
+++ b/arch/arm/mach-omap2/prm_common.c
@@ -525,8 +525,6 @@ int __init of_prcm_init(void)
 		memmap_index++;
 	}
 
-	ti_dt_clockdomains_setup();
-
 	return 0;
 }
 
diff --git a/drivers/clk/ti/clk.c b/drivers/clk/ti/clk.c
index b1a6f71..f7201d0 100644
--- a/drivers/clk/ti/clk.c
+++ b/drivers/clk/ti/clk.c
@@ -25,8 +25,8 @@
 #undef pr_fmt
 #define pr_fmt(fmt) "%s: " fmt, __func__
 
-static int ti_dt_clk_memmap_index;
 struct ti_clk_ll_ops *ti_clk_ll_ops;
+static struct device_node *clocks_node_ptr[CLK_MAX_MEMMAPS];
 
 /**
  * ti_dt_clocks_register - register DT alias clocks during boot
@@ -108,9 +108,21 @@ void __iomem *ti_clk_get_reg_addr(struct device_node *node, int index)
 	struct clk_omap_reg *reg;
 	u32 val;
 	u32 tmp;
+	int i;
 
 	reg = (struct clk_omap_reg *)&tmp;
-	reg->index = ti_dt_clk_memmap_index;
+
+	for (i = 0; i < CLK_MAX_MEMMAPS; i++) {
+		if (clocks_node_ptr[i] == node->parent)
+			break;
+	}
+
+	if (i == CLK_MAX_MEMMAPS) {
+		pr_err("clk-provider not found for %s!\n", node->name);
+		return NULL;
+	}
+
+	reg->index = i;
 
 	if (of_property_read_u32_index(node, "reg", index, &val)) {
 		pr_err("%s must have reg[%d]!\n", node->name, index);
@@ -133,15 +145,10 @@ void __iomem *ti_clk_get_reg_addr(struct device_node *node, int index)
  */
 void ti_dt_clk_init_provider(struct device_node *parent, int index)
 {
-	const struct of_device_id *match;
-	struct device_node *np;
 	struct device_node *clocks;
-	of_clk_init_cb_t clk_init_cb;
 	struct clk_init_item *retry;
 	struct clk_init_item *tmp;
 
-	ti_dt_clk_memmap_index = index;
-
 	/* get clocks for this parent */
 	clocks = of_get_child_by_name(parent, "clocks");
 	if (!clocks) {
@@ -149,14 +156,8 @@ void ti_dt_clk_init_provider(struct device_node *parent, int index)
 		return;
 	}
 
-	for_each_child_of_node(clocks, np) {
-		match = of_match_node(&__clk_of_table, np);
-		if (!match)
-			continue;
-		clk_init_cb = (of_clk_init_cb_t)match->data;
-		pr_debug("%s: initializing: %s\n", __func__, np->name);
-		clk_init_cb(np);
-	}
+	/* add clocks node info */
+	clocks_node_ptr[index] = clocks;
 
 	list_for_each_entry_safe(retry, tmp, &retry_list, link) {
 		pr_debug("retry-init: %s\n", retry->node->name);
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH] clk: ti: change clock init to use generic of_clk_init
@ 2014-08-21 13:49 ` Tero Kristo
  0 siblings, 0 replies; 14+ messages in thread
From: Tero Kristo @ 2014-08-21 13:49 UTC (permalink / raw)
  To: linux-arm-kernel

Previously, the TI clock driver initialized all the clocks hierarchically
under each separate clock provider node. Now, each clock that requires
IO access will instead check their parent node to find out which IO range
to use.

This patch allows the TI clock driver to use a few new features provided
by the generic of_clk_init, and also allows registration of clock nodes
outside the clock hierarchy (for example, any external clocks.)

Signed-off-by: Tero Kristo <t-kristo@ti.com>
Cc: Mike Turquette <mturquette@linaro.org>
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
Cc: Jyri Sarha <jsarha@ti.com>
Cc: Stefan Assmann <sassmann@kpanic.de>
---
 arch/arm/mach-omap2/io.c         |   10 ++++++++--
 arch/arm/mach-omap2/prm_common.c |    2 --
 drivers/clk/ti/clk.c             |   31 ++++++++++++++++---------------
 3 files changed, 24 insertions(+), 19 deletions(-)

diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index 5d0667c..3325df6 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -734,8 +734,14 @@ int __init omap_clk_init(void)
 	ti_clk_init_features();
 
 	ret = of_prcm_init();
-	if (!ret)
-		ret = omap_clk_soc_init();
+	if (ret)
+		return ret;
+
+	of_clk_init(NULL);
+
+	ti_dt_clockdomains_setup();
+
+	ret = omap_clk_soc_init();
 
 	return ret;
 }
diff --git a/arch/arm/mach-omap2/prm_common.c b/arch/arm/mach-omap2/prm_common.c
index 76ca320..3b89080 100644
--- a/arch/arm/mach-omap2/prm_common.c
+++ b/arch/arm/mach-omap2/prm_common.c
@@ -525,8 +525,6 @@ int __init of_prcm_init(void)
 		memmap_index++;
 	}
 
-	ti_dt_clockdomains_setup();
-
 	return 0;
 }
 
diff --git a/drivers/clk/ti/clk.c b/drivers/clk/ti/clk.c
index b1a6f71..f7201d0 100644
--- a/drivers/clk/ti/clk.c
+++ b/drivers/clk/ti/clk.c
@@ -25,8 +25,8 @@
 #undef pr_fmt
 #define pr_fmt(fmt) "%s: " fmt, __func__
 
-static int ti_dt_clk_memmap_index;
 struct ti_clk_ll_ops *ti_clk_ll_ops;
+static struct device_node *clocks_node_ptr[CLK_MAX_MEMMAPS];
 
 /**
  * ti_dt_clocks_register - register DT alias clocks during boot
@@ -108,9 +108,21 @@ void __iomem *ti_clk_get_reg_addr(struct device_node *node, int index)
 	struct clk_omap_reg *reg;
 	u32 val;
 	u32 tmp;
+	int i;
 
 	reg = (struct clk_omap_reg *)&tmp;
-	reg->index = ti_dt_clk_memmap_index;
+
+	for (i = 0; i < CLK_MAX_MEMMAPS; i++) {
+		if (clocks_node_ptr[i] == node->parent)
+			break;
+	}
+
+	if (i == CLK_MAX_MEMMAPS) {
+		pr_err("clk-provider not found for %s!\n", node->name);
+		return NULL;
+	}
+
+	reg->index = i;
 
 	if (of_property_read_u32_index(node, "reg", index, &val)) {
 		pr_err("%s must have reg[%d]!\n", node->name, index);
@@ -133,15 +145,10 @@ void __iomem *ti_clk_get_reg_addr(struct device_node *node, int index)
  */
 void ti_dt_clk_init_provider(struct device_node *parent, int index)
 {
-	const struct of_device_id *match;
-	struct device_node *np;
 	struct device_node *clocks;
-	of_clk_init_cb_t clk_init_cb;
 	struct clk_init_item *retry;
 	struct clk_init_item *tmp;
 
-	ti_dt_clk_memmap_index = index;
-
 	/* get clocks for this parent */
 	clocks = of_get_child_by_name(parent, "clocks");
 	if (!clocks) {
@@ -149,14 +156,8 @@ void ti_dt_clk_init_provider(struct device_node *parent, int index)
 		return;
 	}
 
-	for_each_child_of_node(clocks, np) {
-		match = of_match_node(&__clk_of_table, np);
-		if (!match)
-			continue;
-		clk_init_cb = (of_clk_init_cb_t)match->data;
-		pr_debug("%s: initializing: %s\n", __func__, np->name);
-		clk_init_cb(np);
-	}
+	/* add clocks node info */
+	clocks_node_ptr[index] = clocks;
 
 	list_for_each_entry_safe(retry, tmp, &retry_list, link) {
 		pr_debug("retry-init: %s\n", retry->node->name);
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH] clk: ti: change clock init to use generic of_clk_init
  2014-08-21 13:49 ` Tero Kristo
@ 2014-08-27 15:15   ` Jyri Sarha
  -1 siblings, 0 replies; 14+ messages in thread
From: Jyri Sarha @ 2014-08-27 15:15 UTC (permalink / raw)
  To: Tero Kristo, linux-omap
  Cc: linux-arm-kernel, Mike Turquette, Paul Walmsley, Tony Lindgren,
	Mark Rutland, Peter Ujfalusi, Stefan Assmann

On 08/21/2014 04:49 PM, Tero Kristo wrote:
> Previously, the TI clock driver initialized all the clocks hierarchically
> under each separate clock provider node. Now, each clock that requires
> IO access will instead check their parent node to find out which IO range
> to use.
>
> This patch allows the TI clock driver to use a few new features provided
> by the generic of_clk_init, and also allows registration of clock nodes
> outside the clock hierarchy (for example, any external clocks.)
>
> Signed-off-by: Tero Kristo <t-kristo@ti.com>
> Cc: Mike Turquette <mturquette@linaro.org>
> Cc: Paul Walmsley <paul@pwsan.com>
> Cc: Tony Lindgren <tony@atomide.com>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: Stefan Assmann <sassmann@kpanic.de>

Tested-by: Jyri Sarha <jsarha@ti.com>


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH] clk: ti: change clock init to use generic of_clk_init
@ 2014-08-27 15:15   ` Jyri Sarha
  0 siblings, 0 replies; 14+ messages in thread
From: Jyri Sarha @ 2014-08-27 15:15 UTC (permalink / raw)
  To: linux-arm-kernel

On 08/21/2014 04:49 PM, Tero Kristo wrote:
> Previously, the TI clock driver initialized all the clocks hierarchically
> under each separate clock provider node. Now, each clock that requires
> IO access will instead check their parent node to find out which IO range
> to use.
>
> This patch allows the TI clock driver to use a few new features provided
> by the generic of_clk_init, and also allows registration of clock nodes
> outside the clock hierarchy (for example, any external clocks.)
>
> Signed-off-by: Tero Kristo <t-kristo@ti.com>
> Cc: Mike Turquette <mturquette@linaro.org>
> Cc: Paul Walmsley <paul@pwsan.com>
> Cc: Tony Lindgren <tony@atomide.com>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: Stefan Assmann <sassmann@kpanic.de>

Tested-by: Jyri Sarha <jsarha@ti.com>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] clk: ti: change clock init to use generic of_clk_init
  2014-08-21 13:49 ` Tero Kristo
@ 2014-09-18 17:17   ` Tony Lindgren
  -1 siblings, 0 replies; 14+ messages in thread
From: Tony Lindgren @ 2014-09-18 17:17 UTC (permalink / raw)
  To: Tero Kristo
  Cc: linux-omap, linux-arm-kernel, Mike Turquette, Paul Walmsley,
	Mark Rutland, Peter Ujfalusi, Jyri Sarha, Stefan Assmann

* Tero Kristo <t-kristo@ti.com> [140821 06:52]:
> Previously, the TI clock driver initialized all the clocks hierarchically
> under each separate clock provider node. Now, each clock that requires
> IO access will instead check their parent node to find out which IO range
> to use.
> 
> This patch allows the TI clock driver to use a few new features provided
> by the generic of_clk_init, and also allows registration of clock nodes
> outside the clock hierarchy (for example, any external clocks.)

Paul, any comments on this one?

Regards,

Tony
 
> Signed-off-by: Tero Kristo <t-kristo@ti.com>
> Cc: Mike Turquette <mturquette@linaro.org>
> Cc: Paul Walmsley <paul@pwsan.com>
> Cc: Tony Lindgren <tony@atomide.com>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: Stefan Assmann <sassmann@kpanic.de>
> ---
>  arch/arm/mach-omap2/io.c         |   10 ++++++++--
>  arch/arm/mach-omap2/prm_common.c |    2 --
>  drivers/clk/ti/clk.c             |   31 ++++++++++++++++---------------
>  3 files changed, 24 insertions(+), 19 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
> index 5d0667c..3325df6 100644
> --- a/arch/arm/mach-omap2/io.c
> +++ b/arch/arm/mach-omap2/io.c
> @@ -734,8 +734,14 @@ int __init omap_clk_init(void)
>  	ti_clk_init_features();
>  
>  	ret = of_prcm_init();
> -	if (!ret)
> -		ret = omap_clk_soc_init();
> +	if (ret)
> +		return ret;
> +
> +	of_clk_init(NULL);
> +
> +	ti_dt_clockdomains_setup();
> +
> +	ret = omap_clk_soc_init();
>  
>  	return ret;
>  }
> diff --git a/arch/arm/mach-omap2/prm_common.c b/arch/arm/mach-omap2/prm_common.c
> index 76ca320..3b89080 100644
> --- a/arch/arm/mach-omap2/prm_common.c
> +++ b/arch/arm/mach-omap2/prm_common.c
> @@ -525,8 +525,6 @@ int __init of_prcm_init(void)
>  		memmap_index++;
>  	}
>  
> -	ti_dt_clockdomains_setup();
> -
>  	return 0;
>  }
>  
> diff --git a/drivers/clk/ti/clk.c b/drivers/clk/ti/clk.c
> index b1a6f71..f7201d0 100644
> --- a/drivers/clk/ti/clk.c
> +++ b/drivers/clk/ti/clk.c
> @@ -25,8 +25,8 @@
>  #undef pr_fmt
>  #define pr_fmt(fmt) "%s: " fmt, __func__
>  
> -static int ti_dt_clk_memmap_index;
>  struct ti_clk_ll_ops *ti_clk_ll_ops;
> +static struct device_node *clocks_node_ptr[CLK_MAX_MEMMAPS];
>  
>  /**
>   * ti_dt_clocks_register - register DT alias clocks during boot
> @@ -108,9 +108,21 @@ void __iomem *ti_clk_get_reg_addr(struct device_node *node, int index)
>  	struct clk_omap_reg *reg;
>  	u32 val;
>  	u32 tmp;
> +	int i;
>  
>  	reg = (struct clk_omap_reg *)&tmp;
> -	reg->index = ti_dt_clk_memmap_index;
> +
> +	for (i = 0; i < CLK_MAX_MEMMAPS; i++) {
> +		if (clocks_node_ptr[i] == node->parent)
> +			break;
> +	}
> +
> +	if (i == CLK_MAX_MEMMAPS) {
> +		pr_err("clk-provider not found for %s!\n", node->name);
> +		return NULL;
> +	}
> +
> +	reg->index = i;
>  
>  	if (of_property_read_u32_index(node, "reg", index, &val)) {
>  		pr_err("%s must have reg[%d]!\n", node->name, index);
> @@ -133,15 +145,10 @@ void __iomem *ti_clk_get_reg_addr(struct device_node *node, int index)
>   */
>  void ti_dt_clk_init_provider(struct device_node *parent, int index)
>  {
> -	const struct of_device_id *match;
> -	struct device_node *np;
>  	struct device_node *clocks;
> -	of_clk_init_cb_t clk_init_cb;
>  	struct clk_init_item *retry;
>  	struct clk_init_item *tmp;
>  
> -	ti_dt_clk_memmap_index = index;
> -
>  	/* get clocks for this parent */
>  	clocks = of_get_child_by_name(parent, "clocks");
>  	if (!clocks) {
> @@ -149,14 +156,8 @@ void ti_dt_clk_init_provider(struct device_node *parent, int index)
>  		return;
>  	}
>  
> -	for_each_child_of_node(clocks, np) {
> -		match = of_match_node(&__clk_of_table, np);
> -		if (!match)
> -			continue;
> -		clk_init_cb = (of_clk_init_cb_t)match->data;
> -		pr_debug("%s: initializing: %s\n", __func__, np->name);
> -		clk_init_cb(np);
> -	}
> +	/* add clocks node info */
> +	clocks_node_ptr[index] = clocks;
>  
>  	list_for_each_entry_safe(retry, tmp, &retry_list, link) {
>  		pr_debug("retry-init: %s\n", retry->node->name);
> -- 
> 1.7.9.5
> 

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH] clk: ti: change clock init to use generic of_clk_init
@ 2014-09-18 17:17   ` Tony Lindgren
  0 siblings, 0 replies; 14+ messages in thread
From: Tony Lindgren @ 2014-09-18 17:17 UTC (permalink / raw)
  To: linux-arm-kernel

* Tero Kristo <t-kristo@ti.com> [140821 06:52]:
> Previously, the TI clock driver initialized all the clocks hierarchically
> under each separate clock provider node. Now, each clock that requires
> IO access will instead check their parent node to find out which IO range
> to use.
> 
> This patch allows the TI clock driver to use a few new features provided
> by the generic of_clk_init, and also allows registration of clock nodes
> outside the clock hierarchy (for example, any external clocks.)

Paul, any comments on this one?

Regards,

Tony
 
> Signed-off-by: Tero Kristo <t-kristo@ti.com>
> Cc: Mike Turquette <mturquette@linaro.org>
> Cc: Paul Walmsley <paul@pwsan.com>
> Cc: Tony Lindgren <tony@atomide.com>
> Cc: Mark Rutland <mark.rutland@arm.com>
> Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
> Cc: Jyri Sarha <jsarha@ti.com>
> Cc: Stefan Assmann <sassmann@kpanic.de>
> ---
>  arch/arm/mach-omap2/io.c         |   10 ++++++++--
>  arch/arm/mach-omap2/prm_common.c |    2 --
>  drivers/clk/ti/clk.c             |   31 ++++++++++++++++---------------
>  3 files changed, 24 insertions(+), 19 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
> index 5d0667c..3325df6 100644
> --- a/arch/arm/mach-omap2/io.c
> +++ b/arch/arm/mach-omap2/io.c
> @@ -734,8 +734,14 @@ int __init omap_clk_init(void)
>  	ti_clk_init_features();
>  
>  	ret = of_prcm_init();
> -	if (!ret)
> -		ret = omap_clk_soc_init();
> +	if (ret)
> +		return ret;
> +
> +	of_clk_init(NULL);
> +
> +	ti_dt_clockdomains_setup();
> +
> +	ret = omap_clk_soc_init();
>  
>  	return ret;
>  }
> diff --git a/arch/arm/mach-omap2/prm_common.c b/arch/arm/mach-omap2/prm_common.c
> index 76ca320..3b89080 100644
> --- a/arch/arm/mach-omap2/prm_common.c
> +++ b/arch/arm/mach-omap2/prm_common.c
> @@ -525,8 +525,6 @@ int __init of_prcm_init(void)
>  		memmap_index++;
>  	}
>  
> -	ti_dt_clockdomains_setup();
> -
>  	return 0;
>  }
>  
> diff --git a/drivers/clk/ti/clk.c b/drivers/clk/ti/clk.c
> index b1a6f71..f7201d0 100644
> --- a/drivers/clk/ti/clk.c
> +++ b/drivers/clk/ti/clk.c
> @@ -25,8 +25,8 @@
>  #undef pr_fmt
>  #define pr_fmt(fmt) "%s: " fmt, __func__
>  
> -static int ti_dt_clk_memmap_index;
>  struct ti_clk_ll_ops *ti_clk_ll_ops;
> +static struct device_node *clocks_node_ptr[CLK_MAX_MEMMAPS];
>  
>  /**
>   * ti_dt_clocks_register - register DT alias clocks during boot
> @@ -108,9 +108,21 @@ void __iomem *ti_clk_get_reg_addr(struct device_node *node, int index)
>  	struct clk_omap_reg *reg;
>  	u32 val;
>  	u32 tmp;
> +	int i;
>  
>  	reg = (struct clk_omap_reg *)&tmp;
> -	reg->index = ti_dt_clk_memmap_index;
> +
> +	for (i = 0; i < CLK_MAX_MEMMAPS; i++) {
> +		if (clocks_node_ptr[i] == node->parent)
> +			break;
> +	}
> +
> +	if (i == CLK_MAX_MEMMAPS) {
> +		pr_err("clk-provider not found for %s!\n", node->name);
> +		return NULL;
> +	}
> +
> +	reg->index = i;
>  
>  	if (of_property_read_u32_index(node, "reg", index, &val)) {
>  		pr_err("%s must have reg[%d]!\n", node->name, index);
> @@ -133,15 +145,10 @@ void __iomem *ti_clk_get_reg_addr(struct device_node *node, int index)
>   */
>  void ti_dt_clk_init_provider(struct device_node *parent, int index)
>  {
> -	const struct of_device_id *match;
> -	struct device_node *np;
>  	struct device_node *clocks;
> -	of_clk_init_cb_t clk_init_cb;
>  	struct clk_init_item *retry;
>  	struct clk_init_item *tmp;
>  
> -	ti_dt_clk_memmap_index = index;
> -
>  	/* get clocks for this parent */
>  	clocks = of_get_child_by_name(parent, "clocks");
>  	if (!clocks) {
> @@ -149,14 +156,8 @@ void ti_dt_clk_init_provider(struct device_node *parent, int index)
>  		return;
>  	}
>  
> -	for_each_child_of_node(clocks, np) {
> -		match = of_match_node(&__clk_of_table, np);
> -		if (!match)
> -			continue;
> -		clk_init_cb = (of_clk_init_cb_t)match->data;
> -		pr_debug("%s: initializing: %s\n", __func__, np->name);
> -		clk_init_cb(np);
> -	}
> +	/* add clocks node info */
> +	clocks_node_ptr[index] = clocks;
>  
>  	list_for_each_entry_safe(retry, tmp, &retry_list, link) {
>  		pr_debug("retry-init: %s\n", retry->node->name);
> -- 
> 1.7.9.5
> 

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] clk: ti: change clock init to use generic of_clk_init
  2014-09-18 17:17   ` Tony Lindgren
@ 2014-09-19 16:33     ` Paul Walmsley
  -1 siblings, 0 replies; 14+ messages in thread
From: Paul Walmsley @ 2014-09-19 16:33 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Tero Kristo, linux-omap, linux-arm-kernel, Mike Turquette,
	Mark Rutland, Peter Ujfalusi, Jyri Sarha, Stefan Assmann

On Thu, 18 Sep 2014, Tony Lindgren wrote:

> * Tero Kristo <t-kristo@ti.com> [140821 06:52]:
> > Previously, the TI clock driver initialized all the clocks hierarchically
> > under each separate clock provider node. Now, each clock that requires
> > IO access will instead check their parent node to find out which IO range
> > to use.
> > 
> > This patch allows the TI clock driver to use a few new features provided
> > by the generic of_clk_init, and also allows registration of clock nodes
> > outside the clock hierarchy (for example, any external clocks.)
> 
> Paul, any comments on this one?

Not at this point.


- Paul

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH] clk: ti: change clock init to use generic of_clk_init
@ 2014-09-19 16:33     ` Paul Walmsley
  0 siblings, 0 replies; 14+ messages in thread
From: Paul Walmsley @ 2014-09-19 16:33 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, 18 Sep 2014, Tony Lindgren wrote:

> * Tero Kristo <t-kristo@ti.com> [140821 06:52]:
> > Previously, the TI clock driver initialized all the clocks hierarchically
> > under each separate clock provider node. Now, each clock that requires
> > IO access will instead check their parent node to find out which IO range
> > to use.
> > 
> > This patch allows the TI clock driver to use a few new features provided
> > by the generic of_clk_init, and also allows registration of clock nodes
> > outside the clock hierarchy (for example, any external clocks.)
> 
> Paul, any comments on this one?

Not at this point.


- Paul

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] clk: ti: change clock init to use generic of_clk_init
  2014-09-19 16:33     ` Paul Walmsley
@ 2014-09-22  6:52       ` Tero Kristo
  -1 siblings, 0 replies; 14+ messages in thread
From: Tero Kristo @ 2014-09-22  6:52 UTC (permalink / raw)
  To: Paul Walmsley, Tony Lindgren
  Cc: linux-omap, linux-arm-kernel, Mike Turquette, Mark Rutland,
	Peter Ujfalusi, Jyri Sarha, Stefan Assmann

On 09/19/2014 07:33 PM, Paul Walmsley wrote:
> On Thu, 18 Sep 2014, Tony Lindgren wrote:
>
>> * Tero Kristo <t-kristo@ti.com> [140821 06:52]:
>>> Previously, the TI clock driver initialized all the clocks hierarchically
>>> under each separate clock provider node. Now, each clock that requires
>>> IO access will instead check their parent node to find out which IO range
>>> to use.
>>>
>>> This patch allows the TI clock driver to use a few new features provided
>>> by the generic of_clk_init, and also allows registration of clock nodes
>>> outside the clock hierarchy (for example, any external clocks.)
>>
>> Paul, any comments on this one?
>
> Not at this point.

Tony, ok to merge this through clock tree?

-Tero


^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH] clk: ti: change clock init to use generic of_clk_init
@ 2014-09-22  6:52       ` Tero Kristo
  0 siblings, 0 replies; 14+ messages in thread
From: Tero Kristo @ 2014-09-22  6:52 UTC (permalink / raw)
  To: linux-arm-kernel

On 09/19/2014 07:33 PM, Paul Walmsley wrote:
> On Thu, 18 Sep 2014, Tony Lindgren wrote:
>
>> * Tero Kristo <t-kristo@ti.com> [140821 06:52]:
>>> Previously, the TI clock driver initialized all the clocks hierarchically
>>> under each separate clock provider node. Now, each clock that requires
>>> IO access will instead check their parent node to find out which IO range
>>> to use.
>>>
>>> This patch allows the TI clock driver to use a few new features provided
>>> by the generic of_clk_init, and also allows registration of clock nodes
>>> outside the clock hierarchy (for example, any external clocks.)
>>
>> Paul, any comments on this one?
>
> Not at this point.

Tony, ok to merge this through clock tree?

-Tero

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] clk: ti: change clock init to use generic of_clk_init
  2014-09-22  6:52       ` Tero Kristo
@ 2014-09-22  7:55         ` Tero Kristo
  -1 siblings, 0 replies; 14+ messages in thread
From: Tero Kristo @ 2014-09-22  7:55 UTC (permalink / raw)
  To: Paul Walmsley, Tony Lindgren
  Cc: linux-omap, linux-arm-kernel, Mike Turquette, Mark Rutland,
	Peter Ujfalusi, Jyri Sarha, Stefan Assmann

On 09/22/2014 09:52 AM, Tero Kristo wrote:
> On 09/19/2014 07:33 PM, Paul Walmsley wrote:
>> On Thu, 18 Sep 2014, Tony Lindgren wrote:
>>
>>> * Tero Kristo <t-kristo@ti.com> [140821 06:52]:
>>>> Previously, the TI clock driver initialized all the clocks
>>>> hierarchically
>>>> under each separate clock provider node. Now, each clock that requires
>>>> IO access will instead check their parent node to find out which IO
>>>> range
>>>> to use.
>>>>
>>>> This patch allows the TI clock driver to use a few new features
>>>> provided
>>>> by the generic of_clk_init, and also allows registration of clock nodes
>>>> outside the clock hierarchy (for example, any external clocks.)
>>>
>>> Paul, any comments on this one?
>>
>> Not at this point.
>
> Tony, ok to merge this through clock tree?

Oh btw, this is v1, I posted v2 a week back here:

http://article.gmane.org/gmane.linux.ports.arm.omap/118551

v2 has the retry init logic fixed in it (mainly for DPLLs which can have 
two separate parents which of both must be available during init.)

-Tero

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH] clk: ti: change clock init to use generic of_clk_init
@ 2014-09-22  7:55         ` Tero Kristo
  0 siblings, 0 replies; 14+ messages in thread
From: Tero Kristo @ 2014-09-22  7:55 UTC (permalink / raw)
  To: linux-arm-kernel

On 09/22/2014 09:52 AM, Tero Kristo wrote:
> On 09/19/2014 07:33 PM, Paul Walmsley wrote:
>> On Thu, 18 Sep 2014, Tony Lindgren wrote:
>>
>>> * Tero Kristo <t-kristo@ti.com> [140821 06:52]:
>>>> Previously, the TI clock driver initialized all the clocks
>>>> hierarchically
>>>> under each separate clock provider node. Now, each clock that requires
>>>> IO access will instead check their parent node to find out which IO
>>>> range
>>>> to use.
>>>>
>>>> This patch allows the TI clock driver to use a few new features
>>>> provided
>>>> by the generic of_clk_init, and also allows registration of clock nodes
>>>> outside the clock hierarchy (for example, any external clocks.)
>>>
>>> Paul, any comments on this one?
>>
>> Not at this point.
>
> Tony, ok to merge this through clock tree?

Oh btw, this is v1, I posted v2 a week back here:

http://article.gmane.org/gmane.linux.ports.arm.omap/118551

v2 has the retry init logic fixed in it (mainly for DPLLs which can have 
two separate parents which of both must be available during init.)

-Tero

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] clk: ti: change clock init to use generic of_clk_init
  2014-09-22  7:55         ` Tero Kristo
@ 2014-09-23 15:49           ` Tony Lindgren
  -1 siblings, 0 replies; 14+ messages in thread
From: Tony Lindgren @ 2014-09-23 15:49 UTC (permalink / raw)
  To: Tero Kristo
  Cc: Paul Walmsley, linux-omap, linux-arm-kernel, Mike Turquette,
	Mark Rutland, Peter Ujfalusi, Jyri Sarha, Stefan Assmann

* Tero Kristo <t-kristo@ti.com> [140922 00:55]:
> On 09/22/2014 09:52 AM, Tero Kristo wrote:
> >On 09/19/2014 07:33 PM, Paul Walmsley wrote:
> >>On Thu, 18 Sep 2014, Tony Lindgren wrote:
> >>
> >>>* Tero Kristo <t-kristo@ti.com> [140821 06:52]:
> >>>>Previously, the TI clock driver initialized all the clocks
> >>>>hierarchically
> >>>>under each separate clock provider node. Now, each clock that requires
> >>>>IO access will instead check their parent node to find out which IO
> >>>>range
> >>>>to use.
> >>>>
> >>>>This patch allows the TI clock driver to use a few new features
> >>>>provided
> >>>>by the generic of_clk_init, and also allows registration of clock nodes
> >>>>outside the clock hierarchy (for example, any external clocks.)
> >>>
> >>>Paul, any comments on this one?
> >>
> >>Not at this point.
> >
> >Tony, ok to merge this through clock tree?
> 
> Oh btw, this is v1, I posted v2 a week back here:
> 
> http://article.gmane.org/gmane.linux.ports.arm.omap/118551
> 
> v2 has the retry init logic fixed in it (mainly for DPLLs which can have two
> separate parents which of both must be available during init.)

Oh OK. I acked that one so please feel free to merge it via the
clock tree. It does not seem to confilict with anything I have
queued up.

Regards,

Tony

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH] clk: ti: change clock init to use generic of_clk_init
@ 2014-09-23 15:49           ` Tony Lindgren
  0 siblings, 0 replies; 14+ messages in thread
From: Tony Lindgren @ 2014-09-23 15:49 UTC (permalink / raw)
  To: linux-arm-kernel

* Tero Kristo <t-kristo@ti.com> [140922 00:55]:
> On 09/22/2014 09:52 AM, Tero Kristo wrote:
> >On 09/19/2014 07:33 PM, Paul Walmsley wrote:
> >>On Thu, 18 Sep 2014, Tony Lindgren wrote:
> >>
> >>>* Tero Kristo <t-kristo@ti.com> [140821 06:52]:
> >>>>Previously, the TI clock driver initialized all the clocks
> >>>>hierarchically
> >>>>under each separate clock provider node. Now, each clock that requires
> >>>>IO access will instead check their parent node to find out which IO
> >>>>range
> >>>>to use.
> >>>>
> >>>>This patch allows the TI clock driver to use a few new features
> >>>>provided
> >>>>by the generic of_clk_init, and also allows registration of clock nodes
> >>>>outside the clock hierarchy (for example, any external clocks.)
> >>>
> >>>Paul, any comments on this one?
> >>
> >>Not at this point.
> >
> >Tony, ok to merge this through clock tree?
> 
> Oh btw, this is v1, I posted v2 a week back here:
> 
> http://article.gmane.org/gmane.linux.ports.arm.omap/118551
> 
> v2 has the retry init logic fixed in it (mainly for DPLLs which can have two
> separate parents which of both must be available during init.)

Oh OK. I acked that one so please feel free to merge it via the
clock tree. It does not seem to confilict with anything I have
queued up.

Regards,

Tony

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2014-09-23 15:50 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-21 13:49 [PATCH] clk: ti: change clock init to use generic of_clk_init Tero Kristo
2014-08-21 13:49 ` Tero Kristo
2014-08-27 15:15 ` Jyri Sarha
2014-08-27 15:15   ` Jyri Sarha
2014-09-18 17:17 ` Tony Lindgren
2014-09-18 17:17   ` Tony Lindgren
2014-09-19 16:33   ` Paul Walmsley
2014-09-19 16:33     ` Paul Walmsley
2014-09-22  6:52     ` Tero Kristo
2014-09-22  6:52       ` Tero Kristo
2014-09-22  7:55       ` Tero Kristo
2014-09-22  7:55         ` Tero Kristo
2014-09-23 15:49         ` Tony Lindgren
2014-09-23 15:49           ` Tony Lindgren

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.