]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPkg/Library/ArmGenericTimerVirtCounterLib/ArmGenericTimerVirtCounterLib.c
ArmPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / ArmPkg / Library / ArmGenericTimerVirtCounterLib / ArmGenericTimerVirtCounterLib.c
CommitLineData
bcf37cf6
AB
1/** @file\r
2\r
3 Copyright (c) 2011 - 2014, ARM Ltd. All rights reserved.<BR>\r
4 Copyright (c) 2014, Linaro Ltd. All rights reserved.<BR>\r
5\r
4059386c 6 SPDX-License-Identifier: BSD-2-Clause-Patent\r
bcf37cf6
AB
7\r
8**/\r
9\r
10#include <Library/ArmGenericTimerCounterLib.h>\r
734bd6cc 11#include <Library/ArmLib.h>\r
bcf37cf6
AB
12\r
13VOID\r
14EFIAPI\r
15ArmGenericTimerEnableTimer (\r
16 VOID\r
17 )\r
18{\r
19 UINTN TimerCtrlReg;\r
20\r
734bd6cc 21 TimerCtrlReg = ArmReadCntvCtl ();\r
bcf37cf6 22 TimerCtrlReg |= ARM_ARCH_TIMER_ENABLE;\r
734bd6cc 23 ArmWriteCntvCtl (TimerCtrlReg);\r
bcf37cf6
AB
24}\r
25\r
5853e2e4
AB
26VOID\r
27EFIAPI\r
28ArmGenericTimerReenableTimer (\r
29 VOID\r
30 )\r
31{\r
32}\r
33\r
bcf37cf6
AB
34VOID\r
35EFIAPI\r
36ArmGenericTimerDisableTimer (\r
37 VOID\r
38 )\r
39{\r
40 UINTN TimerCtrlReg;\r
41\r
734bd6cc 42 TimerCtrlReg = ArmReadCntvCtl ();\r
bcf37cf6 43 TimerCtrlReg &= ~ARM_ARCH_TIMER_ENABLE;\r
734bd6cc 44 ArmWriteCntvCtl (TimerCtrlReg);\r
bcf37cf6
AB
45}\r
46\r
47VOID\r
48EFIAPI\r
49ArmGenericTimerSetTimerFreq (\r
50 IN UINTN FreqInHz\r
51 )\r
52{\r
734bd6cc 53 ArmWriteCntFrq (FreqInHz);\r
bcf37cf6
AB
54}\r
55\r
56UINTN\r
57EFIAPI\r
58ArmGenericTimerGetTimerFreq (\r
59 VOID\r
60 )\r
61{\r
734bd6cc 62 return ArmReadCntFrq ();\r
bcf37cf6
AB
63}\r
64\r
65UINTN\r
66EFIAPI\r
67ArmGenericTimerGetTimerVal (\r
68 VOID\r
69 )\r
70{\r
734bd6cc 71 return ArmReadCntvTval ();\r
bcf37cf6
AB
72}\r
73\r
74\r
75VOID\r
76EFIAPI\r
77ArmGenericTimerSetTimerVal (\r
78 IN UINTN Value\r
79 )\r
80{\r
734bd6cc 81 ArmWriteCntvTval (Value);\r
bcf37cf6
AB
82}\r
83\r
84UINT64\r
85EFIAPI\r
86ArmGenericTimerGetSystemCount (\r
87 VOID\r
88 )\r
89{\r
734bd6cc 90 return ArmReadCntvCt ();\r
bcf37cf6
AB
91}\r
92\r
93UINTN\r
94EFIAPI\r
95ArmGenericTimerGetTimerCtrlReg (\r
96 VOID\r
97 )\r
98{\r
734bd6cc 99 return ArmReadCntvCtl ();\r
bcf37cf6
AB
100}\r
101\r
102VOID\r
103EFIAPI\r
104ArmGenericTimerSetTimerCtrlReg (\r
105 UINTN Value\r
106 )\r
107{\r
734bd6cc 108 ArmWriteCntvCtl (Value);\r
bcf37cf6
AB
109}\r
110\r
111UINT64\r
112EFIAPI\r
113ArmGenericTimerGetCompareVal (\r
114 VOID\r
115 )\r
116{\r
734bd6cc 117 return ArmReadCntvCval ();\r
bcf37cf6
AB
118}\r
119\r
120VOID\r
121EFIAPI\r
122ArmGenericTimerSetCompareVal (\r
123 IN UINT64 Value\r
124 )\r
125{\r
734bd6cc 126 ArmWriteCntvCval (Value);\r
bcf37cf6 127}\r