TIMER_WRITE
TIMER_WRITE(sc, MESON_TIMER_MUX, mask);
TIMER_WRITE(sc, HW_TIMROT_TIMCTRL0, ctrl);
TIMER_WRITE(sc, HW_TIMROT_TIMCTRL1, ctrl);
TIMER_WRITE(sc, HW_TIMROT_TIMCTRL0_CLR, HW_TIMROT_TIMCTRL0_IRQ);
TIMER_WRITE(sc, HW_TIMROT_TIMCTRL1_CLR, HW_TIMROT_TIMCTRL1_IRQ);
TIMER_WRITE(sc, TMR1_PTV_REG,
TIMER_WRITE(sc, TMR1_PCR_REG, TMR_PCR_INTR_CLR);
TIMER_WRITE(sc, TMR1_PCR_REG, TMR_PCR_INTR_CLR);
TIMER_WRITE(sc, HS_TMR_IRQ_STAS_REG, stas);
TIMER_WRITE(sc, HS_TMR_IRQ_EN_REG, 0);
TIMER_WRITE(sc, HS_TMR_IRQ_STAS_REG, TIMER_READ(sc, HS_TMR_IRQ_STAS_REG));
TIMER_WRITE(sc, HS_TMR0_CTRL_REG, 0);
TIMER_WRITE(sc, HS_TMR0_INTV_LO_REG, ~0u);
TIMER_WRITE(sc, HS_TMR0_INTV_HI_REG, ~0u);
TIMER_WRITE(sc, HS_TMR0_CTRL_REG,
TIMER_WRITE(sc, TMR_IRQ_STAS_REG, stas);
TIMER_WRITE(sc, TMR_IRQ_EN_REG, irq_en | TMR_IRQ_EN(0));
TIMER_WRITE(sc, TMR_IRQ_EN_REG, 0);
TIMER_WRITE(sc, TMR_IRQ_STAS_REG, TIMER_READ(sc, TMR_IRQ_STAS_REG));
TIMER_WRITE(sc, TMR0_INTV_VALUE_REG, rate / hz);
TIMER_WRITE(sc, TMR0_CTRL_REG,
TIMER_WRITE(sc, TMR2_INTV_VALUE_REG, ~0u);
TIMER_WRITE(sc, TMR2_CTRL_REG,
TIMER_WRITE(sc, TMR4_INTV_VALUE_REG, ~0u);
TIMER_WRITE(sc, TMR4_CTRL_REG, TMR4_CTRL_RELOAD | TMR4_CTRL_EN);
TIMER_WRITE(sc, LOSC_CTRL_REG, reg);
TIMER_WRITE(sc, LOSC_CTRL_REG, reg & ~LOSC_CTRL_OSC32K_SEL);
TIMER_WRITE(sc, AM18XX_TIMER_TCR, 0);
TIMER_WRITE(sc, AM18XX_TIMER_TGCR, AM18XX_TIMER_TGCR_TIMMODE32_UNCHAINED
TIMER_WRITE(sc, AM18XX_TIMER_TIM12, 0);
TIMER_WRITE(sc, AM18XX_TIMER_TIM34, 0);
TIMER_WRITE(sc, AM18XX_TIMER_PRD12, timer_interval);
TIMER_WRITE(sc, AM18XX_TIMER_PRD34, 0);
TIMER_WRITE(sc, AM18XX_TIMER_TCR, AM18XX_TIMER_TCR_ENAMODE12_CONTINUOUS);