aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/clk/ux500/u8500_clk.c9
-rw-r--r--drivers/clocksource/nomadik-mtu.c8
2 files changed, 10 insertions, 7 deletions
diff --git a/drivers/clk/ux500/u8500_clk.c b/drivers/clk/ux500/u8500_clk.c
index ab30ce87614c..1f6bfb8f8737 100644
--- a/drivers/clk/ux500/u8500_clk.c
+++ b/drivers/clk/ux500/u8500_clk.c
@@ -160,12 +160,6 @@ void u8500_clk_init(void)
160 clk = clk_reg_prcmu_gate("uiccclk", NULL, PRCMU_UICCCLK, CLK_IS_ROOT); 160 clk = clk_reg_prcmu_gate("uiccclk", NULL, PRCMU_UICCCLK, CLK_IS_ROOT);
161 clk_register_clkdev(clk, NULL, "uicc"); 161 clk_register_clkdev(clk, NULL, "uicc");
162 162
163 /*
164 * FIXME: The MTU clocks might need some kind of "parent muxed join"
165 * and these have no K-clocks. For now, we ignore the missing
166 * connection to the corresponding P-clocks, p6_mtu0_clk and
167 * p6_mtu1_clk. Instead timclk is used which is the valid parent.
168 */
169 clk = clk_reg_prcmu_gate("timclk", NULL, PRCMU_TIMCLK, CLK_IS_ROOT); 163 clk = clk_reg_prcmu_gate("timclk", NULL, PRCMU_TIMCLK, CLK_IS_ROOT);
170 clk_register_clkdev(clk, NULL, "mtu0"); 164 clk_register_clkdev(clk, NULL, "mtu0");
171 clk_register_clkdev(clk, NULL, "mtu1"); 165 clk_register_clkdev(clk, NULL, "mtu1");
@@ -379,8 +373,11 @@ void u8500_clk_init(void)
379 373
380 clk = clk_reg_prcc_pclk("p6_pclk6", "per6clk", U8500_CLKRST6_BASE, 374 clk = clk_reg_prcc_pclk("p6_pclk6", "per6clk", U8500_CLKRST6_BASE,
381 BIT(6), 0); 375 BIT(6), 0);
376 clk_register_clkdev(clk, "apb_pclk", "mtu0");
377
382 clk = clk_reg_prcc_pclk("p6_pclk7", "per6clk", U8500_CLKRST6_BASE, 378 clk = clk_reg_prcc_pclk("p6_pclk7", "per6clk", U8500_CLKRST6_BASE,
383 BIT(7), 0); 379 BIT(7), 0);
380 clk_register_clkdev(clk, "apb_pclk", "mtu1");
384 381
385 /* PRCC K-clocks 382 /* PRCC K-clocks
386 * 383 *
diff --git a/drivers/clocksource/nomadik-mtu.c b/drivers/clocksource/nomadik-mtu.c
index 23c780ba0d35..8914c3c1c88b 100644
--- a/drivers/clocksource/nomadik-mtu.c
+++ b/drivers/clocksource/nomadik-mtu.c
@@ -177,9 +177,15 @@ void nmdk_clksrc_reset(void)
177void __init nmdk_timer_init(void __iomem *base, int irq) 177void __init nmdk_timer_init(void __iomem *base, int irq)
178{ 178{
179 unsigned long rate; 179 unsigned long rate;
180 struct clk *clk0; 180 struct clk *clk0, *pclk0;
181 181
182 mtu_base = base; 182 mtu_base = base;
183
184 pclk0 = clk_get_sys("mtu0", "apb_pclk");
185 BUG_ON(IS_ERR(pclk0));
186 BUG_ON(clk_prepare(pclk0) < 0);
187 BUG_ON(clk_enable(pclk0) < 0);
188
183 clk0 = clk_get_sys("mtu0", NULL); 189 clk0 = clk_get_sys("mtu0", NULL);
184 BUG_ON(IS_ERR(clk0)); 190 BUG_ON(IS_ERR(clk0));
185 BUG_ON(clk_prepare(clk0) < 0); 191 BUG_ON(clk_prepare(clk0) < 0);