On Tue, 13 Dec 2011, Gary Thomas wrote:

> What's the best way to enable sys_clkout2 (DM3730, latest kernel)?
> I've managed to set it up properly and it runs in U-Boot, but the
> kernel is disabling it.  It's a bit of a tangle trying to figure out
> not only what piece of code is undoing my work, but how to get the
> clock to keep running.

It's probably getting disabled by omap2_clk_disable_unused() in 
mach-omap2/clock.c, which runs at the end of kernel init.

> I want the clkout_cntrl register set to 0x8a,
> so any guidance on how to make this happen would be greatly appreciated.

I presume you have some external device that relies on sys_clkout2 for its 
clock input?  

If the device has a Linux driver associated with it, the clean way to fix 
it would be to add a clkdev line for it into mach-omap2/clock3xxx_data.c.  
Something like

        CLK("devname",  "fck",  &sys_clkout2,   CK_3XXX),

where "devname" is the name of your device.  Then add some code into that 
driver to enable and disable the clock as needed.  Something like

...

struct clk *c;

c = clk_get(dev_name(dev), "fck");
WARN(IS_ERR(c), "cannot clk_get() device functional clock");
clk_enable(c);

...

and then clk_disable() it later in your driver when you don't need it.

If you don't have a driver, you can hack a quick one up that just deals 
with the clock, and add it to your board file.

Or if you just want a dirty hack, you can probably get away with just 
adding the ENABLE_ON_INIT flag to the sys_clkout2 .flags field in 
mach-omap2/clock3xxx_data.c.


- Paul
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to