* [PATCH 1/2] ARM: clk: imx: add a new helper which can re-parent the clock
@ 2014-05-26 5:20 Huang Shijie
2014-05-26 5:20 ` [PATCH 2/2] ARM: clk-imx6sx: register the qspi's clock with re-parent capability Huang Shijie
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Huang Shijie @ 2014-05-26 5:20 UTC (permalink / raw)
To: linux-arm-kernel
The clocks for Quadspi controller may be different when different
NOR flashes are connected to the board.
This patch adds a new helper to register the clock which needs the
re-parent capability.
Signed-off-by: Huang Shijie <b32955@freescale.com>
---
arch/arm/mach-imx/clk.h | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-imx/clk.h b/arch/arm/mach-imx/clk.h
index e29f6eb..2e3c4fe 100644
--- a/arch/arm/mach-imx/clk.h
+++ b/arch/arm/mach-imx/clk.h
@@ -112,6 +112,16 @@ static inline struct clk *imx_clk_mux_flags(const char *name,
&imx_ccm_lock);
}
+/* we can use this helper to register the clock which needs the re-parent. */
+static inline struct clk *imx_clk_mux_flags_reparent(const char *name,
+ void __iomem *reg, u8 shift, u8 width, const char **parents,
+ int num_parents, unsigned long flags)
+{
+ return clk_register_mux(NULL, name, parents, num_parents,
+ flags, reg, shift, width, 0,
+ &imx_ccm_lock);
+}
+
static inline struct clk *imx_clk_fixed_factor(const char *name,
const char *parent, unsigned int mult, unsigned int div)
{
--
1.7.8
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/2] ARM: clk-imx6sx: register the qspi's clock with re-parent capability
2014-05-26 5:20 [PATCH 1/2] ARM: clk: imx: add a new helper which can re-parent the clock Huang Shijie
@ 2014-05-26 5:20 ` Huang Shijie
2014-05-26 6:54 ` [PATCH 1/2] ARM: clk: imx: add a new helper which can re-parent the clock Alexander Shiyan
2014-05-26 8:01 ` Shawn Guo
2 siblings, 0 replies; 9+ messages in thread
From: Huang Shijie @ 2014-05-26 5:20 UTC (permalink / raw)
To: linux-arm-kernel
The clocks for Quadspi controller may be different when different NOR
flashes are connected to the board.
So the IMX6SX_CLK_QSPI1_SEL/IMX6SX_CLK_QSPI2_SEL should have the re-parent
capability.
Signed-off-by: Huang Shijie <b32955@freescale.com>
---
arch/arm/mach-imx/clk-imx6sx.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-imx/clk-imx6sx.c b/arch/arm/mach-imx/clk-imx6sx.c
index 72f8902..2e6e24b 100644
--- a/arch/arm/mach-imx/clk-imx6sx.c
+++ b/arch/arm/mach-imx/clk-imx6sx.c
@@ -241,13 +241,13 @@ static void __init imx6sx_clocks_init(struct device_node *ccm_node)
clks[IMX6SX_CLK_SSI3_SEL] = imx_clk_mux("ssi3_sel", base + 0x1c, 14, 2, ssi_sels, ARRAY_SIZE(ssi_sels));
clks[IMX6SX_CLK_SSI2_SEL] = imx_clk_mux("ssi2_sel", base + 0x1c, 12, 2, ssi_sels, ARRAY_SIZE(ssi_sels));
clks[IMX6SX_CLK_SSI1_SEL] = imx_clk_mux("ssi1_sel", base + 0x1c, 10, 2, ssi_sels, ARRAY_SIZE(ssi_sels));
- clks[IMX6SX_CLK_QSPI1_SEL] = imx_clk_mux_flags("qspi1_sel", base + 0x1c, 7, 3, qspi1_sels, ARRAY_SIZE(qspi1_sels), CLK_SET_RATE_PARENT);
+ clks[IMX6SX_CLK_QSPI1_SEL] = imx_clk_mux_flags_reparent("qspi1_sel", base + 0x1c, 7, 3, qspi1_sels, ARRAY_SIZE(qspi1_sels), CLK_SET_RATE_PARENT);
clks[IMX6SX_CLK_PERCLK_SEL] = imx_clk_mux("perclk_sel", base + 0x1c, 6, 1, perclk_sels, ARRAY_SIZE(perclk_sels));
clks[IMX6SX_CLK_VID_SEL] = imx_clk_mux("vid_sel", base + 0x20, 21, 3, vid_sels, ARRAY_SIZE(vid_sels));
clks[IMX6SX_CLK_ESAI_SEL] = imx_clk_mux("esai_sel", base + 0x20, 19, 2, audio_sels, ARRAY_SIZE(audio_sels));
clks[IMX6SX_CLK_CAN_SEL] = imx_clk_mux("can_sel", base + 0x20, 8, 2, can_sels, ARRAY_SIZE(can_sels));
clks[IMX6SX_CLK_UART_SEL] = imx_clk_mux("uart_sel", base + 0x24, 6, 1, uart_sels, ARRAY_SIZE(uart_sels));
- clks[IMX6SX_CLK_QSPI2_SEL] = imx_clk_mux_flags("qspi2_sel", base + 0x2c, 15, 3, qspi2_sels, ARRAY_SIZE(qspi2_sels), CLK_SET_RATE_PARENT);
+ clks[IMX6SX_CLK_QSPI2_SEL] = imx_clk_mux_flags_reparent("qspi2_sel", base + 0x2c, 15, 3, qspi2_sels, ARRAY_SIZE(qspi2_sels), CLK_SET_RATE_PARENT);
clks[IMX6SX_CLK_SPDIF_SEL] = imx_clk_mux("spdif_sel", base + 0x30, 20, 2, audio_sels, ARRAY_SIZE(audio_sels));
clks[IMX6SX_CLK_AUDIO_SEL] = imx_clk_mux("audio_sel", base + 0x30, 7, 2, audio_sels, ARRAY_SIZE(audio_sels));
clks[IMX6SX_CLK_ENET_PRE_SEL] = imx_clk_mux("enet_pre_sel", base + 0x34, 15, 3, enet_pre_sels, ARRAY_SIZE(enet_pre_sels));
--
1.7.8
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 1/2] ARM: clk: imx: add a new helper which can re-parent the clock
2014-05-26 6:54 ` [PATCH 1/2] ARM: clk: imx: add a new helper which can re-parent the clock Alexander Shiyan
@ 2014-05-26 6:03 ` Huang Shijie
2014-05-26 7:42 ` Alexander Shiyan
0 siblings, 1 reply; 9+ messages in thread
From: Huang Shijie @ 2014-05-26 6:03 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, May 26, 2014 at 10:54:52AM +0400, Alexander Shiyan wrote:
> Mon, 26 May 2014 13:20:32 +0800 ?? Huang Shijie <b32955@freescale.com>:
> > The clocks for Quadspi controller may be different when different
> > NOR flashes are connected to the board.
> >
> > This patch adds a new helper to register the clock which needs the
> > re-parent capability.
> >
> > Signed-off-by: Huang Shijie <b32955@freescale.com>
> > ---
> > arch/arm/mach-imx/clk.h | 10 ++++++++++
> > 1 files changed, 10 insertions(+), 0 deletions(-)
> >
> > diff --git a/arch/arm/mach-imx/clk.h b/arch/arm/mach-imx/clk.h
> > index e29f6eb..2e3c4fe 100644
> > --- a/arch/arm/mach-imx/clk.h
> > +++ b/arch/arm/mach-imx/clk.h
> > @@ -112,6 +112,16 @@ static inline struct clk *imx_clk_mux_flags(const char *name,
> > &imx_ccm_lock);
> > }
> >
> > +/* we can use this helper to register the clock which needs the re-parent. */
> > +static inline struct clk *imx_clk_mux_flags_reparent(const char *name,
> > + void __iomem *reg, u8 shift, u8 width, const char **parents,
> > + int num_parents, unsigned long flags)
> > +{
> > + return clk_register_mux(NULL, name, parents, num_parents,
> > + flags, reg, shift, width, 0,
> > + &imx_ccm_lock);
> > +}
>
> So you can use CLK_SET_RATE_PARENT for flags here and completely remove
> flags parameter for this call. Is not it?
Do you mean make the code like this :
----------------------------------------------------------------
return clk_register_mux(NULL, name, parents, num_parents,
CLK_SET_RATE_PARENT, reg, shift, width, 0,
&imx_ccm_lock);
----------------------------------------------------------------
Without the "flags" argument, the helper is too specific.
But if Shawn also agree to use the fixed CLK_SET_RATE_PARENT, i am okay too.
thanks
Huang Shijie
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/2] ARM: clk: imx: add a new helper which can re-parent the clock
2014-05-26 8:01 ` Shawn Guo
@ 2014-05-26 6:47 ` Huang Shijie
2014-05-26 8:11 ` Shawn Guo
0 siblings, 1 reply; 9+ messages in thread
From: Huang Shijie @ 2014-05-26 6:47 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, May 26, 2014 at 04:01:21PM +0800, Shawn Guo wrote:
> On Mon, May 26, 2014 at 01:20:32PM +0800, Huang Shijie wrote:
> > The clocks for Quadspi controller may be different when different
> > NOR flashes are connected to the board.
> >
> > This patch adds a new helper to register the clock which needs the
> > re-parent capability.
> >
> > Signed-off-by: Huang Shijie <b32955@freescale.com>
>
> So what you need is to register a mux clock without
> CLK_SET_RATE_NO_REPARENT flag, right?
yes.
Without this fixed flag, I can pass the CLK_SET_RATE_PARENT in the "flags".
>
> I'm think about just dropping the flag from imx_clk_mux() and
> imx_clk_mux_flags(), since this is the default behavior of basic mux
> clock, and I doubt dropping the flag will cause problem for mux clocks
> on i.MX.
this is what i was worry about.
So i do not change the imx_clk_mux/imx_clk_mux_flags, and add new helper which
has the minimum impact to the current code.
thanks
Huang Shijie
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] ARM: clk: imx: add a new helper which can re-parent the clock
2014-05-26 5:20 [PATCH 1/2] ARM: clk: imx: add a new helper which can re-parent the clock Huang Shijie
2014-05-26 5:20 ` [PATCH 2/2] ARM: clk-imx6sx: register the qspi's clock with re-parent capability Huang Shijie
@ 2014-05-26 6:54 ` Alexander Shiyan
2014-05-26 6:03 ` Huang Shijie
2014-05-26 8:01 ` Shawn Guo
2 siblings, 1 reply; 9+ messages in thread
From: Alexander Shiyan @ 2014-05-26 6:54 UTC (permalink / raw)
To: linux-arm-kernel
Mon, 26 May 2014 13:20:32 +0800 ?? Huang Shijie <b32955@freescale.com>:
> The clocks for Quadspi controller may be different when different
> NOR flashes are connected to the board.
>
> This patch adds a new helper to register the clock which needs the
> re-parent capability.
>
> Signed-off-by: Huang Shijie <b32955@freescale.com>
> ---
> arch/arm/mach-imx/clk.h | 10 ++++++++++
> 1 files changed, 10 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-imx/clk.h b/arch/arm/mach-imx/clk.h
> index e29f6eb..2e3c4fe 100644
> --- a/arch/arm/mach-imx/clk.h
> +++ b/arch/arm/mach-imx/clk.h
> @@ -112,6 +112,16 @@ static inline struct clk *imx_clk_mux_flags(const char *name,
> &imx_ccm_lock);
> }
>
> +/* we can use this helper to register the clock which needs the re-parent. */
> +static inline struct clk *imx_clk_mux_flags_reparent(const char *name,
> + void __iomem *reg, u8 shift, u8 width, const char **parents,
> + int num_parents, unsigned long flags)
> +{
> + return clk_register_mux(NULL, name, parents, num_parents,
> + flags, reg, shift, width, 0,
> + &imx_ccm_lock);
> +}
So you can use CLK_SET_RATE_PARENT for flags here and completely remove
flags parameter for this call. Is not it?
---
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/2] ARM: clk: imx: add a new helper which can re-parent the clock
2014-05-26 8:11 ` Shawn Guo
@ 2014-05-26 6:58 ` Huang Shijie
0 siblings, 0 replies; 9+ messages in thread
From: Huang Shijie @ 2014-05-26 6:58 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, May 26, 2014 at 04:11:59PM +0800, Shawn Guo wrote:
> On Mon, May 26, 2014 at 02:47:46PM +0800, Huang Shijie wrote:
> > > I'm think about just dropping the flag from imx_clk_mux() and
> > > imx_clk_mux_flags(), since this is the default behavior of basic mux
> > > clock, and I doubt dropping the flag will cause problem for mux clocks
> > > on i.MX.
> > this is what i was worry about.
> >
> > So i do not change the imx_clk_mux/imx_clk_mux_flags, and add new helper which
> > has the minimum impact to the current code.
>
> Can you just try to drop the flag from imx_clk_mux/imx_clk_mux_flags
> calls, and see if it causes any immediate problem for us? If not, we
> may want to create a patch for that, and throw it into linux-next for
> wider testing.
okay. I will send out the new patch set as soon as possible.
thanks
Huang Shijie
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/2] ARM: clk: imx: add a new helper which can re-parent the clock
2014-05-26 6:03 ` Huang Shijie
@ 2014-05-26 7:42 ` Alexander Shiyan
0 siblings, 0 replies; 9+ messages in thread
From: Alexander Shiyan @ 2014-05-26 7:42 UTC (permalink / raw)
To: linux-arm-kernel
Mon, 26 May 2014 14:03:51 +0800 ?? Huang Shijie <b32955@freescale.com>:
> On Mon, May 26, 2014 at 10:54:52AM +0400, Alexander Shiyan wrote:
> > Mon, 26 May 2014 13:20:32 +0800 ?? Huang Shijie <b32955@freescale.com>:
> > > The clocks for Quadspi controller may be different when different
> > > NOR flashes are connected to the board.
> > >
> > > This patch adds a new helper to register the clock which needs the
> > > re-parent capability.
> > >
> > > Signed-off-by: Huang Shijie <b32955@freescale.com>
> > > ---
> > > arch/arm/mach-imx/clk.h | 10 ++++++++++
> > > 1 files changed, 10 insertions(+), 0 deletions(-)
> > >
> > > diff --git a/arch/arm/mach-imx/clk.h b/arch/arm/mach-imx/clk.h
> > > index e29f6eb..2e3c4fe 100644
> > > --- a/arch/arm/mach-imx/clk.h
> > > +++ b/arch/arm/mach-imx/clk.h
> > > @@ -112,6 +112,16 @@ static inline struct clk *imx_clk_mux_flags(const char *name,
> > > &imx_ccm_lock);
> > > }
> > >
> > > +/* we can use this helper to register the clock which needs the re-parent. */
> > > +static inline struct clk *imx_clk_mux_flags_reparent(const char *name,
> > > + void __iomem *reg, u8 shift, u8 width, const char **parents,
> > > + int num_parents, unsigned long flags)
> > > +{
> > > + return clk_register_mux(NULL, name, parents, num_parents,
> > > + flags, reg, shift, width, 0,
> > > + &imx_ccm_lock);
> > > +}
> >
> > So you can use CLK_SET_RATE_PARENT for flags here and completely remove
> > flags parameter for this call. Is not it?
> Do you mean make the code like this :
>
> ----------------------------------------------------------------
> return clk_register_mux(NULL, name, parents, num_parents,
> CLK_SET_RATE_PARENT, reg, shift, width, 0,
> &imx_ccm_lock);
> ----------------------------------------------------------------
Yes.
> Without the "flags" argument, the helper is too specific.
Or let's just OR with CLK_SET_RATE_PARENT, like as:
return clk_register_mux(NULL, name, parents, num_parents,
flags | CLK_SET_RATE_PARENT, reg, shift, width, 0,
&imx_ccm_lock);
---
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/2] ARM: clk: imx: add a new helper which can re-parent the clock
2014-05-26 5:20 [PATCH 1/2] ARM: clk: imx: add a new helper which can re-parent the clock Huang Shijie
2014-05-26 5:20 ` [PATCH 2/2] ARM: clk-imx6sx: register the qspi's clock with re-parent capability Huang Shijie
2014-05-26 6:54 ` [PATCH 1/2] ARM: clk: imx: add a new helper which can re-parent the clock Alexander Shiyan
@ 2014-05-26 8:01 ` Shawn Guo
2014-05-26 6:47 ` Huang Shijie
2 siblings, 1 reply; 9+ messages in thread
From: Shawn Guo @ 2014-05-26 8:01 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, May 26, 2014 at 01:20:32PM +0800, Huang Shijie wrote:
> The clocks for Quadspi controller may be different when different
> NOR flashes are connected to the board.
>
> This patch adds a new helper to register the clock which needs the
> re-parent capability.
>
> Signed-off-by: Huang Shijie <b32955@freescale.com>
So what you need is to register a mux clock without
CLK_SET_RATE_NO_REPARENT flag, right?
I'm think about just dropping the flag from imx_clk_mux() and
imx_clk_mux_flags(), since this is the default behavior of basic mux
clock, and I doubt dropping the flag will cause problem for mux clocks
on i.MX.
Shawn
> ---
> arch/arm/mach-imx/clk.h | 10 ++++++++++
> 1 files changed, 10 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-imx/clk.h b/arch/arm/mach-imx/clk.h
> index e29f6eb..2e3c4fe 100644
> --- a/arch/arm/mach-imx/clk.h
> +++ b/arch/arm/mach-imx/clk.h
> @@ -112,6 +112,16 @@ static inline struct clk *imx_clk_mux_flags(const char *name,
> &imx_ccm_lock);
> }
>
> +/* we can use this helper to register the clock which needs the re-parent. */
> +static inline struct clk *imx_clk_mux_flags_reparent(const char *name,
> + void __iomem *reg, u8 shift, u8 width, const char **parents,
> + int num_parents, unsigned long flags)
> +{
> + return clk_register_mux(NULL, name, parents, num_parents,
> + flags, reg, shift, width, 0,
> + &imx_ccm_lock);
> +}
> +
> static inline struct clk *imx_clk_fixed_factor(const char *name,
> const char *parent, unsigned int mult, unsigned int div)
> {
> --
> 1.7.8
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/2] ARM: clk: imx: add a new helper which can re-parent the clock
2014-05-26 6:47 ` Huang Shijie
@ 2014-05-26 8:11 ` Shawn Guo
2014-05-26 6:58 ` Huang Shijie
0 siblings, 1 reply; 9+ messages in thread
From: Shawn Guo @ 2014-05-26 8:11 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, May 26, 2014 at 02:47:46PM +0800, Huang Shijie wrote:
> > I'm think about just dropping the flag from imx_clk_mux() and
> > imx_clk_mux_flags(), since this is the default behavior of basic mux
> > clock, and I doubt dropping the flag will cause problem for mux clocks
> > on i.MX.
> this is what i was worry about.
>
> So i do not change the imx_clk_mux/imx_clk_mux_flags, and add new helper which
> has the minimum impact to the current code.
Can you just try to drop the flag from imx_clk_mux/imx_clk_mux_flags
calls, and see if it causes any immediate problem for us? If not, we
may want to create a patch for that, and throw it into linux-next for
wider testing.
Shawn
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2014-05-26 8:11 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-26 5:20 [PATCH 1/2] ARM: clk: imx: add a new helper which can re-parent the clock Huang Shijie
2014-05-26 5:20 ` [PATCH 2/2] ARM: clk-imx6sx: register the qspi's clock with re-parent capability Huang Shijie
2014-05-26 6:54 ` [PATCH 1/2] ARM: clk: imx: add a new helper which can re-parent the clock Alexander Shiyan
2014-05-26 6:03 ` Huang Shijie
2014-05-26 7:42 ` Alexander Shiyan
2014-05-26 8:01 ` Shawn Guo
2014-05-26 6:47 ` Huang Shijie
2014-05-26 8:11 ` Shawn Guo
2014-05-26 6:58 ` Huang Shijie
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).