1 #ifndef __ASMARM_SMP_TWD_H 2 #define __ASMARM_SMP_TWD_H 3 4 #define TWD_TIMER_LOAD 0x00 5 #define TWD_TIMER_COUNTER 0x04 6 #define TWD_TIMER_CONTROL 0x08 7 #define TWD_TIMER_INTSTAT 0x0C 8 9 #define TWD_WDOG_LOAD 0x20 10 #define TWD_WDOG_COUNTER 0x24 11 #define TWD_WDOG_CONTROL 0x28 12 #define TWD_WDOG_INTSTAT 0x2C 13 #define TWD_WDOG_RESETSTAT 0x30 14 #define TWD_WDOG_DISABLE 0x34 15 16 #define TWD_TIMER_CONTROL_ENABLE (1 << 0) 17 #define TWD_TIMER_CONTROL_ONESHOT (0 << 1) 18 #define TWD_TIMER_CONTROL_PERIODIC (1 << 1) 19 #define TWD_TIMER_CONTROL_IT_ENABLE (1 << 2) 20 21 #include <linux/ioport.h> 22 23 struct twd_local_timer { 24 struct resource res[2]; 25 }; 26 27 #define DEFINE_TWD_LOCAL_TIMER(name,base,irq) \ 28 struct twd_local_timer name __initdata = { \ 29 .res = { \ 30 DEFINE_RES_MEM(base, 0x10), \ 31 DEFINE_RES_IRQ(irq), \ 32 }, \ 33 }; 34 35 int twd_local_timer_register(struct twd_local_timer *); 36 37 #ifdef CONFIG_HAVE_ARM_TWD 38 void twd_local_timer_of_register(void); 39 #else twd_local_timer_of_register(void)40static inline void twd_local_timer_of_register(void) 41 { 42 } 43 #endif 44 45 #endif 46