aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorVaibhav Hiremath <hvaibhav@ti.com>2013-06-18 01:07:59 -0400
committerBenoit Cousson <benoit.cousson@linaro.org>2013-06-18 20:49:51 -0400
commit4fd8a19e28f73495837cca7ad1329069d373e98a (patch)
treeda6f35d8ba65a5611d78e03478e06b0b1acf645b /arch/arm
parente00c27ef3b4c23e39d0a77b7c8e5be44c28001c7 (diff)
ARM: AM33XX: clock: Add debugSS clock nodes
Represent debugSS clock interface as provided in CM_WKUP_DEBUGSS_CLKCTRL register, includes - Clock gate for optional DEBUG_CLKA and DBGSYSCLK - Clock Mux for TRC_PMD and STM_PMD - Clock divider for STM and TPIU Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com> Acked-by: Paul Walmsley <paul@pwsan.com> Cc: Tony Lindgren <tony@atomide.com> Signed-off-by: Benoit Cousson <benoit.cousson@linaro.org>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-omap2/cclock33xx_data.c47
1 files changed, 42 insertions, 5 deletions
diff --git a/arch/arm/mach-omap2/cclock33xx_data.c b/arch/arm/mach-omap2/cclock33xx_data.c
index af3544ce4f02..6fd0ed14bca4 100644
--- a/arch/arm/mach-omap2/cclock33xx_data.c
+++ b/arch/arm/mach-omap2/cclock33xx_data.c
@@ -431,15 +431,11 @@ DEFINE_STRUCT_CLK(aes0_fck, dpll_core_ck_parents, clk_ops_null);
431 * - Driver code is not yet migrated to use hwmod/runtime pm 431 * - Driver code is not yet migrated to use hwmod/runtime pm
432 * - Modules outside kernel access (to disable them by default) 432 * - Modules outside kernel access (to disable them by default)
433 * 433 *
434 * - debugss
435 * - mmu (gfx domain) 434 * - mmu (gfx domain)
436 * - cefuse 435 * - cefuse
437 * - usbotg_fck (its additional clock and not really a modulemode) 436 * - usbotg_fck (its additional clock and not really a modulemode)
438 * - ieee5000 437 * - ieee5000
439 */ 438 */
440DEFINE_CLK_GATE(debugss_ick, "dpll_core_m4_ck", &dpll_core_m4_ck, 0x0,
441 AM33XX_CM_WKUP_DEBUGSS_CLKCTRL, AM33XX_MODULEMODE_SWCTRL_SHIFT,
442 0x0, NULL);
443 439
444DEFINE_CLK_GATE(mmu_fck, "dpll_core_m4_ck", &dpll_core_m4_ck, 0x0, 440DEFINE_CLK_GATE(mmu_fck, "dpll_core_m4_ck", &dpll_core_m4_ck, 0x0,
445 AM33XX_CM_GFX_MMUDATA_CLKCTRL, AM33XX_MODULEMODE_SWCTRL_SHIFT, 441 AM33XX_CM_GFX_MMUDATA_CLKCTRL, AM33XX_MODULEMODE_SWCTRL_SHIFT,
@@ -863,6 +859,42 @@ static struct clk_hw_omap wdt1_fck_hw = {
863DEFINE_STRUCT_CLK(wdt1_fck, wdt_ck_parents, gpio_fck_ops); 859DEFINE_STRUCT_CLK(wdt1_fck, wdt_ck_parents, gpio_fck_ops);
864 860
865/* 861/*
862 * debugss optional clocks
863 */
864DEFINE_CLK_GATE(dbg_sysclk_ck, "sys_clkin_ck", &sys_clkin_ck,
865 0x0, AM33XX_CM_WKUP_DEBUGSS_CLKCTRL,
866 AM33XX_OPTFCLKEN_DBGSYSCLK_SHIFT, 0x0, NULL);
867
868DEFINE_CLK_GATE(dbg_clka_ck, "dpll_core_m4_ck", &dpll_core_m4_ck,
869 0x0, AM33XX_CM_WKUP_DEBUGSS_CLKCTRL,
870 AM33XX_OPTCLK_DEBUG_CLKA_SHIFT, 0x0, NULL);
871
872static const char *stm_pmd_clock_mux_ck_parents[] = {
873 "dbg_sysclk_ck", "dbg_clka_ck",
874};
875
876DEFINE_CLK_MUX(stm_pmd_clock_mux_ck, stm_pmd_clock_mux_ck_parents, NULL, 0x0,
877 AM33XX_CM_WKUP_DEBUGSS_CLKCTRL, AM33XX_STM_PMD_CLKSEL_SHIFT,
878 AM33XX_STM_PMD_CLKSEL_WIDTH, 0x0, NULL);
879
880DEFINE_CLK_MUX(trace_pmd_clk_mux_ck, stm_pmd_clock_mux_ck_parents, NULL, 0x0,
881 AM33XX_CM_WKUP_DEBUGSS_CLKCTRL,
882 AM33XX_TRC_PMD_CLKSEL_SHIFT,
883 AM33XX_TRC_PMD_CLKSEL_WIDTH, 0x0, NULL);
884
885DEFINE_CLK_DIVIDER(stm_clk_div_ck, "stm_pmd_clock_mux_ck",
886 &stm_pmd_clock_mux_ck, 0x0, AM33XX_CM_WKUP_DEBUGSS_CLKCTRL,
887 AM33XX_STM_PMD_CLKDIVSEL_SHIFT,
888 AM33XX_STM_PMD_CLKDIVSEL_WIDTH, CLK_DIVIDER_POWER_OF_TWO,
889 NULL);
890
891DEFINE_CLK_DIVIDER(trace_clk_div_ck, "trace_pmd_clk_mux_ck",
892 &trace_pmd_clk_mux_ck, 0x0, AM33XX_CM_WKUP_DEBUGSS_CLKCTRL,
893 AM33XX_TRC_PMD_CLKDIVSEL_SHIFT,
894 AM33XX_TRC_PMD_CLKDIVSEL_WIDTH, CLK_DIVIDER_POWER_OF_TWO,
895 NULL);
896
897/*
866 * clkdev 898 * clkdev
867 */ 899 */
868static struct omap_clk am33xx_clks[] = { 900static struct omap_clk am33xx_clks[] = {
@@ -899,7 +931,6 @@ static struct omap_clk am33xx_clks[] = {
899 CLK("481cc000.d_can", NULL, &dcan0_fck), 931 CLK("481cc000.d_can", NULL, &dcan0_fck),
900 CLK(NULL, "dcan1_fck", &dcan1_fck), 932 CLK(NULL, "dcan1_fck", &dcan1_fck),
901 CLK("481d0000.d_can", NULL, &dcan1_fck), 933 CLK("481d0000.d_can", NULL, &dcan1_fck),
902 CLK(NULL, "debugss_ick", &debugss_ick),
903 CLK(NULL, "pruss_ocp_gclk", &pruss_ocp_gclk), 934 CLK(NULL, "pruss_ocp_gclk", &pruss_ocp_gclk),
904 CLK(NULL, "mcasp0_fck", &mcasp0_fck), 935 CLK(NULL, "mcasp0_fck", &mcasp0_fck),
905 CLK(NULL, "mcasp1_fck", &mcasp1_fck), 936 CLK(NULL, "mcasp1_fck", &mcasp1_fck),
@@ -942,6 +973,12 @@ static struct omap_clk am33xx_clks[] = {
942 CLK(NULL, "clkout2_div_ck", &clkout2_div_ck), 973 CLK(NULL, "clkout2_div_ck", &clkout2_div_ck),
943 CLK(NULL, "timer_32k_ck", &clkdiv32k_ick), 974 CLK(NULL, "timer_32k_ck", &clkdiv32k_ick),
944 CLK(NULL, "timer_sys_ck", &sys_clkin_ck), 975 CLK(NULL, "timer_sys_ck", &sys_clkin_ck),
976 CLK(NULL, "dbg_sysclk_ck", &dbg_sysclk_ck),
977 CLK(NULL, "dbg_clka_ck", &dbg_clka_ck),
978 CLK(NULL, "stm_pmd_clock_mux_ck", &stm_pmd_clock_mux_ck),
979 CLK(NULL, "trace_pmd_clk_mux_ck", &trace_pmd_clk_mux_ck),
980 CLK(NULL, "stm_clk_div_ck", &stm_clk_div_ck),
981 CLK(NULL, "trace_clk_div_ck", &trace_clk_div_ck),
945}; 982};
946 983
947 984