Lines Matching full:timer

3  * MPIC timer driver
59 unsigned int timer_num; /* cascade control timer */
64 struct mpic_timer timer[TIMERS_PER_GROUP]; member
74 /* cascade timer 0 and 1 */
76 /* cascade timer 1 and 2 */
78 /* cascade timer 2 and 3 */
106 /* detect whether there is a cascade timer available */
123 priv->timer[num].cascade_handle = casc_priv; in detect_idle_cascade_timer()
125 /* set timer busy */ in detect_idle_cascade_timer()
128 return &priv->timer[num]; in detect_idle_cascade_timer()
146 casc_priv = priv->timer[num].cascade_handle; in set_cascade_timer()
177 /* detect idle timer */ in get_cascade_timer()
182 /* set ticks to timer */ in get_cascade_timer()
193 struct mpic_timer *timer; in get_timer() local
210 timer = get_cascade_timer(priv, ticks); in get_timer()
211 if (!timer) in get_timer()
214 return timer; in get_timer()
218 /* one timer: Reverse allocation */ in get_timer()
222 /* set timer busy */ in get_timer()
224 /* set ticks & stop timer */ in get_timer()
228 priv->timer[num].cascade_handle = NULL; in get_timer()
230 return &priv->timer[num]; in get_timer()
240 * mpic_start_timer - start hardware timer
241 * @handle: the timer to be started.
249 struct timer_group_priv, timer[handle->num]); in mpic_start_timer()
256 * mpic_stop_timer - stop hardware timer
257 * @handle: the timer to be stopped
259 * The timer periodically generates an interrupt. Unless user stops the timer.
264 struct timer_group_priv, timer[handle->num]); in mpic_stop_timer()
269 casc_priv = priv->timer[handle->num].cascade_handle; in mpic_stop_timer()
280 * mpic_get_remain_time - get timer time
281 * @handle: the timer to be selected.
282 * @time: time for timer
284 * Query timer remaining time.
289 struct timer_group_priv, timer[handle->num]); in mpic_get_remain_time()
295 casc_priv = priv->timer[handle->num].cascade_handle; in mpic_get_remain_time()
312 * mpic_free_timer - free hardware timer
313 * @handle: the timer to be removed.
315 * Free the timer.
322 struct timer_group_priv, timer[handle->num]); in mpic_free_timer()
329 casc_priv = priv->timer[handle->num].cascade_handle; in mpic_free_timer()
331 free_irq(priv->timer[handle->num].irq, priv->timer[handle->num].dev); in mpic_free_timer()
340 priv->timer[handle->num].cascade_handle = NULL; in mpic_free_timer()
349 * mpic_request_timer - get a hardware timer
352 * @time: time for timer
374 IRQF_TRIGGER_LOW, "global-timer", dev); in mpic_request_timer()
450 /* Set timer idle */ in timer_group_get_irq()
452 priv->timer[offset + j].irq = irq; in timer_group_get_irq()
453 priv->timer[offset + j].num = offset + j; in timer_group_get_irq()
473 if (of_device_is_compatible(np, "fsl,mpic-global-timer")) in timer_group_init()
478 pr_err("%pOF: cannot ioremap timer register address.\n", np); in timer_group_init()
492 pr_err("%pOF: cannot get timer frequency.\n", np); in timer_group_init()
498 pr_err("%pOF: cannot get timer irqs.\n", np); in timer_group_init()
504 /* Init FSL timer hardware */ in timer_group_init()
527 /* Init FSL timer hardware */ in mpic_timer_resume()
534 { .compatible = "fsl,mpic-global-timer", },