Lines Matching refs:t

59 static int timer_irq_state(AlteraTimer *t)  in timer_irq_state()  argument
61 bool irq = (t->regs[R_STATUS] & STATUS_TO) && in timer_irq_state()
62 (t->regs[R_CONTROL] & CONTROL_ITO); in timer_irq_state()
69 AlteraTimer *t = opaque; in timer_read() local
76 r = t->regs[R_CONTROL] & (CONTROL_ITO | CONTROL_CONT); in timer_read()
80 if (addr < ARRAY_SIZE(t->regs)) { in timer_read()
81 r = t->regs[addr]; in timer_read()
92 AlteraTimer *t = opaque; in timer_write() local
95 int irqState = timer_irq_state(t); in timer_write()
102 t->regs[R_STATUS] &= ~STATUS_TO; in timer_write()
106 ptimer_transaction_begin(t->ptimer); in timer_write()
107 t->regs[R_CONTROL] = value & (CONTROL_ITO | CONTROL_CONT); in timer_write()
109 !(t->regs[R_STATUS] & STATUS_RUN)) { in timer_write()
110 ptimer_run(t->ptimer, 1); in timer_write()
111 t->regs[R_STATUS] |= STATUS_RUN; in timer_write()
113 if ((value & CONTROL_STOP) && (t->regs[R_STATUS] & STATUS_RUN)) { in timer_write()
114 ptimer_stop(t->ptimer); in timer_write()
115 t->regs[R_STATUS] &= ~STATUS_RUN; in timer_write()
117 ptimer_transaction_commit(t->ptimer); in timer_write()
122 ptimer_transaction_begin(t->ptimer); in timer_write()
123 t->regs[addr] = value & 0xFFFF; in timer_write()
124 if (t->regs[R_STATUS] & STATUS_RUN) { in timer_write()
125 ptimer_stop(t->ptimer); in timer_write()
126 t->regs[R_STATUS] &= ~STATUS_RUN; in timer_write()
128 tvalue = (t->regs[R_PERIODH] << 16) | t->regs[R_PERIODL]; in timer_write()
129 ptimer_set_limit(t->ptimer, tvalue + 1, 1); in timer_write()
130 ptimer_transaction_commit(t->ptimer); in timer_write()
135 count = ptimer_get_count(t->ptimer); in timer_write()
136 t->regs[R_SNAPL] = count & 0xFFFF; in timer_write()
137 t->regs[R_SNAPH] = count >> 16; in timer_write()
144 if (irqState != timer_irq_state(t)) { in timer_write()
145 qemu_set_irq(t->irq, timer_irq_state(t)); in timer_write()
161 AlteraTimer *t = opaque; in timer_hit() local
162 const uint64_t tvalue = (t->regs[R_PERIODH] << 16) | t->regs[R_PERIODL]; in timer_hit()
164 t->regs[R_STATUS] |= STATUS_TO; in timer_hit()
166 ptimer_set_limit(t->ptimer, tvalue + 1, 1); in timer_hit()
168 if (!(t->regs[R_CONTROL] & CONTROL_CONT)) { in timer_hit()
169 t->regs[R_STATUS] &= ~STATUS_RUN; in timer_hit()
170 ptimer_set_count(t->ptimer, tvalue); in timer_hit()
172 ptimer_run(t->ptimer, 1); in timer_hit()
175 qemu_set_irq(t->irq, timer_irq_state(t)); in timer_hit()
180 AlteraTimer *t = ALTERA_TIMER(dev); in altera_timer_realize() local
183 if (t->freq_hz == 0) { in altera_timer_realize()
188 t->ptimer = ptimer_init(timer_hit, t, PTIMER_POLICY_LEGACY); in altera_timer_realize()
189 ptimer_transaction_begin(t->ptimer); in altera_timer_realize()
190 ptimer_set_freq(t->ptimer, t->freq_hz); in altera_timer_realize()
191 ptimer_transaction_commit(t->ptimer); in altera_timer_realize()
193 memory_region_init_io(&t->mmio, OBJECT(t), &timer_ops, t, in altera_timer_realize()
195 sysbus_init_mmio(sbd, &t->mmio); in altera_timer_realize()
200 AlteraTimer *t = ALTERA_TIMER(obj); in altera_timer_init() local
203 sysbus_init_irq(sbd, &t->irq); in altera_timer_init()
208 AlteraTimer *t = ALTERA_TIMER(dev); in altera_timer_reset() local
210 ptimer_transaction_begin(t->ptimer); in altera_timer_reset()
211 ptimer_stop(t->ptimer); in altera_timer_reset()
212 ptimer_set_limit(t->ptimer, 0xffffffff, 1); in altera_timer_reset()
213 ptimer_transaction_commit(t->ptimer); in altera_timer_reset()
214 memset(t->regs, 0, sizeof(t->regs)); in altera_timer_reset()