[RFC 09/14] MV SATA: Add per channel clk/clkdev support.

Jason jason at lakedaemon.net
Wed Mar 7 08:11:37 EST 2012


On Wed, Mar 07, 2012 at 07:38:58AM +0100, Andrew Lunn wrote:
> > Date: Tue, 6 Mar 2012 14:01:39 -0500
> > From: Jason <jason at lakedaemon.net>
> > To: Andrew Lunn <andrew at lunn.ch>
> > Cc: linux-arm-kernel at lists.infradead.org
> > Subject: Re: [RFC 09/14] MV SATA: Add per channel clk/clkdev support.
> > Message-ID: <20120306190139.GW5050 at titan.lakedaemon.net>
> > Content-Type: text/plain; charset=us-ascii
> > 
> > On Tue, Mar 06, 2012 at 07:31:05AM +0100, Andrew Lunn wrote:
> > > The Orion kirkwood chips have a gatable clock per SATA channel. Add
> > 
> > +mv_sata_platform_data *sata_data)
> > >       if (sata_data->n_ports > 1)
> > >               kirkwood_clk_ctrl |= CGC_SATA1;
> > >
> > > +     orion_clkdev_add("0", "sata_mv.0", &clk_sata0);
> > > +     orion_clkdev_add("1", "sata_mv.0", &clk_sata1);
> > > +
> > 
> > This is a problem for devicetree.  With devicetree, neither
> > kirkwood_sata_init(), nor orion_sata_init() are ever called.  The same
> > is true for all the other drivers as well.
> > 
> > Could this be moved into the driver's _probe() function?
> 
> No, this cannot be in the driver. This is setting up the mapping
> between the device name and the clk the device should use. dove,
> orion5x, mv78xx0 need a different clk to kirkwood and this is hidden
> by clkdev, so the driver does not have to care.

Thanks for the clarification.

> BTW: Not all drivers which orion uses are only used by orion. So we
> have to be careful not to add orion specific stuff into some of the
> drivers. This is particularly true for Ethernet and SATA.
> 
> There are two possible solutions to clkdev:
> 
> 1) Add DT bindings for clkdev. I don't know if this is currently
>    supported?

I came to the same conclusion late last night and started poking around.
I didn't see it in any of Mike's patches.

> 2) I can refactor the code. Currently i create the clkdev entries on
>    demand. However i could just create them all just after creating
>    the clocks.

Hmmm, I wouldn't worry about it too much, absent == disabled.  Which is
what I'm thinking for the dt bindings.

> Maybe you can take a look at 1) and see if its possible, while i look
> at refactoring the code.

drivers/clk/of_clk.c ?  I'll start looking at it.

thx,

Jason.



More information about the linux-arm-kernel mailing list