* [PATCH 2/4] ARM: imx: set CKO1 parent clock source in imx6q sabresd
@ 2013-01-29 7:49 Gary Zhang
2013-01-29 11:28 ` Shawn Guo
0 siblings, 1 reply; 3+ messages in thread
From: Gary Zhang @ 2013-01-29 7:49 UTC (permalink / raw)
To: shawn.guo, kernel, linux; +Cc: linux-kernel
in imx6q sabresd board, wm8962 uses CKO1 as MCLK. set ahb as CKO1
parent clock source
Signed-off-by: Gary Zhang <b13634@freescale.com>
---
arch/arm/mach-imx/mach-imx6q.c | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c
index 4eb1b3a..ee3f357 100644
--- a/arch/arm/mach-imx/mach-imx6q.c
+++ b/arch/arm/mach-imx/mach-imx6q.c
@@ -151,6 +151,36 @@ static void __init imx6q_sabrelite_init(void)
imx6q_sabrelite_cko1_setup();
}
+static void __init imx6q_sabresd_cko1_setup(void)
+{
+ struct clk *cko1_sel, *ahb, *cko1;
+ unsigned long rate;
+
+ cko1_sel = clk_get_sys(NULL, "cko1_sel");
+ ahb = clk_get_sys(NULL, "ahb");
+ cko1 = clk_get_sys(NULL, "cko1");
+ if (IS_ERR(cko1_sel) || IS_ERR(ahb) || IS_ERR(cko1)) {
+ pr_err("cko1 setup failed!\n");
+ goto put_clk;
+ }
+ clk_set_parent(cko1_sel, ahb);
+ rate = clk_round_rate(cko1, 24000000);
+ clk_set_rate(cko1, rate);
+
+ return;
+put_clk:
+ if (!IS_ERR(cko1_sel))
+ clk_put(cko1_sel);
+ if (!IS_ERR(ahb))
+ clk_put(ahb);
+ if (!IS_ERR(cko1))
+ clk_put(cko1);
+}
+static void __init imx6q_sabresd_init(void)
+{
+ imx6q_sabresd_cko1_setup();
+}
+
static void __init imx6q_1588_init(void)
{
struct regmap *gpr;
@@ -193,6 +223,8 @@ static void __init imx6q_init_machine(void)
{
if (of_machine_is_compatible("fsl,imx6q-sabrelite"))
imx6q_sabrelite_init();
+ else if (of_machine_is_compatible("fsl,imx6q-sabresd"))
+ imx6q_sabresd_init();
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
--
1.7.0.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 2/4] ARM: imx: set CKO1 parent clock source in imx6q sabresd
2013-01-29 7:49 [PATCH 2/4] ARM: imx: set CKO1 parent clock source in imx6q sabresd Gary Zhang
@ 2013-01-29 11:28 ` Shawn Guo
2013-01-31 2:55 ` Zhang Quan-B13634
0 siblings, 1 reply; 3+ messages in thread
From: Shawn Guo @ 2013-01-29 11:28 UTC (permalink / raw)
To: Gary Zhang; +Cc: kernel, linux, linux-kernel
Gary,
For arch/arm/ patches, list linux-arm-kernel@lists.infradead.org rather
than linux-kernel@vger.kernel.org should be copied.
One comment blow.
On Tue, Jan 29, 2013 at 03:49:39PM +0800, Gary Zhang wrote:
> in imx6q sabresd board, wm8962 uses CKO1 as MCLK. set ahb as CKO1
> parent clock source
>
> Signed-off-by: Gary Zhang <b13634@freescale.com>
> ---
> arch/arm/mach-imx/mach-imx6q.c | 32 ++++++++++++++++++++++++++++++++
> 1 files changed, 32 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c
> index 4eb1b3a..ee3f357 100644
> --- a/arch/arm/mach-imx/mach-imx6q.c
> +++ b/arch/arm/mach-imx/mach-imx6q.c
> @@ -151,6 +151,36 @@ static void __init imx6q_sabrelite_init(void)
> imx6q_sabrelite_cko1_setup();
> }
>
> +static void __init imx6q_sabresd_cko1_setup(void)
> +{
> + struct clk *cko1_sel, *ahb, *cko1;
> + unsigned long rate;
> +
> + cko1_sel = clk_get_sys(NULL, "cko1_sel");
> + ahb = clk_get_sys(NULL, "ahb");
> + cko1 = clk_get_sys(NULL, "cko1");
> + if (IS_ERR(cko1_sel) || IS_ERR(ahb) || IS_ERR(cko1)) {
> + pr_err("cko1 setup failed!\n");
> + goto put_clk;
> + }
> + clk_set_parent(cko1_sel, ahb);
> + rate = clk_round_rate(cko1, 24000000);
> + clk_set_rate(cko1, rate);
> +
> + return;
> +put_clk:
> + if (!IS_ERR(cko1_sel))
> + clk_put(cko1_sel);
> + if (!IS_ERR(ahb))
> + clk_put(ahb);
> + if (!IS_ERR(cko1))
> + clk_put(cko1);
> +}
So the only difference between this function and imx6q_sabrelite_cko1_setup()
is the frequency set on cko1? If so, we should consolidate them with
frequency passed in as a parameter.
Shawn
> +static void __init imx6q_sabresd_init(void)
> +{
> + imx6q_sabresd_cko1_setup();
> +}
> +
> static void __init imx6q_1588_init(void)
> {
> struct regmap *gpr;
> @@ -193,6 +223,8 @@ static void __init imx6q_init_machine(void)
> {
> if (of_machine_is_compatible("fsl,imx6q-sabrelite"))
> imx6q_sabrelite_init();
> + else if (of_machine_is_compatible("fsl,imx6q-sabresd"))
> + imx6q_sabresd_init();
>
> of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
>
> --
> 1.7.0.4
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* RE: [PATCH 2/4] ARM: imx: set CKO1 parent clock source in imx6q sabresd
2013-01-29 11:28 ` Shawn Guo
@ 2013-01-31 2:55 ` Zhang Quan-B13634
0 siblings, 0 replies; 3+ messages in thread
From: Zhang Quan-B13634 @ 2013-01-31 2:55 UTC (permalink / raw)
To: Shawn Guo; +Cc: kernel, linux, linux-kernel
Shawn,
Thank your feedback, please see the comments inline
Best Regards
Gary
> -----Original Message-----
> From: Shawn Guo [mailto:shawn.guo@linaro.org]
> Sent: Tuesday, January 29, 2013 19:29
> To: Zhang Quan-B13634
> Cc: kernel@pengutronix.de; linux@arm.linux.org.uk; linux-kernel@vger.kernel.org
> Subject: Re: [PATCH 2/4] ARM: imx: set CKO1 parent clock source in imx6q
> sabresd
>
> Gary,
>
> For arch/arm/ patches, list linux-arm-kernel@lists.infradead.org rather than
> linux-kernel@vger.kernel.org should be copied.
[Gary-b13634] agree
>
> One comment blow.
>
> On Tue, Jan 29, 2013 at 03:49:39PM +0800, Gary Zhang wrote:
> > in imx6q sabresd board, wm8962 uses CKO1 as MCLK. set ahb as CKO1
> > parent clock source
> >
> > Signed-off-by: Gary Zhang <b13634@freescale.com>
> > ---
> > arch/arm/mach-imx/mach-imx6q.c | 32 ++++++++++++++++++++++++++++++++
> > 1 files changed, 32 insertions(+), 0 deletions(-)
> >
> > diff --git a/arch/arm/mach-imx/mach-imx6q.c
> > b/arch/arm/mach-imx/mach-imx6q.c index 4eb1b3a..ee3f357 100644
> > --- a/arch/arm/mach-imx/mach-imx6q.c
> > +++ b/arch/arm/mach-imx/mach-imx6q.c
> > @@ -151,6 +151,36 @@ static void __init imx6q_sabrelite_init(void)
> > imx6q_sabrelite_cko1_setup();
> > }
> >
> > +static void __init imx6q_sabresd_cko1_setup(void) {
> > + struct clk *cko1_sel, *ahb, *cko1;
> > + unsigned long rate;
> > +
> > + cko1_sel = clk_get_sys(NULL, "cko1_sel");
> > + ahb = clk_get_sys(NULL, "ahb");
> > + cko1 = clk_get_sys(NULL, "cko1");
> > + if (IS_ERR(cko1_sel) || IS_ERR(ahb) || IS_ERR(cko1)) {
> > + pr_err("cko1 setup failed!\n");
> > + goto put_clk;
> > + }
> > + clk_set_parent(cko1_sel, ahb);
> > + rate = clk_round_rate(cko1, 24000000);
> > + clk_set_rate(cko1, rate);
> > +
> > + return;
> > +put_clk:
> > + if (!IS_ERR(cko1_sel))
> > + clk_put(cko1_sel);
> > + if (!IS_ERR(ahb))
> > + clk_put(ahb);
> > + if (!IS_ERR(cko1))
> > + clk_put(cko1);
> > +}
>
> So the only difference between this function and imx6q_sabrelite_cko1_setup()
> is the frequency set on cko1? If so, we should consolidate them with frequency
> passed in as a parameter.
[Gary-b13634] OK, I will do it.
>
> Shawn
>
> > +static void __init imx6q_sabresd_init(void) {
> > + imx6q_sabresd_cko1_setup();
> > +}
> > +
> > static void __init imx6q_1588_init(void) {
> > struct regmap *gpr;
> > @@ -193,6 +223,8 @@ static void __init imx6q_init_machine(void) {
> > if (of_machine_is_compatible("fsl,imx6q-sabrelite"))
> > imx6q_sabrelite_init();
> > + else if (of_machine_is_compatible("fsl,imx6q-sabresd"))
> > + imx6q_sabresd_init();
> >
> > of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
> >
> > --
> > 1.7.0.4
> >
> >
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-01-31 2:55 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-29 7:49 [PATCH 2/4] ARM: imx: set CKO1 parent clock source in imx6q sabresd Gary Zhang
2013-01-29 11:28 ` Shawn Guo
2013-01-31 2:55 ` Zhang Quan-B13634
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).