]>
git.proxmox.com Git - mirror_edk2.git/blob - ArmRealViewEbPkg/Include/ArmEb/ArmEbTimer.h
3 Copyright (c) 2009, Hewlett-Packard Company. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 Driver implementing the EFI 2.0 timer protocol using the ARM SP804 timer.
22 #ifndef _TIMER_SP804_H__
23 #define _TIMER_SP804_H__
28 #define EB_SP810_CTRL_BASE 0x10001000
29 #define EB_SP804_TIMER0_BASE 0x10011000
30 #define EB_SP804_TIMER1_BASE 0x10011020
31 #define EB_SP804_TIMER2_BASE 0x10012000
32 #define EB_SP804_TIMER3_BASE 0x10012020
34 #define EB_TIMER01_INTERRUPT_NUM 36
35 #define EB_TIMER23_INTERRUPT_NUM 37
37 // SP804 Timer constants
38 #define SP804_TIMER_LOAD_REG 0x00
39 #define SP804_TIMER_CURRENT_REG 0x04
40 #define SP804_TIMER_CONTROL_REG 0x08
41 #define SP804_TIMER_INT_CLR_REG 0x0C
42 #define SP804_TIMER_RAW_INT_STS_REG 0x10
43 #define SP804_TIMER_MSK_INT_STS_REG 0x14
44 #define SP804_TIMER_BG_LOAD_REG 0x18
46 // Timer control register bit definitions
47 #define SP804_TIMER_CTRL_ONESHOT BIT0
48 #define SP804_TIMER_CTRL_32BIT BIT1
49 #define SP804_TIMER_CTRL_PRESCALE_MASK (BIT3|BIT2)
50 #define SP804_PRESCALE_DIV_1 0
51 #define SP804_PRESCALE_DIV_16 BIT2
52 #define SP804_PRESCALE_DIV_256 BIT3
53 #define SP804_TIMER_CTRL_INT_ENABLE BIT5
54 #define SP804_TIMER_CTRL_PERIODIC BIT6
55 #define SP804_TIMER_CTRL_ENABLE BIT7
57 // SP810 System Controller constants
58 #define SP810_SYS_CTRL_REG 0x00
59 #define SP810_SYS_CTRL_TIMER0_TIMCLK BIT15 // 0=REFCLK, 1=TIMCLK
60 #define SP810_SYS_CTRL_TIMER0_EN BIT16
61 #define SP810_SYS_CTRL_TIMER1_TIMCLK BIT17 // 0=REFCLK, 1=TIMCLK
62 #define SP810_SYS_CTRL_TIMER1_EN BIT18
63 #define SP810_SYS_CTRL_TIMER2_TIMCLK BIT19 // 0=REFCLK, 1=TIMCLK
64 #define SP810_SYS_CTRL_TIMER2_EN BIT20
65 #define SP810_SYS_CTRL_TIMER3_TIMCLK BIT21 // 0=REFCLK, 1=TIMCLK
66 #define SP810_SYS_CTRL_TIMER3_EN BIT22
68 // default timer tick period - 1ms, or 10000 units of 100ns
69 //#define TIMER_DEFAULT_PERIOD 10000
71 // default timer tick period - 50ms, or 500000 units of 100ns
72 #define TIMER_DEFAULT_PERIOD 500000
74 // default timer tick period - 500ms, or 5000000 units of 100ns
75 //#define TIMER_DEFAULT_PERIOD 5000000