コード例 #1
0
ファイル: mt7621_wdt.c プロジェクト: SantoshShilimkar/linux
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;
}
コード例 #2
0
ファイル: mt7621_wdt.c プロジェクト: SantoshShilimkar/linux
static int mt7621_wdt_set_timeout(struct watchdog_device *w, unsigned int t)
{
	w->timeout = t;
	rt_wdt_w32(TIMER_REG_TMR1LOAD, t * 1000);
	mt7621_wdt_ping(w);

	return 0;
}
コード例 #3
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;
}
コード例 #4
0
ファイル: mt7621_wdt.c プロジェクト: SantoshShilimkar/linux
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;
}
コード例 #5
0
ファイル: mt7621_wdt.c プロジェクト: SantoshShilimkar/linux
static int mt7621_wdt_ping(struct watchdog_device *w)
{
	rt_wdt_w32(TIMER_REG_TMRSTAT, TMR1CTL_RESTART);

	return 0;
}
コード例 #6
0
ファイル: rt2880_wdt.c プロジェクト: mhei/linux
static int rt288x_wdt_ping(struct watchdog_device *w)
{
    rt_wdt_w32(TIMER_REG_TMR1LOAD, w->timeout * rt288x_wdt_freq);

    return 0;
}