Lines Matching +full:max +full:- +full:clk +full:- +full:rate +full:- +full:hz
4 * Copyright (C) 2010 Linus Walleij for ST-Ericsson
19 #include <linux/clk.h>
36 /* per-timer registers take 0..3 as argument */
44 #define MTU_CRn_PERIODIC 0x40 /* if 0 = free-running */
69 static u32 nmdk_cycle; /* write-once */
83 return -readl(mtu_base + MTU_VAL(0)); in nomadik_read_sched_clock()
92 /* Clockevent device: use one-shot mode */
108 /* Timer: configure load and background-load, and fire it up */ in nmdk_clkevt_reset()
150 /* ClockSource: configure load and background-load, and fire it up */ in nmdk_clksrc_reset()
185 evdev->event_handler(evdev); in nmdk_timer_interrupt()
197 struct clk *pclk, struct clk *clk) in nmdk_timer_init() argument
199 unsigned long rate; in nmdk_timer_init() local
205 BUG_ON(clk_prepare_enable(clk)); in nmdk_timer_init()
208 * Tick rate is 2.4MHz for Nomadik and 2.4Mhz, 100MHz or 133 MHz in nmdk_timer_init()
210 * Use a divide-by-16 counter if the tick rate is more than 32MHz. in nmdk_timer_init()
212 * to wake-up at a max 127s a head in time. Dividing a 2.4 MHz timer in nmdk_timer_init()
215 rate = clk_get_rate(clk); in nmdk_timer_init()
216 if (rate > 32000000) { in nmdk_timer_init()
217 rate /= 16; in nmdk_timer_init()
224 nmdk_cycle = DIV_ROUND_CLOSEST(rate, HZ); in nmdk_timer_init()
231 rate, 200, 32, clocksource_mmio_readl_down); in nmdk_timer_init()
238 sched_clock_register(nomadik_read_sched_clock, 32, rate); in nmdk_timer_init()
245 clockevents_config_and_register(&nmdk_clkevt, rate, 2, 0xffffffffU); in nmdk_timer_init()
248 mtu_delay_timer.freq = rate; in nmdk_timer_init()
256 struct clk *pclk; in nmdk_timer_of_init()
257 struct clk *clk; in nmdk_timer_of_init() local
264 return -ENXIO; in nmdk_timer_of_init()
273 clk = of_clk_get_by_name(node, "timclk"); in nmdk_timer_of_init()
274 if (IS_ERR(clk)) { in nmdk_timer_of_init()
276 return PTR_ERR(clk); in nmdk_timer_of_init()
282 return -EINVAL; in nmdk_timer_of_init()
285 return nmdk_timer_init(base, irq, pclk, clk); in nmdk_timer_of_init()
287 TIMER_OF_DECLARE(nomadik_mtu, "st,nomadik-mtu",