1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * (C) Copyright 2007 Michal Simek 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Michal SIMEK <monstr@monstr.cz> 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 7*4882a593Smuzhiyun */ 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #define TIMER_ENABLE_ALL 0x400 /* ENALL */ 10*4882a593Smuzhiyun #define TIMER_PWM 0x200 /* PWMA0 */ 11*4882a593Smuzhiyun #define TIMER_INTERRUPT 0x100 /* T0INT */ 12*4882a593Smuzhiyun #define TIMER_ENABLE 0x080 /* ENT0 */ 13*4882a593Smuzhiyun #define TIMER_ENABLE_INTR 0x040 /* ENIT0 */ 14*4882a593Smuzhiyun #define TIMER_RESET 0x020 /* LOAD0 */ 15*4882a593Smuzhiyun #define TIMER_RELOAD 0x010 /* ARHT0 */ 16*4882a593Smuzhiyun #define TIMER_EXT_CAPTURE 0x008 /* CAPT0 */ 17*4882a593Smuzhiyun #define TIMER_EXT_COMPARE 0x004 /* GENT0 */ 18*4882a593Smuzhiyun #define TIMER_DOWN_COUNT 0x002 /* UDT0 */ 19*4882a593Smuzhiyun #define TIMER_CAPTURE_MODE 0x001 /* MDT0 */ 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun typedef volatile struct microblaze_timer_t { 22*4882a593Smuzhiyun int control; /* control/statuc register TCSR */ 23*4882a593Smuzhiyun int loadreg; /* load register TLR */ 24*4882a593Smuzhiyun int counter; /* timer/counter register */ 25*4882a593Smuzhiyun } microblaze_timer_t; 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun int timer_init(void); 28