Lines Matching refs:timer

60 	struct bcm2835_timer *timer = container_of(evt_dev,  in bcm2835_time_set_next_event()  local
63 timer->compare); in bcm2835_time_set_next_event()
69 struct bcm2835_timer *timer = dev_id; in bcm2835_time_interrupt() local
71 if (readl_relaxed(timer->control) & timer->match_mask) { in bcm2835_time_interrupt()
72 writel_relaxed(timer->match_mask, timer->control); in bcm2835_time_interrupt()
74 event_handler = ACCESS_ONCE(timer->evt.event_handler); in bcm2835_time_interrupt()
76 event_handler(&timer->evt); in bcm2835_time_interrupt()
88 struct bcm2835_timer *timer; in bcm2835_timer_init() local
107 timer = kzalloc(sizeof(*timer), GFP_KERNEL); in bcm2835_timer_init()
108 if (!timer) in bcm2835_timer_init()
111 timer->control = base + REG_CONTROL; in bcm2835_timer_init()
112 timer->compare = base + REG_COMPARE(DEFAULT_TIMER); in bcm2835_timer_init()
113 timer->match_mask = BIT(DEFAULT_TIMER); in bcm2835_timer_init()
114 timer->evt.name = node->name; in bcm2835_timer_init()
115 timer->evt.rating = 300; in bcm2835_timer_init()
116 timer->evt.features = CLOCK_EVT_FEAT_ONESHOT; in bcm2835_timer_init()
117 timer->evt.set_next_event = bcm2835_time_set_next_event; in bcm2835_timer_init()
118 timer->evt.cpumask = cpumask_of(0); in bcm2835_timer_init()
119 timer->act.name = node->name; in bcm2835_timer_init()
120 timer->act.flags = IRQF_TIMER | IRQF_SHARED; in bcm2835_timer_init()
121 timer->act.dev_id = timer; in bcm2835_timer_init()
122 timer->act.handler = bcm2835_time_interrupt; in bcm2835_timer_init()
124 if (setup_irq(irq, &timer->act)) in bcm2835_timer_init()
127 clockevents_config_and_register(&timer->evt, freq, 0xf, 0xffffffff); in bcm2835_timer_init()