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