#ifndef __ASMARM_SMP_TWD_H #define __ASMARM_SMP_TWD_H #define TWD_TIMER_LOAD 0x00 #define TWD_TIMER_COUNTER 0x04 #define TWD_TIMER_CONTROL 0x08 #define TWD_TIMER_INTSTAT 0x0C #define TWD_WDOG_LOAD 0x20 #define TWD_WDOG_COUNTER 0x24 #define TWD_WDOG_CONTROL 0x28 #define TWD_WDOG_INTSTAT 0x2C #define TWD_WDOG_RESETSTAT 0x30 #define TWD_WDOG_DISABLE 0x34 #define TWD_TIMER_CONTROL_ENABLE (1 << 0) #define TWD_TIMER_CONTROL_ONESHOT (0 << 1) #define TWD_TIMER_CONTROL_PERIODIC (1 << 1) #define TWD_TIMER_CONTROL_IT_ENABLE (1 << 2) #include <linux/ioport.h> struct twd_local_timer { struct resource res[2]; }; #define DEFINE_TWD_LOCAL_TIMER(name,base,irq) \ struct twd_local_timer name __initdata = { \ .res = { \ DEFINE_RES_MEM(base, 0x10), \ DEFINE_RES_IRQ(irq), \ }, \ }; int twd_local_timer_register(struct twd_local_timer *); #ifdef CONFIG_HAVE_ARM_TWD void twd_local_timer_of_register(void); #else static inline void twd_local_timer_of_register(void) { } #endif #endif