Lines Matching refs:pit

65 static int jcore_pit_disable(struct jcore_pit *pit)
67 writel(0, pit->base + REG_PITEN);
71 static int jcore_pit_set(unsigned long delta, struct jcore_pit *pit)
73 jcore_pit_disable(pit);
74 writel(delta, pit->base + REG_THROT);
75 writel(pit->enable_val, pit->base + REG_PITEN);
81 struct jcore_pit *pit = container_of(ced, struct jcore_pit, ced);
83 return jcore_pit_disable(pit);
88 struct jcore_pit *pit = container_of(ced, struct jcore_pit, ced);
90 return jcore_pit_disable(pit);
95 struct jcore_pit *pit = container_of(ced, struct jcore_pit, ced);
97 return jcore_pit_set(pit->periodic_delta, pit);
103 struct jcore_pit *pit = container_of(ced, struct jcore_pit, ced);
105 return jcore_pit_set(delta, pit);
110 struct jcore_pit *pit = this_cpu_ptr(jcore_pit_percpu);
115 buspd = readl(pit->base + REG_BUSPD);
117 pit->periodic_delta = DIV_ROUND_CLOSEST(NSEC_PER_SEC, HZ * buspd);
119 clockevents_config_and_register(&pit->ced, freq, 1, ULONG_MAX);
126 struct jcore_pit *pit = this_cpu_ptr(dev_id);
128 if (clockevent_state_oneshot(&pit->ced))
129 jcore_pit_disable(pit);
131 pit->ced.event_handler(&pit->ced);
178 pr_err("pit irq request failed: %d\n", err);
219 struct jcore_pit *pit = per_cpu_ptr(jcore_pit_percpu, cpu);
221 pit->base = of_iomap(node, cpu);
222 if (!pit->base) {
227 pit->ced.name = "jcore_pit";
228 pit->ced.features = CLOCK_EVT_FEAT_PERIODIC
231 pit->ced.cpumask = cpumask_of(cpu);
232 pit->ced.rating = 400;
233 pit->ced.irq = pit_irq;
234 pit->ced.set_state_shutdown = jcore_pit_set_state_shutdown;
235 pit->ced.set_state_periodic = jcore_pit_set_state_periodic;
236 pit->ced.set_state_oneshot = jcore_pit_set_state_oneshot;
237 pit->ced.set_next_event = jcore_pit_set_next_event;
239 pit->enable_val = enable_val;
249 TIMER_OF_DECLARE(jcore_pit, "jcore,pit", jcore_pit_init);