MCPcopy Create free account
hub / github.com/F-Stack/f-stack / a23_timer_timecounter_setup

Function a23_timer_timecounter_setup

freebsd/arm/allwinner/a10_timer.c:384–409  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

382
383#if defined(__aarch64__)
384static void
385a23_timer_timecounter_setup(struct a10_timer_softc *sc)
386{
387 uint32_t val;
388
389 /* Set clock source to OSC24M, 1 pre-division, continuous mode */
390 val = timer_read_4(sc, TIMER_CTRL_REG(0));
391 val &= ~TIMER_CTRL_PRESCALAR_MASK | ~TIMER_CTRL_MODE_MASK | ~TIMER_CTRL_CLKSRC_MASK;
392 val |= TIMER_CTRL_PRESCALAR(1) | TIMER_CTRL_OSC24M;
393 timer_write_4(sc, TIMER_CTRL_REG(0), val);
394
395 /* Set reload value */
396 timer_write_4(sc, TIMER_INTV_REG(0), ~0);
397 val = timer_read_4(sc, TIMER_INTV_REG(0));
398
399 /* Enable timer0 */
400 val = timer_read_4(sc, TIMER_CTRL_REG(0));
401 val |= TIMER_CTRL_AUTORELOAD | TIMER_CTRL_START;
402 timer_write_4(sc, TIMER_CTRL_REG(0), val);
403
404 val = timer_read_4(sc, TIMER_CURV_REG(0));
405
406 a23_timer_timecounter.tc_priv = sc;
407 a23_timer_timecounter.tc_frequency = sc->timer0_freq;
408 tc_init(&a23_timer_timecounter);
409}
410
411static u_int
412a23_timer_get_timecount(struct timecounter *tc)

Callers 1

a10_timer_attachFunction · 0.85

Calls 1

tc_initFunction · 0.85

Tested by

no test coverage detected