[PATCH 19/33] ARM i.MX: prepare for common clock framework
Shawn Guo
shawn.guo at linaro.org
Fri Apr 27 03:55:41 EDT 2012
On Fri, Apr 27, 2012 at 09:16:22AM +0200, Sascha Hauer wrote:
> On Fri, Apr 27, 2012 at 02:40:09PM +0800, Shawn Guo wrote:
> > On Wed, Apr 25, 2012 at 05:28:09PM +0200, Sascha Hauer wrote:
> > > - Add necessary #ifdefs for CONFIG_COMMON_CLOCK
> > > - Add a global spinlock to protect the CCM registers
> > >
> > > Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
> > > ---
> > > +
> > > +static inline struct clk *imx_clk_mux(const char *name, void __iomem *reg,
> > > + u8 shift, u8 width, const char **parents, int num_parents)
> > > +{
> > > + return clk_register_mux(NULL, name, parents, num_parents, 0, reg, shift,
> >
> > I think the fourth parameter should be CLK_SET_RATE_PARENT too, as mux
> > could also likely be in a clk_set_rate propagation path, saying it has
> > a parent clk who has .round_rate and .set_rate operations.
>
> Nope, we can't do this. When we do this every clock_set_rate on a leaf
> node will propagate up to the ipg, ahb, main_clk, plls and whatever is
> up there.
PLL does not have CLK_SET_RATE_PARENT set, right?
What's the problem with that propagation? Isn't it designed so? Now
on imx6q, 792MHz is a set point for cpu frequency, we have to propagate
up to pll's set_rate to get that frequency. There is a mux in the
middle of the propagation path. If we do not set CLK_SET_RATE_PARENT
for mux, how can we get this frequency?
Regards,
Shawn
>
> I made the assumption that we can safely propagate up to the next mux
> but not further. It may turn out that this is to simple and needs
> adjustments, but generally adding a CLK_SET_RATE_PARENT to a mux won't
> work.
>
More information about the linux-arm-kernel
mailing list