Re: sys_clkout2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 13 Dec 2011, Gary Thomas wrote:

> On 2011-12-13 14:56, Paul Walmsley wrote:
>
> > I presume you have some external device that relies on sys_clkout2 for 
> > its clock input?
>
> Precisely.

Okay, so the "clean" way to do this is to write a short driver for that 
device, if there isn't one already, that takes care of configuring the 
clock settings that you need.

> Do I need to do anything special to control how the clock is configured, 
> e.g. div & src settings?

You can change the divider immediately upstream from the sys_clkout2 
output by calling clk_set_rate() on the sys_clkout2 struct clk that you 
got back from clk_get() in the example that I sent.  

You can change the source for sys_clkout2 by calling clk_set_parent() on 
clkout2_src_ck.  This is a separate clock, so you'd need to add a new 
clkdev entry for this for your driver, and you'd need to clk_get() it and 
also clk_get() the new parent source clock that you'd want to use.  Looks 
like these are your choices for parents:

static const struct clksel clkout2_src_clksel[] = {
	{ .parent = &core_ck,		.rates = clkout2_src_core_rates },
	{ .parent = &sys_ck,		.rates = clkout2_src_sys_rates },
	{ .parent = &cm_96m_fck,	.rates = clkout2_src_96m_rates },
	{ .parent = &omap_54m_fck,	.rates = clkout2_src_54m_rates },
	{ .parent = NULL }
};

> > 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.
> 
> Thanks, I'll give this a try when I have eyes on the hardware (Wednesday)

N.B., the kernel clock framework init code won't change clock parents or 
divisors, except when doing so is needed to disable or enable the clock.  

So if you are programming those from U-boot, you probably won't need to 
change the parent or divisors from kernel code.


- 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


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux