[PATCH 07/10] ARM: OMAP5: clock data: Add OMAP54XX full clock tree and headers
From: Jon Hunter <hidden>
Date: 2013-01-30 17:37:41
Also in:
linux-omap
On 01/18/2013 09:27 AM, Santosh Shilimkar wrote:
From: Rajendra Nayak <redacted> 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