[PATCH] AT91: SAM9G45 - add a separate clock entry for every single TC block

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Fri Sep 3 12:38:14 EDT 2010


On 15:05 Fri 03 Sep     , Nicolas Ferre wrote:
> Le 03/09/2010 14:31, Fabian Godehardt :
> > Without this patch you will not be able to register the first block
> > because of the second association call on at91_add_device_tc().
> 
> Yes, I noticed that.
> 
> > Signed-off-by: Fabian Godehardt <fg at emlix.com>
> 
> Tell me if my little modification is ok for you. I will then sign it and
> send it to Russell patch tracking system: what do you think about it?
> 
> > ---
> >  arch/arm/mach-at91/at91sam9g45.c         |   12 +++++++++---
> >  arch/arm/mach-at91/at91sam9g45_devices.c |    4 ++--
> >  2 files changed, 11 insertions(+), 5 deletions(-)
> > 
> > diff --git a/arch/arm/mach-at91/at91sam9g45.c b/arch/arm/mach-at91/at91sam9g45.c
> > index 753c0d3..52ef2d6 100644
> > --- a/arch/arm/mach-at91/at91sam9g45.c
> > +++ b/arch/arm/mach-at91/at91sam9g45.c
> > @@ -121,8 +121,13 @@ static struct clk ssc1_clk = {
> >  	.pmc_mask	= 1 << AT91SAM9G45_ID_SSC1,
> >  	.type		= CLK_TYPE_PERIPHERAL,
> >  };
> > -static struct clk tcb_clk = {
> > -	.name		= "tcb_clk",
> > +static struct clk tcb0_clk = {
> > +	.name		= "tcb0_clk",
> > +	.pmc_mask	= 1 << AT91SAM9G45_ID_TCB,
> > +	.type		= CLK_TYPE_PERIPHERAL,
> > +};
> > +static struct clk tcb1_clk = {
> > +	.name		= "tcb1_clk",
> >  	.pmc_mask	= 1 << AT91SAM9G45_ID_TCB,
> >  	.type		= CLK_TYPE_PERIPHERAL,
> 
> I prefer to add a "fake" clock that depend on the first one instead of
> doubling the definition: like this:
> 
> /* One additional fake clock for second TC block */
> static struct clk tcb1_clk = {
>         .name           = "tcb1_clk",
>         .pmc_mask       = 0,
>         .type           = CLK_TYPE_PERIPHERAL,
>         .parent         = &tcb0_clk,
> };
> 
this modification will also work when we enable and disable the clock
the fact of duplicating the clock will result that if we disable the clock
we will disable it for both device

in the Nico implementation the cloc will be disable only when no-one use it

it's not the best solution but for now on it's before switching to the clkdev

Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>

Best Regards,
J.



More information about the linux-arm-kernel mailing list