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)40 static inline void twd_local_timer_of_register(void)
41 {
42 }
43 #endif
44 
45 #endif
46