Lines Matching refs:m

83 static bool cmsdk_dualtimermod_intstatus(CMSDKAPBDualTimerModule *m)  in cmsdk_dualtimermod_intstatus()  argument
86 return m->intstatus && (m->control & R_CONTROL_INTEN_MASK); in cmsdk_dualtimermod_intstatus()
109 static int cmsdk_dualtimermod_divisor(CMSDKAPBDualTimerModule *m) in cmsdk_dualtimermod_divisor() argument
112 switch (FIELD_EX32(m->control, CONTROL, PRESCALE)) { in cmsdk_dualtimermod_divisor()
125 static void cmsdk_dualtimermod_write_control(CMSDKAPBDualTimerModule *m, in cmsdk_dualtimermod_write_control() argument
131 ptimer_transaction_begin(m->timer); in cmsdk_dualtimermod_write_control()
135 changed = m->control ^ newctrl; in cmsdk_dualtimermod_write_control()
139 ptimer_stop(m->timer); in cmsdk_dualtimermod_write_control()
165 ptimer_set_period_from_clock(m->timer, m->parent->timclk, divisor); in cmsdk_dualtimermod_write_control()
172 load = m->load; in cmsdk_dualtimermod_write_control()
175 load = ptimer_get_limit(m->timer); in cmsdk_dualtimermod_write_control()
176 if (!(m->control & R_CONTROL_SIZE_MASK)) { in cmsdk_dualtimermod_write_control()
177 load = deposit32(m->load, 0, 16, load); in cmsdk_dualtimermod_write_control()
179 m->load = load; in cmsdk_dualtimermod_write_control()
182 if (!(m->control & R_CONTROL_SIZE_MASK)) { in cmsdk_dualtimermod_write_control()
185 ptimer_set_limit(m->timer, load, 0); in cmsdk_dualtimermod_write_control()
192 value = ptimer_get_count(m->timer); in cmsdk_dualtimermod_write_control()
193 load = ptimer_get_limit(m->timer); in cmsdk_dualtimermod_write_control()
196 value = deposit32(m->value, 0, 16, value); in cmsdk_dualtimermod_write_control()
199 m->value = value; in cmsdk_dualtimermod_write_control()
206 load = deposit32(m->load, 0, 16, load); in cmsdk_dualtimermod_write_control()
208 m->load = load; in cmsdk_dualtimermod_write_control()
219 ptimer_set_count(m->timer, value); in cmsdk_dualtimermod_write_control()
220 ptimer_set_limit(m->timer, load, 0); in cmsdk_dualtimermod_write_control()
230 ptimer_run(m->timer, !!(newctrl & R_CONTROL_ONESHOT_MASK)); in cmsdk_dualtimermod_write_control()
233 m->control = newctrl; in cmsdk_dualtimermod_write_control()
235 ptimer_transaction_commit(m->timer); in cmsdk_dualtimermod_write_control()
262 CMSDKAPBDualTimerModule *m; in cmsdk_apb_dualtimer_read() local
268 m = &s->timermod[timer]; in cmsdk_apb_dualtimer_read()
273 if (m->control & R_CONTROL_MODE_MASK) { in cmsdk_apb_dualtimer_read()
278 r = ptimer_get_limit(m->timer); in cmsdk_apb_dualtimer_read()
279 if (!(m->control & R_CONTROL_SIZE_MASK)) { in cmsdk_apb_dualtimer_read()
280 r = deposit32(m->load, 0, 16, r); in cmsdk_apb_dualtimer_read()
284 r = m->load; in cmsdk_apb_dualtimer_read()
288 r = ptimer_get_count(m->timer); in cmsdk_apb_dualtimer_read()
289 if (!(m->control & R_CONTROL_SIZE_MASK)) { in cmsdk_apb_dualtimer_read()
290 r = deposit32(m->value, 0, 16, r); in cmsdk_apb_dualtimer_read()
294 r = m->control; in cmsdk_apb_dualtimer_read()
297 r = m->intstatus; in cmsdk_apb_dualtimer_read()
300 r = cmsdk_dualtimermod_intstatus(m); in cmsdk_apb_dualtimer_read()
337 CMSDKAPBDualTimerModule *m; in cmsdk_apb_dualtimer_write() local
343 m = &s->timermod[timer]; in cmsdk_apb_dualtimer_write()
348 m->load = value; in cmsdk_apb_dualtimer_write()
349 m->value = value; in cmsdk_apb_dualtimer_write()
350 if (!(m->control & R_CONTROL_SIZE_MASK)) { in cmsdk_apb_dualtimer_write()
353 ptimer_transaction_begin(m->timer); in cmsdk_apb_dualtimer_write()
354 if (!(m->control & R_CONTROL_MODE_MASK)) { in cmsdk_apb_dualtimer_write()
359 ptimer_set_count(m->timer, value); in cmsdk_apb_dualtimer_write()
362 ptimer_stop(m->timer); in cmsdk_apb_dualtimer_write()
364 ptimer_set_limit(m->timer, value, 1); in cmsdk_apb_dualtimer_write()
365 if (value && (m->control & R_CONTROL_ENABLE_MASK)) { in cmsdk_apb_dualtimer_write()
367 ptimer_run(m->timer, 1); in cmsdk_apb_dualtimer_write()
370 ptimer_transaction_commit(m->timer); in cmsdk_apb_dualtimer_write()
374 m->load = value; in cmsdk_apb_dualtimer_write()
375 if (!(m->control & R_CONTROL_MODE_MASK)) { in cmsdk_apb_dualtimer_write()
379 if (!(m->control & R_CONTROL_SIZE_MASK)) { in cmsdk_apb_dualtimer_write()
382 ptimer_transaction_begin(m->timer); in cmsdk_apb_dualtimer_write()
383 ptimer_set_limit(m->timer, value, 0); in cmsdk_apb_dualtimer_write()
384 ptimer_transaction_commit(m->timer); in cmsdk_apb_dualtimer_write()
387 cmsdk_dualtimermod_write_control(m, value); in cmsdk_apb_dualtimer_write()
391 m->intstatus = 0; in cmsdk_apb_dualtimer_write()
413 CMSDKAPBDualTimerModule *m = opaque; in cmsdk_dualtimermod_tick() local
415 m->intstatus = 1; in cmsdk_dualtimermod_tick()
416 cmsdk_apb_dualtimer_update(m->parent); in cmsdk_dualtimermod_tick()
419 static void cmsdk_dualtimermod_reset(CMSDKAPBDualTimerModule *m) in cmsdk_dualtimermod_reset() argument
421 m->control = R_CONTROL_INTEN_MASK; in cmsdk_dualtimermod_reset()
422 m->intstatus = 0; in cmsdk_dualtimermod_reset()
423 m->load = 0; in cmsdk_dualtimermod_reset()
424 m->value = 0xffffffff; in cmsdk_dualtimermod_reset()
425 ptimer_transaction_begin(m->timer); in cmsdk_dualtimermod_reset()
426 ptimer_stop(m->timer); in cmsdk_dualtimermod_reset()
432 ptimer_set_limit(m->timer, 0xffff, 1); in cmsdk_dualtimermod_reset()
433 ptimer_set_period_from_clock(m->timer, m->parent->timclk, in cmsdk_dualtimermod_reset()
434 cmsdk_dualtimermod_divisor(m)); in cmsdk_dualtimermod_reset()
435 ptimer_transaction_commit(m->timer); in cmsdk_dualtimermod_reset()
458 CMSDKAPBDualTimerModule *m = &s->timermod[i]; in cmsdk_apb_dualtimer_clk_update() local
459 ptimer_transaction_begin(m->timer); in cmsdk_apb_dualtimer_clk_update()
460 ptimer_set_period_from_clock(m->timer, m->parent->timclk, in cmsdk_apb_dualtimer_clk_update()
461 cmsdk_dualtimermod_divisor(m)); in cmsdk_apb_dualtimer_clk_update()
462 ptimer_transaction_commit(m->timer); in cmsdk_apb_dualtimer_clk_update()
496 CMSDKAPBDualTimerModule *m = &s->timermod[i]; in cmsdk_apb_dualtimer_realize() local
498 m->parent = s; in cmsdk_apb_dualtimer_realize()
499 m->timer = ptimer_init(cmsdk_dualtimermod_tick, m, in cmsdk_apb_dualtimer_realize()