示例#1
0
文件: rt2880_wdt.c 项目: mhei/linux
static int rt288x_wdt_start(struct watchdog_device *w)
{
    u32 t;

    t = rt_wdt_r32(TIMER_REG_TMR1CTL);
    t &= ~(TMR1CTL_MODE_MASK << TMR1CTL_MODE_SHIFT |
           TMR1CTL_PRESCALE_MASK);
    t |= (TMR1CTL_MODE_WDT << TMR1CTL_MODE_SHIFT |
          TMR1CTL_PRESCALE_65536);
    rt_wdt_w32(TIMER_REG_TMR1CTL, t);

    rt288x_wdt_ping(w);

    t = rt_wdt_r32(TIMER_REG_TMR1CTL);
    t |= TMR1CTL_ENABLE;
    rt_wdt_w32(TIMER_REG_TMR1CTL, t);

    return 0;
}
示例#2
0
static int mt7621_wdt_stop(struct watchdog_device *w)
{
	u32 t;

	mt7621_wdt_ping(w);

	t = rt_wdt_r32(TIMER_REG_TMR1CTL);
	t &= ~TMR1CTL_ENABLE;
	rt_wdt_w32(TIMER_REG_TMR1CTL, t);

	return 0;
}
示例#3
0
static int mt7621_wdt_start(struct watchdog_device *w)
{
	u32 t;

	/* set the prescaler to 1ms == 1000us */
	rt_wdt_w32(TIMER_REG_TMR1CTL, 1000 << TMR1CTL_PRESCALE_SHIFT);

	mt7621_wdt_set_timeout(w, w->timeout);

	t = rt_wdt_r32(TIMER_REG_TMR1CTL);
	t |= TMR1CTL_ENABLE;
	rt_wdt_w32(TIMER_REG_TMR1CTL, t);

	return 0;
}