Lines Matching refs:pit

62 static int jcore_pit_disable(struct jcore_pit *pit)
64 writel(0, pit->base + REG_PITEN);
68 static int jcore_pit_set(unsigned long delta, struct jcore_pit *pit)
70 jcore_pit_disable(pit);
71 writel(delta, pit->base + REG_THROT);
72 writel(pit->enable_val, pit->base + REG_PITEN);
78 struct jcore_pit *pit = container_of(ced, struct jcore_pit, ced);
80 return jcore_pit_disable(pit);
85 struct jcore_pit *pit = container_of(ced, struct jcore_pit, ced);
87 return jcore_pit_disable(pit);
92 struct jcore_pit *pit = container_of(ced, struct jcore_pit, ced);
94 return jcore_pit_set(pit->periodic_delta, pit);
100 struct jcore_pit *pit = container_of(ced, struct jcore_pit, ced);
102 return jcore_pit_set(delta, pit);
107 struct jcore_pit *pit = this_cpu_ptr(jcore_pit_percpu);
112 buspd = readl(pit->base + REG_BUSPD);
114 pit->periodic_delta = DIV_ROUND_CLOSEST(NSEC_PER_SEC, HZ * buspd);
116 clockevents_config_and_register(&pit->ced, freq, 1, ULONG_MAX);
123 struct jcore_pit *pit = dev_id;
125 if (clockevent_state_oneshot(&pit->ced))
126 jcore_pit_disable(pit);
128 pit->ced.event_handler(&pit->ced);
174 pr_err("pit irq request failed: %d\n", err);
215 struct jcore_pit *pit = per_cpu_ptr(jcore_pit_percpu, cpu);
217 pit->base = of_iomap(node, cpu);
218 if (!pit->base) {
223 pit->ced.name = "jcore_pit";
224 pit->ced.features = CLOCK_EVT_FEAT_PERIODIC
227 pit->ced.cpumask = cpumask_of(cpu);
228 pit->ced.rating = 400;
229 pit->ced.irq = pit_irq;
230 pit->ced.set_state_shutdown = jcore_pit_set_state_shutdown;
231 pit->ced.set_state_periodic = jcore_pit_set_state_periodic;
232 pit->ced.set_state_oneshot = jcore_pit_set_state_oneshot;
233 pit->ced.set_next_event = jcore_pit_set_next_event;
235 pit->enable_val = enable_val;
245 TIMER_OF_DECLARE(jcore_pit, "jcore,pit", jcore_pit_init);