Lines Matching refs:timer
75 struct bcm2835_timer *timer = container_of(evt_dev, in bcm2835_time_set_next_event() local
78 timer->compare); in bcm2835_time_set_next_event()
84 struct bcm2835_timer *timer = dev_id; in bcm2835_time_interrupt() local
86 if (readl_relaxed(timer->control) & timer->match_mask) { in bcm2835_time_interrupt()
87 writel_relaxed(timer->match_mask, timer->control); in bcm2835_time_interrupt()
89 event_handler = ACCESS_ONCE(timer->evt.event_handler); in bcm2835_time_interrupt()
91 event_handler(&timer->evt); in bcm2835_time_interrupt()
103 struct bcm2835_timer *timer; in bcm2835_timer_init() local
122 timer = kzalloc(sizeof(*timer), GFP_KERNEL); in bcm2835_timer_init()
123 if (!timer) in bcm2835_timer_init()
126 timer->control = base + REG_CONTROL; in bcm2835_timer_init()
127 timer->compare = base + REG_COMPARE(DEFAULT_TIMER); in bcm2835_timer_init()
128 timer->match_mask = BIT(DEFAULT_TIMER); in bcm2835_timer_init()
129 timer->evt.name = node->name; in bcm2835_timer_init()
130 timer->evt.rating = 300; in bcm2835_timer_init()
131 timer->evt.features = CLOCK_EVT_FEAT_ONESHOT; in bcm2835_timer_init()
132 timer->evt.set_mode = bcm2835_time_set_mode; in bcm2835_timer_init()
133 timer->evt.set_next_event = bcm2835_time_set_next_event; in bcm2835_timer_init()
134 timer->evt.cpumask = cpumask_of(0); in bcm2835_timer_init()
135 timer->act.name = node->name; in bcm2835_timer_init()
136 timer->act.flags = IRQF_TIMER | IRQF_SHARED; in bcm2835_timer_init()
137 timer->act.dev_id = timer; in bcm2835_timer_init()
138 timer->act.handler = bcm2835_time_interrupt; in bcm2835_timer_init()
140 if (setup_irq(irq, &timer->act)) in bcm2835_timer_init()
143 clockevents_config_and_register(&timer->evt, freq, 0xf, 0xffffffff); in bcm2835_timer_init()