mirror of
https://github.com/torvalds/linux.git
synced 2024-11-12 15:11:50 +00:00
368dd5acd1
Implement the Panasonic MN10300 AM34 CPU subarch and implement SMP support for MN10300. Also implement support for the MN2WS0060 processor and the ASB2364 evaluation board which are AM34 based. Signed-off-by: Akira Takeuchi <takeuchi.akr@jp.panasonic.com> Signed-off-by: Kiyoshi Owada <owada.kiyoshi@jp.panasonic.com> Signed-off-by: David Howells <dhowells@redhat.com>
65 lines
1.9 KiB
C
65 lines
1.9 KiB
C
/* MN10300 Reset controller and watchdog timer definitions
|
|
*
|
|
* Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
|
|
* Written by David Howells (dhowells@redhat.com)
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public Licence
|
|
* as published by the Free Software Foundation; either version
|
|
* 2 of the Licence, or (at your option) any later version.
|
|
*/
|
|
|
|
#ifndef _ASM_RESET_REGS_H
|
|
#define _ASM_RESET_REGS_H
|
|
|
|
#include <asm/cpu-regs.h>
|
|
#include <asm/exceptions.h>
|
|
|
|
#ifdef __KERNEL__
|
|
|
|
#ifdef CONFIG_MN10300_WD_TIMER
|
|
#define ARCH_HAS_NMI_WATCHDOG /* See include/linux/nmi.h */
|
|
#endif
|
|
|
|
/*
|
|
* watchdog timer registers
|
|
*/
|
|
#define WDBC __SYSREGC(0xc0001000, u8) /* watchdog binary counter reg */
|
|
|
|
#define WDCTR __SYSREG(0xc0001002, u8) /* watchdog timer control reg */
|
|
#define WDCTR_WDCK 0x07 /* clock source selection */
|
|
#define WDCTR_WDCK_256th 0x00 /* - OSCI/256 */
|
|
#define WDCTR_WDCK_1024th 0x01 /* - OSCI/1024 */
|
|
#define WDCTR_WDCK_2048th 0x02 /* - OSCI/2048 */
|
|
#define WDCTR_WDCK_16384th 0x03 /* - OSCI/16384 */
|
|
#define WDCTR_WDCK_65536th 0x04 /* - OSCI/65536 */
|
|
#define WDCTR_WDRST 0x40 /* binary counter reset */
|
|
#define WDCTR_WDCNE 0x80 /* watchdog timer enable */
|
|
|
|
#define RSTCTR __SYSREG(0xc0001004, u8) /* reset control reg */
|
|
#define RSTCTR_CHIPRST 0x01 /* chip reset */
|
|
#define RSTCTR_DBFRST 0x02 /* double fault reset flag */
|
|
#define RSTCTR_WDTRST 0x04 /* watchdog timer reset flag */
|
|
#define RSTCTR_WDREN 0x08 /* watchdog timer reset enable */
|
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
static inline void mn10300_proc_hard_reset(void)
|
|
{
|
|
RSTCTR &= ~RSTCTR_CHIPRST;
|
|
RSTCTR |= RSTCTR_CHIPRST;
|
|
}
|
|
|
|
extern unsigned int watchdog_alert_counter[];
|
|
|
|
extern void watchdog_go(void);
|
|
extern asmlinkage void watchdog_handler(void);
|
|
extern asmlinkage
|
|
void watchdog_interrupt(struct pt_regs *, enum exception_code);
|
|
|
|
#endif
|
|
|
|
#endif /* __KERNEL__ */
|
|
|
|
#endif /* _ASM_RESET_REGS_H */
|