Lines Matching refs:timer

47 	struct bcm2835_timer *timer = container_of(evt_dev,  in bcm2835_time_set_next_event()  local
50 timer->compare); in bcm2835_time_set_next_event()
56 struct bcm2835_timer *timer = dev_id; in bcm2835_time_interrupt() local
58 if (readl_relaxed(timer->control) & timer->match_mask) { in bcm2835_time_interrupt()
59 writel_relaxed(timer->match_mask, timer->control); in bcm2835_time_interrupt()
61 event_handler = READ_ONCE(timer->evt.event_handler); in bcm2835_time_interrupt()
63 event_handler(&timer->evt); in bcm2835_time_interrupt()
75 struct bcm2835_timer *timer; in bcm2835_timer_init() local
102 timer = kzalloc(sizeof(*timer), GFP_KERNEL); in bcm2835_timer_init()
103 if (!timer) { in bcm2835_timer_init()
108 timer->control = base + REG_CONTROL; in bcm2835_timer_init()
109 timer->compare = base + REG_COMPARE(DEFAULT_TIMER); in bcm2835_timer_init()
110 timer->match_mask = BIT(DEFAULT_TIMER); in bcm2835_timer_init()
111 timer->evt.name = node->name; in bcm2835_timer_init()
112 timer->evt.rating = 300; in bcm2835_timer_init()
113 timer->evt.features = CLOCK_EVT_FEAT_ONESHOT; in bcm2835_timer_init()
114 timer->evt.set_next_event = bcm2835_time_set_next_event; in bcm2835_timer_init()
115 timer->evt.cpumask = cpumask_of(0); in bcm2835_timer_init()
116 timer->act.name = node->name; in bcm2835_timer_init()
117 timer->act.flags = IRQF_TIMER | IRQF_SHARED; in bcm2835_timer_init()
118 timer->act.dev_id = timer; in bcm2835_timer_init()
119 timer->act.handler = bcm2835_time_interrupt; in bcm2835_timer_init()
121 ret = setup_irq(irq, &timer->act); in bcm2835_timer_init()
127 clockevents_config_and_register(&timer->evt, freq, 0xf, 0xffffffff); in bcm2835_timer_init()