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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html