Subject: [PATCH 07/10] ARM: OMAP5: clock data: Add OMAP54XX full clock tree and headers

From: [email-masked] (Jon Hunter)
Date: Wed, 30 Jan 2013 11:37:41 -0600

On 01/18/2013 09:27 AM, Santosh Shilimkar wrote:
> From: Rajendra Nayak <[email-masked]>
> 
> Add the clock tree related data for OMAP54xx platforms.

[snip]

> +	CLK("omap_timer.1",	"32k_ck",		&sys_32k_ck,	CK_54XX),
> +	CLK("omap_timer.2",	"32k_ck",		&sys_32k_ck,	CK_54XX),
> +	CLK("omap_timer.3",	"32k_ck",		&sys_32k_ck,	CK_54XX),
> +	CLK("omap_timer.4",	"32k_ck",		&sys_32k_ck,	CK_54XX),
> +	CLK("omap_timer.5",	"32k_ck",		&sys_32k_ck,	CK_54XX),
> +	CLK("omap_timer.6",	"32k_ck",		&sys_32k_ck,	CK_54XX),
> +	CLK("omap_timer.7",	"32k_ck",		&sys_32k_ck,	CK_54XX),
> +	CLK("omap_timer.8",	"32k_ck",		&sys_32k_ck,	CK_54XX),
> +	CLK("omap_timer.9",	"32k_ck",		&sys_32k_ck,	CK_54XX),
> +	CLK("omap_timer.10",	"32k_ck",		&sys_32k_ck,	CK_54XX),
> +	CLK("omap_timer.11",	"32k_ck",		&sys_32k_ck,	CK_54XX),

I have been trying to get away from having so many aliases for the same
clock for timers. Here we should replace all of the above and just have ...

+	CLK(NULL,	"timer_32k_ck",		&sys_32k_ck, CK_54XX),

For more details see [1].

> +	CLK("omap_timer.1",	"sys_ck",		&sys_clkin,	CK_54XX),
> +	CLK("omap_timer.2",	"sys_ck",		&sys_clkin,	CK_54XX),
> +	CLK("omap_timer.3",	"sys_ck",		&sys_clkin,	CK_54XX),
> +	CLK("omap_timer.4",	"sys_ck",		&sys_clkin,	CK_54XX),
> +	CLK("omap_timer.9",	"sys_ck",		&sys_clkin,	CK_54XX),
> +	CLK("omap_timer.10",	"sys_ck",		&sys_clkin,	CK_54XX),
> +	CLK("omap_timer.11",	"sys_ck",		&sys_clkin,	CK_54XX),
> +	CLK("omap_timer.5",	"sys_ck",		&dss_syc_gfclk_div,	CK_54XX),
> +	CLK("omap_timer.6",	"sys_ck",		&dss_syc_gfclk_div,	CK_54XX),
> +	CLK("omap_timer.7",	"sys_ck",		&dss_syc_gfclk_div,	CK_54XX),
> +	CLK("omap_timer.8",	"sys_ck",		&dss_syc_gfclk_div,	CK_54XX),
> +};

These aliases will not work with device-tree because the device-name is
formatted <addr>.<device>. Hence, when configuring a the timer parent
clock via the dmtimer driver it will fail. So it should be more like ...

+	CLK("4ae18000.timer",	"timer_sys_ck",	&sys_clkin, CK_54XX),
+	CLK("48032000.timer",	"timer_sys_ck",	&sys_clkin, CK_54XX),
+	CLK("48034000.timer",	"timer_sys_ck",	&sys_clkin, CK_54XX),
+	CLK("48036000.timer",	"timer_sys_ck",	&sys_clkin, CK_54XX),
+	CLK("40138000.timer",	"timer_sys_ck",	&sys_clkin, CK_54XX),
+	CLK("4013a000.timer",	"timer_sys_ck",	&sys_clkin, CK_54XX),
+	CLK("4013c000.timer",	"timer_sys_ck",	&sys_clkin, CK_54XX),
+	CLK("4013e000.timer",	"timer_sys_ck",	&dss_syc_gfclk_div, 	
CK_54XX),
+	CLK("4803e000.timer",	"timer_sys_ck",	&dss_syc_gfclk_div, CK_54XX),
+	CLK("48086000.timer",	"timer_sys_ck",	&dss_syc_gfclk_div, CK_54XX),
+	CLK("48088000.timer",	"timer_sys_ck",	&dss_syc_gfclk_div, CK_54XX),

For more details see [2].

If you would like to test the dmtimer driver on omap5, then you can grab
my omap-test module [3], build it (see README), load it and then ...

# echo 1 > /sys/kernel/debug/omap-test/timer/all

This will perform some basic tests on all the dmtimers. I would do it
myself, but there appears to be several issues getting this to boot on
an ES1.0 (which is probably expected).

Cheers
Jon

[1] http://www.spinics.net/lists/linux-omap/msg71272.html
[2] https://patchwork.kernel.org/patch/1204351/
[3] https://github.com/jonhunter/omap-test