[PATCH 19/33] ARM i.MX: prepare for common clock framework

Sascha Hauer s.hauer at pengutronix.de
Fri Apr 27 03:16:22 EDT 2012


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.

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.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the linux-arm-kernel mailing list