Lines Matching refs:ttccs

231 	struct ttc_timer_clocksource *ttccs = container_of(ttc,
264 ttccs->scale_clk_ctrl_reg_old =
265 readl_relaxed(ttccs->ttc.base_addr +
268 psv = (ttccs->scale_clk_ctrl_reg_old &
280 ttccs->scale_clk_ctrl_reg_new = ttccs->scale_clk_ctrl_reg_old &
282 ttccs->scale_clk_ctrl_reg_new |= psv << TTC_CLK_CNTRL_PSV_SHIFT;
290 writel_relaxed(ttccs->scale_clk_ctrl_reg_new,
291 ttccs->ttc.base_addr + TTC_CLK_CNTRL_OFFSET);
300 writel_relaxed(ttccs->scale_clk_ctrl_reg_new,
301 ttccs->ttc.base_addr + TTC_CLK_CNTRL_OFFSET);
310 writel_relaxed(ttccs->scale_clk_ctrl_reg_old,
311 ttccs->ttc.base_addr + TTC_CLK_CNTRL_OFFSET);
323 struct ttc_timer_clocksource *ttccs;
326 ttccs = kzalloc(sizeof(*ttccs), GFP_KERNEL);
327 if (!ttccs)
330 ttccs->ttc.clk = clk;
332 err = clk_prepare_enable(ttccs->ttc.clk);
334 kfree(ttccs);
338 ttccs->ttc.freq = clk_get_rate(ttccs->ttc.clk);
340 ttccs->ttc.clk_rate_change_nb.notifier_call =
342 ttccs->ttc.clk_rate_change_nb.next = NULL;
344 err = clk_notifier_register(ttccs->ttc.clk,
345 &ttccs->ttc.clk_rate_change_nb);
349 ttccs->ttc.base_addr = base;
350 ttccs->cs.name = "ttc_clocksource";
351 ttccs->cs.rating = 200;
352 ttccs->cs.read = __ttc_clocksource_read;
353 ttccs->cs.mask = CLOCKSOURCE_MASK(timer_width);
354 ttccs->cs.flags = CLOCK_SOURCE_IS_CONTINUOUS;
361 writel_relaxed(0x0, ttccs->ttc.base_addr + TTC_IER_OFFSET);
363 ttccs->ttc.base_addr + TTC_CLK_CNTRL_OFFSET);
365 ttccs->ttc.base_addr + TTC_CNT_CNTRL_OFFSET);
367 err = clocksource_register_hz(&ttccs->cs, ttccs->ttc.freq / PRESCALE);
369 kfree(ttccs);
375 ttccs->ttc.freq / PRESCALE);