writereg
writereg(JZ_TC_TCNT(5), 0);
writereg(JZ_TC_TDFR(5), 30000); /* 10ms at 48MHz / 16 */
writereg(JZ_TC_TDHR(5), 60000); /* not reached */
writereg(JZ_TC_TCSR(5), TCSR_EXT_EN| TCSR_DIV_16);
writereg(JZ_TC_TMCR, TFR_FFLAG5);
writereg(JZ_TC_TFCR, TFR_FFLAG5);
writereg(JZ_TC_TESR, TESR_TCST5); /* enable timer 5 */
writereg(JZ_ICMCR0, 0x0c000000); /* TCU2, OST */
writereg(JZ_TC_TFCR, TFR_OSTFLAG);
writereg(JZ_OST_DATA, ci->ci_next_cp0_clk_intr);
writereg(JZ_OST_DATA, ci->ci_next_cp0_clk_intr);
writereg(JZ_TC_TFCR, TFR_OSTFLAG);
writereg(JZ_TC_TFCR, TFR_FFLAG5);
writereg(JZ_TC_TFCR, TFR_OSTFLAG);
writereg(JZ_OST_DATA, ci->ci_next_cp0_clk_intr);
writereg(JZ_TC_TMCR, TFR_OSTFLAG);
writereg(JZ_TC_TECR, TESR_TCST5); /* disable timer 5 */
writereg(JZ_ICMR0, 0xffffffff);
writereg(JZ_ICMR1, 0xffffffff);
writereg(JZ_ICMSR0, 0x0c000000);
writereg(JZ_ICMCR0, 0x0c000000);
writereg(JZ_ICMSR0, ll);
writereg(JZ_ICMSR1, hh);
writereg(JZ_ICMSR0, mask);
writereg(JZ_ICMSR1, mask);
writereg(JZ_ICMCR0, ll);
writereg(JZ_ICMCR1, hh);
writereg(JZ_ICMCR1, 1 << (irq - 32));
writereg(JZ_ICMCR0, 1 << irq);
writereg(JZ_ICMSR1, 1 << (irq - 32));
writereg(JZ_ICMSR0, 1 << irq);
writereg(JZ_TC_TECR, TESR_OST);
writereg(JZ_OST_CTRL, 0);
writereg(JZ_OST_CNT_LO, 0);
writereg(JZ_OST_CNT_HI, 0);
writereg(JZ_OST_DATA, 0xffffffff);
writereg(JZ_OST_CTRL, OSTC_EXT_EN | OSTC_MODE | OSTC_DIV_4);
writereg(JZ_TC_TESR, TESR_OST);
writereg(JZ_WDOG_TCER, 0); /* disable watchdog */
writereg(JZ_WDOG_TCNT, 0); /* reset counter */
writereg(JZ_WDOG_TDR, 128); /* wait for ~1s */
writereg(JZ_WDOG_TCSR, TCSR_RTC_EN | TCSR_DIV_256);
writereg(JZ_WDOG_TCER, TCER_ENABLE); /* fire! */
writereg(JZ_CLKGR1, reg);
writereg(JZ_ERNG, 1);
writereg(JZ_OPCR, reg);
writereg(JZ_CLKGR0, reg);
writereg(JZ_CLKGR1, reg);
writereg(JZ_GPIO_E_BASE + JZ_GPIO_FLAGC, GPIO_DME_INT_MASK);
writereg(JZ_USBPCR, reg);
writereg(JZ_USBPCR1, reg);
writereg(JZ_USBVBFIL, 0);
writereg(JZ_USBPCR, reg);
writereg(JZ_USBPCR, reg);
writereg(JZ_OPCR, reg);
writereg(JZ_USBPCR1, reg);
writereg(JZ_OPCR, reg);
writereg(JZ_USBPCR1, reg);
writereg(JZ_USBPCR1, reg);
writereg(JZ_USBPCR1, reg);
writereg(JZ_USBPCR, reg);
writereg(JZ_USBPCR, reg);
writereg(JZ_SRBC, reg);
writereg(JZ_SRBC, reg);
writereg(JZ_USBPCR, reg);
writereg(JZ_USBPCR1, reg);
writereg(reg + JZ_GPIO_INTC, mask); /* use as gpio */
writereg(reg + JZ_GPIO_MASKS, mask);
writereg(reg + JZ_GPIO_PAT1C, mask); /* make output */
writereg(reg, mask);
writereg(reg + JZ_GPIO_INTC, mask); /* use as gpio */
writereg(reg + JZ_GPIO_MASKC, mask); /* device mode */
writereg(reg + JZ_GPIO_PAT1C, mask); /* select 0 */
writereg(reg + JZ_GPIO_PAT0C, mask);
writereg(reg + JZ_GPIO_INTC, mask); /* use as gpio */
writereg(reg + JZ_GPIO_MASKC, mask); /* device mode */
writereg(reg + JZ_GPIO_PAT1C, mask); /* select 1 */
writereg(reg + JZ_GPIO_PAT0S, mask);
writereg(reg + JZ_GPIO_INTC, mask); /* use as gpio */
writereg(reg + JZ_GPIO_MASKC, mask); /* device mode */
writereg(reg + JZ_GPIO_PAT1S, mask); /* select 2 */
writereg(reg + JZ_GPIO_PAT0C, mask);
writereg(reg + JZ_GPIO_INTC, mask); /* use as gpio */
writereg(reg + JZ_GPIO_MASKC, mask); /* device mode */
writereg(reg + JZ_GPIO_PAT1S, mask); /* select 3 */
writereg(reg + JZ_GPIO_PAT0S, mask);
writereg(reg + JZ_GPIO_MASKS, mask); /* mask it */
writereg(reg + JZ_GPIO_INTS, mask); /* use as interrupt */
writereg(reg + JZ_GPIO_PAT1C, mask); /* level trigger */
writereg(reg + JZ_GPIO_PAT0S, mask); /* trigger on high */
writereg(reg + JZ_GPIO_FLAGC, mask); /* clear it */
writereg(reg + JZ_GPIO_MASKC, mask); /* enable it */
writereg(reg + JZ_GPIO_MASKS, mask); /* mask it */
writereg(reg + JZ_GPIO_INTS, mask); /* use as interrupt */
writereg(reg + JZ_GPIO_PAT1C, mask); /* level trigger */
writereg(reg + JZ_GPIO_PAT0C, mask); /* trigger on low */
writereg(reg + JZ_GPIO_FLAGC, mask); /* clear it */
writereg(reg + JZ_GPIO_MASKC, mask); /* enable it */
writereg(reg + JZ_GPIO_MASKS, mask); /* mask it */
writereg(reg + JZ_GPIO_INTC, mask); /* not an interrupt */
writereg(reg + JZ_GPIO_PAT1S, mask); /* use as input */
writereg(reg + JZ_GPIO_FLAGC, mask); /* clear it just in case */
writereg(sc, DP8573A_TIMESAVE_CTL, j);
writereg(sc, DP8573A_TIMESAVE_CTL, i);
writereg(sc, DP8573A_TIMESAVE_CTL, j);
writereg(sc, DP8573A_TIMESAVE_CTL, i);
writereg(sc, DP8573A_RT_MODE, j);
writereg(sc, DP8573A_COUNTERS +i, regs[DP8573A_COUNTERS + i]);
writereg(sc, DP8573A_RT_MODE, i);