diff options
Diffstat (limited to 'arch/arm/mach-bcmring/include/mach/csp/tmrHw_reg.h')
-rw-r--r-- | arch/arm/mach-bcmring/include/mach/csp/tmrHw_reg.h | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/arch/arm/mach-bcmring/include/mach/csp/tmrHw_reg.h b/arch/arm/mach-bcmring/include/mach/csp/tmrHw_reg.h new file mode 100644 index 00000000000..3080ac7239a --- /dev/null +++ b/arch/arm/mach-bcmring/include/mach/csp/tmrHw_reg.h | |||
@@ -0,0 +1,82 @@ | |||
1 | /***************************************************************************** | ||
2 | * Copyright 2004 - 2008 Broadcom Corporation. All rights reserved. | ||
3 | * | ||
4 | * Unless you and Broadcom execute a separate written software license | ||
5 | * agreement governing use of this software, this software is licensed to you | ||
6 | * under the terms of the GNU General Public License version 2, available at | ||
7 | * http://www.broadcom.com/licenses/GPLv2.php (the "GPL"). | ||
8 | * | ||
9 | * Notwithstanding the above, under no circumstances may you combine this | ||
10 | * software in any way with any other Broadcom software provided under a | ||
11 | * license other than the GPL, without Broadcom's express prior written | ||
12 | * consent. | ||
13 | *****************************************************************************/ | ||
14 | |||
15 | /****************************************************************************/ | ||
16 | /** | ||
17 | * @file tmrHw_reg.h | ||
18 | * | ||
19 | * @brief Definitions for low level Timer registers | ||
20 | * | ||
21 | */ | ||
22 | /****************************************************************************/ | ||
23 | #ifndef _TMRHW_REG_H | ||
24 | #define _TMRHW_REG_H | ||
25 | |||
26 | #include <mach/csp/mm_io.h> | ||
27 | #include <mach/csp/hw_cfg.h> | ||
28 | /* Base address */ | ||
29 | #define tmrHw_MODULE_BASE_ADDR MM_IO_BASE_TMR | ||
30 | |||
31 | /* | ||
32 | This platform has four different timers running at different clock speed | ||
33 | |||
34 | Timer one (Timer ID 0) runs at 25 MHz | ||
35 | Timer two (Timer ID 1) runs at 25 MHz | ||
36 | Timer three (Timer ID 2) runs at 150 MHz | ||
37 | Timer four (Timer ID 3) runs at 150 MHz | ||
38 | */ | ||
39 | #define tmrHw_LOW_FREQUENCY_MHZ 25 /* Always 25MHz from XTAL */ | ||
40 | #define tmrHw_LOW_FREQUENCY_HZ 25000000 | ||
41 | |||
42 | #if defined(CFG_GLOBAL_CHIP) && (CFG_GLOBAL_CHIP == FPGA11107) | ||
43 | #define tmrHw_HIGH_FREQUENCY_MHZ 150 /* Always 150MHz for FPGA */ | ||
44 | #define tmrHw_HIGH_FREQUENCY_HZ 150000000 | ||
45 | #else | ||
46 | #define tmrHw_HIGH_FREQUENCY_HZ HW_CFG_BUS_CLK_HZ | ||
47 | #define tmrHw_HIGH_FREQUENCY_MHZ (HW_CFG_BUS_CLK_HZ / 1000000) | ||
48 | #endif | ||
49 | |||
50 | #define tmrHw_LOW_RESOLUTION_CLOCK tmrHw_LOW_FREQUENCY_HZ | ||
51 | #define tmrHw_HIGH_RESOLUTION_CLOCK tmrHw_HIGH_FREQUENCY_HZ | ||
52 | #define tmrHw_MAX_COUNT (0xFFFFFFFF) /* maximum number of count a timer can count */ | ||
53 | #define tmrHw_TIMER_NUM_COUNT (4) /* Number of timer module supported */ | ||
54 | |||
55 | typedef struct { | ||
56 | uint32_t LoadValue; /* Load value for timer */ | ||
57 | uint32_t CurrentValue; /* Current value for timer */ | ||
58 | uint32_t Control; /* Control register */ | ||
59 | uint32_t InterruptClear; /* Interrupt clear register */ | ||
60 | uint32_t RawInterruptStatus; /* Raw interrupt status */ | ||
61 | uint32_t InterruptStatus; /* Masked interrupt status */ | ||
62 | uint32_t BackgroundLoad; /* Background load value */ | ||
63 | uint32_t padding; /* Padding register */ | ||
64 | } tmrHw_REG_t; | ||
65 | |||
66 | /* Control bot masks */ | ||
67 | #define tmrHw_CONTROL_TIMER_ENABLE 0x00000080 | ||
68 | #define tmrHw_CONTROL_PERIODIC 0x00000040 | ||
69 | #define tmrHw_CONTROL_INTERRUPT_ENABLE 0x00000020 | ||
70 | #define tmrHw_CONTROL_PRESCALE_MASK 0x0000000C | ||
71 | #define tmrHw_CONTROL_PRESCALE_1 0x00000000 | ||
72 | #define tmrHw_CONTROL_PRESCALE_16 0x00000004 | ||
73 | #define tmrHw_CONTROL_PRESCALE_256 0x00000008 | ||
74 | #define tmrHw_CONTROL_32BIT 0x00000002 | ||
75 | #define tmrHw_CONTROL_ONESHOT 0x00000001 | ||
76 | #define tmrHw_CONTROL_FREE_RUNNING 0x00000000 | ||
77 | |||
78 | #define tmrHw_CONTROL_MODE_MASK (tmrHw_CONTROL_PERIODIC | tmrHw_CONTROL_ONESHOT) | ||
79 | |||
80 | #define pTmrHw ((volatile tmrHw_REG_t *)tmrHw_MODULE_BASE_ADDR) | ||
81 | |||
82 | #endif /* _TMRHW_REG_H */ | ||