Lines Matching defs:timer
68 to_ingenic_tcu(struct ingenic_tcu_timer *timer)
70 return container_of(timer, struct ingenic_tcu, timers[timer->cpu]);
81 struct ingenic_tcu_timer *timer = to_ingenic_tcu_timer(evt);
82 struct ingenic_tcu *tcu = to_ingenic_tcu(timer);
84 regmap_write(tcu->map, TCU_REG_TECR, BIT(timer->channel));
92 struct ingenic_tcu_timer *timer = to_ingenic_tcu_timer(evt);
93 struct ingenic_tcu *tcu = to_ingenic_tcu(timer);
98 regmap_write(tcu->map, TCU_REG_TDFRc(timer->channel), next);
99 regmap_write(tcu->map, TCU_REG_TCNTc(timer->channel), 0);
100 regmap_write(tcu->map, TCU_REG_TESR, BIT(timer->channel));
114 struct ingenic_tcu_timer *timer = dev_id;
115 struct ingenic_tcu *tcu = to_ingenic_tcu(timer);
118 regmap_write(tcu->map, TCU_REG_TECR, BIT(timer->channel));
120 if (timer->cevt.event_handler) {
121 csd = &per_cpu(ingenic_cevt_csd, timer->cpu);
122 csd->info = (void *) &timer->cevt;
124 smp_call_function_single_async(timer->cpu, csd);
144 struct ingenic_tcu_timer *timer = &tcu->timers[cpu];
150 timer->clk = ingenic_tcu_get_clock(tcu->np, timer->channel);
151 if (IS_ERR(timer->clk))
152 return PTR_ERR(timer->clk);
154 err = clk_prepare_enable(timer->clk);
158 rate = clk_get_rate(timer->clk);
170 timer_virq = irq_create_mapping(domain, timer->channel);
176 snprintf(timer->name, sizeof(timer->name), "TCU%u", timer->channel);
179 timer->name, timer);
183 timer->cpu = smp_processor_id();
184 timer->cevt.cpumask = cpumask_of(smp_processor_id());
185 timer->cevt.features = CLOCK_EVT_FEAT_ONESHOT;
186 timer->cevt.name = timer->name;
187 timer->cevt.rating = 200;
188 timer->cevt.set_state_shutdown = ingenic_tcu_cevt_set_state_shutdown;
189 timer->cevt.set_next_event = ingenic_tcu_cevt_set_next;
191 clockevents_config_and_register(&timer->cevt, rate, 10, 0xffff);
198 clk_disable_unprepare(timer->clk);
200 clk_put(timer->clk);
237 cs->name = "ingenic-timer";
276 struct ingenic_tcu_timer *timer;
317 timer = &tcu->timers[cpu];
319 timer->cpu = cpu;
320 timer->channel = find_next_zero_bit(&tcu->pwm_channels_mask,
323 last_bit = timer->channel;
416 .name = "ingenic-tcu-timer",