mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Committer:
AnnaBridge
Date:
Fri Sep 15 14:59:18 2017 +0100
Revision:
173:e131a1973e81
Parent:
167:e84263d55307
Child:
178:79309dc6340a
This updates the lib to the mbed lib v 151

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 167:e84263d55307 1 /*******************************************************************************
AnnaBridge 167:e84263d55307 2 *Copyright (c) 2013-2016 Realtek Semiconductor Corp, All Rights Reserved
AnnaBridge 167:e84263d55307 3 * SPDX-License-Identifier: LicenseRef-PBL
AnnaBridge 167:e84263d55307 4 *
AnnaBridge 167:e84263d55307 5 * Licensed under the Permissive Binary License, Version 1.0 (the "License");
AnnaBridge 167:e84263d55307 6 * you may not use this file except in compliance with the License.
AnnaBridge 167:e84263d55307 7 *
AnnaBridge 167:e84263d55307 8 * You may obtain a copy of the License at https://www.mbed.com/licenses/PBL-1.0
AnnaBridge 167:e84263d55307 9 *
AnnaBridge 167:e84263d55307 10 * See the License for the specific language governing permissions and limitations under the License.
AnnaBridge 167:e84263d55307 11 *******************************************************************************
AnnaBridge 167:e84263d55307 12 */
AnnaBridge 167:e84263d55307 13
AnnaBridge 167:e84263d55307 14 #ifndef _RTL8195A_TIMER_H_
AnnaBridge 167:e84263d55307 15 #define _RTL8195A_TIMER_H_
AnnaBridge 167:e84263d55307 16
AnnaBridge 167:e84263d55307 17
AnnaBridge 173:e131a1973e81 18 #define TIMER_TICK_US 32
AnnaBridge 167:e84263d55307 19
AnnaBridge 167:e84263d55307 20 #define TIMER_LOAD_COUNT_OFF 0x00
AnnaBridge 167:e84263d55307 21 #define TIMER_CURRENT_VAL_OFF 0x04
AnnaBridge 167:e84263d55307 22 #define TIMER_CTL_REG_OFF 0x08
AnnaBridge 167:e84263d55307 23 #define TIMER_EOI_OFF 0x0c
AnnaBridge 167:e84263d55307 24 #define TIMER_INT_STATUS_OFF 0x10
AnnaBridge 167:e84263d55307 25 #define TIMER_INTERVAL 0x14
AnnaBridge 167:e84263d55307 26 #define TIMERS_INT_STATUS_OFF 0xa0
AnnaBridge 167:e84263d55307 27 #define TIMERS_EOI_OFF 0xa4
AnnaBridge 167:e84263d55307 28 #define TIMERS_RAW_INT_STATUS_OFF 0xa8
AnnaBridge 167:e84263d55307 29 #define TIMERS_COMP_VER_OFF 0xac
AnnaBridge 167:e84263d55307 30
AnnaBridge 167:e84263d55307 31 #define MAX_TIMER_VECTOR_TABLE_NUM 6
AnnaBridge 167:e84263d55307 32
AnnaBridge 167:e84263d55307 33 #define HAL_TIMER_READ32(addr) (*((volatile u32*)(TIMER_REG_BASE + addr)))//HAL_READ32(TIMER_REG_BASE, addr)
AnnaBridge 167:e84263d55307 34 #define HAL_TIMER_WRITE32(addr, value) ((*((volatile u32*)(TIMER_REG_BASE + addr))) = value)//HAL_WRITE32(TIMER_REG_BASE, addr, value)
AnnaBridge 167:e84263d55307 35 #define HAL_TIMER_READ16(addr) (*((volatile u16*)(TIMER_REG_BASE + addr)))//HAL_READ16(TIMER_REG_BASE, addr)
AnnaBridge 167:e84263d55307 36 #define HAL_TIMER_WRITE16(addr, value) ((*((volatile u16*)(TIMER_REG_BASE + addr))) = value)//HAL_WRITE16(TIMER_REG_BASE, addr, value)
AnnaBridge 167:e84263d55307 37 #define HAL_TIMER_READ8(addr) (*((volatile u8*)(TIMER_REG_BASE + addr)))//HAL_READ8(TIMER_REG_BASE, addr)
AnnaBridge 167:e84263d55307 38 #define HAL_TIMER_WRITE8(addr, value) ((*((volatile u8*)(TIMER_REG_BASE + addr))) = value)//HAL_WRITE8(TIMER_REG_BASE, addr, value)
AnnaBridge 167:e84263d55307 39
AnnaBridge 167:e84263d55307 40 _LONG_CALL_ u32
AnnaBridge 167:e84263d55307 41 HalGetTimerIdRtl8195a(
AnnaBridge 167:e84263d55307 42 IN u32 *TimerID
AnnaBridge 167:e84263d55307 43 );
AnnaBridge 167:e84263d55307 44
AnnaBridge 167:e84263d55307 45 _LONG_CALL_ BOOL
AnnaBridge 167:e84263d55307 46 HalTimerInitRtl8195a(
AnnaBridge 167:e84263d55307 47 IN VOID *Data
AnnaBridge 167:e84263d55307 48 );
AnnaBridge 167:e84263d55307 49
AnnaBridge 167:e84263d55307 50 _LONG_CALL_ u32
AnnaBridge 167:e84263d55307 51 HalTimerReadCountRtl8195a(
AnnaBridge 167:e84263d55307 52 IN u32 TimerId
AnnaBridge 167:e84263d55307 53 );
AnnaBridge 167:e84263d55307 54
AnnaBridge 167:e84263d55307 55 _LONG_CALL_ VOID
AnnaBridge 167:e84263d55307 56 HalTimerIrqClearRtl8195a(
AnnaBridge 167:e84263d55307 57 IN u32 TimerId
AnnaBridge 167:e84263d55307 58 );
AnnaBridge 167:e84263d55307 59
AnnaBridge 167:e84263d55307 60 _LONG_CALL_ VOID
AnnaBridge 167:e84263d55307 61 HalTimerDisRtl8195a(
AnnaBridge 167:e84263d55307 62 IN u32 TimerId
AnnaBridge 167:e84263d55307 63 );
AnnaBridge 167:e84263d55307 64
AnnaBridge 167:e84263d55307 65 _LONG_CALL_ VOID
AnnaBridge 167:e84263d55307 66 HalTimerEnRtl8195a(
AnnaBridge 167:e84263d55307 67 IN u32 TimerId
AnnaBridge 167:e84263d55307 68 );
AnnaBridge 167:e84263d55307 69
AnnaBridge 167:e84263d55307 70 _LONG_CALL_ VOID
AnnaBridge 167:e84263d55307 71 HalTimerDumpRegRtl8195a(
AnnaBridge 167:e84263d55307 72 IN u32 TimerId
AnnaBridge 167:e84263d55307 73 );
AnnaBridge 167:e84263d55307 74
AnnaBridge 167:e84263d55307 75 // ROM Code patch
AnnaBridge 167:e84263d55307 76 HAL_Status
AnnaBridge 167:e84263d55307 77 HalTimerInitRtl8195a_Patch(
AnnaBridge 167:e84263d55307 78 IN VOID *Data
AnnaBridge 167:e84263d55307 79 );
AnnaBridge 167:e84263d55307 80
AnnaBridge 167:e84263d55307 81 u32
AnnaBridge 167:e84263d55307 82 HalTimerReadCountRtl8195a_Patch(
AnnaBridge 167:e84263d55307 83 IN u32 TimerId
AnnaBridge 167:e84263d55307 84 );
AnnaBridge 167:e84263d55307 85
AnnaBridge 167:e84263d55307 86 VOID
AnnaBridge 167:e84263d55307 87 HalTimerReLoadRtl8195a_Patch(
AnnaBridge 167:e84263d55307 88 IN u32 TimerId,
AnnaBridge 167:e84263d55307 89 IN u32 LoadUs
AnnaBridge 167:e84263d55307 90 );
AnnaBridge 167:e84263d55307 91
AnnaBridge 167:e84263d55307 92 u32
AnnaBridge 167:e84263d55307 93 HalTimerReadCountRtl8195a_Patch(
AnnaBridge 167:e84263d55307 94 IN u32 TimerId
AnnaBridge 167:e84263d55307 95 );
AnnaBridge 167:e84263d55307 96
AnnaBridge 167:e84263d55307 97 VOID
AnnaBridge 167:e84263d55307 98 HalTimerIrqEnRtl8195a(
AnnaBridge 167:e84263d55307 99 IN u32 TimerId
AnnaBridge 167:e84263d55307 100 );
AnnaBridge 167:e84263d55307 101
AnnaBridge 167:e84263d55307 102 VOID
AnnaBridge 167:e84263d55307 103 HalTimerIrqDisRtl8195a(
AnnaBridge 167:e84263d55307 104 IN u32 TimerId
AnnaBridge 167:e84263d55307 105 );
AnnaBridge 167:e84263d55307 106
AnnaBridge 167:e84263d55307 107 VOID
AnnaBridge 167:e84263d55307 108 HalTimerClearIsrRtl8195a(
AnnaBridge 167:e84263d55307 109 IN u32 TimerId
AnnaBridge 167:e84263d55307 110 );
AnnaBridge 167:e84263d55307 111
AnnaBridge 167:e84263d55307 112 VOID
AnnaBridge 167:e84263d55307 113 HalTimerEnRtl8195a_Patch(
AnnaBridge 167:e84263d55307 114 IN u32 TimerId
AnnaBridge 167:e84263d55307 115 );
AnnaBridge 167:e84263d55307 116
AnnaBridge 167:e84263d55307 117 VOID
AnnaBridge 167:e84263d55307 118 HalTimerDisRtl8195a_Patch(
AnnaBridge 167:e84263d55307 119 IN u32 TimerId
AnnaBridge 167:e84263d55307 120 );
AnnaBridge 167:e84263d55307 121
AnnaBridge 167:e84263d55307 122 VOID
AnnaBridge 167:e84263d55307 123 HalTimerDeInitRtl8195a_Patch(
AnnaBridge 167:e84263d55307 124 IN VOID *Data
AnnaBridge 167:e84263d55307 125 );
AnnaBridge 167:e84263d55307 126
AnnaBridge 167:e84263d55307 127 #if defined(CONFIG_CHIP_C_CUT) || defined(CONFIG_CHIP_E_CUT)
AnnaBridge 167:e84263d55307 128
AnnaBridge 167:e84263d55307 129 __weak _LONG_CALL_
AnnaBridge 167:e84263d55307 130 VOID
AnnaBridge 167:e84263d55307 131 HalTimerIrq2To7HandleV02(
AnnaBridge 167:e84263d55307 132 IN VOID *Data
AnnaBridge 167:e84263d55307 133 );
AnnaBridge 167:e84263d55307 134
AnnaBridge 167:e84263d55307 135 __weak _LONG_CALL_ROM_
AnnaBridge 167:e84263d55307 136 HAL_Status
AnnaBridge 167:e84263d55307 137 HalTimerIrqRegisterRtl8195aV02(
AnnaBridge 167:e84263d55307 138 IN VOID *Data
AnnaBridge 167:e84263d55307 139 );
AnnaBridge 167:e84263d55307 140
AnnaBridge 167:e84263d55307 141 __weak _LONG_CALL_
AnnaBridge 167:e84263d55307 142 HAL_Status
AnnaBridge 167:e84263d55307 143 HalTimerInitRtl8195aV02(
AnnaBridge 167:e84263d55307 144 IN VOID *Data
AnnaBridge 167:e84263d55307 145 );
AnnaBridge 167:e84263d55307 146
AnnaBridge 167:e84263d55307 147 __weak _LONG_CALL_
AnnaBridge 167:e84263d55307 148 u32
AnnaBridge 167:e84263d55307 149 HalTimerReadCountRtl8195aV02(
AnnaBridge 167:e84263d55307 150 IN u32 TimerId
AnnaBridge 167:e84263d55307 151 );
AnnaBridge 167:e84263d55307 152
AnnaBridge 167:e84263d55307 153 __weak _LONG_CALL_
AnnaBridge 167:e84263d55307 154 VOID
AnnaBridge 167:e84263d55307 155 HalTimerReLoadRtl8195aV02(
AnnaBridge 167:e84263d55307 156 IN u32 TimerId,
AnnaBridge 167:e84263d55307 157 IN u32 LoadUs
AnnaBridge 167:e84263d55307 158 );
AnnaBridge 167:e84263d55307 159
AnnaBridge 167:e84263d55307 160 __weak _LONG_CALL_ROM_
AnnaBridge 167:e84263d55307 161 HAL_Status
AnnaBridge 167:e84263d55307 162 HalTimerIrqUnRegisterRtl8195aV02(
AnnaBridge 167:e84263d55307 163 IN VOID *Data
AnnaBridge 167:e84263d55307 164 );
AnnaBridge 167:e84263d55307 165
AnnaBridge 167:e84263d55307 166 __weak _LONG_CALL_
AnnaBridge 167:e84263d55307 167 VOID
AnnaBridge 167:e84263d55307 168 HalTimerDeInitRtl8195aV02(
AnnaBridge 167:e84263d55307 169 IN VOID *Data
AnnaBridge 167:e84263d55307 170 );
AnnaBridge 167:e84263d55307 171
AnnaBridge 167:e84263d55307 172 #endif // end of "#ifdef CONFIG_CHIP_C_CUT"
AnnaBridge 167:e84263d55307 173
AnnaBridge 167:e84263d55307 174 #ifdef CONFIG_CHIP_E_CUT
AnnaBridge 167:e84263d55307 175 _LONG_CALL_ VOID
AnnaBridge 167:e84263d55307 176 HalTimerReLoadRtl8195a_V04(
AnnaBridge 167:e84263d55307 177 IN u32 TimerId,
AnnaBridge 167:e84263d55307 178 IN u32 LoadUs
AnnaBridge 167:e84263d55307 179 );
AnnaBridge 167:e84263d55307 180
AnnaBridge 167:e84263d55307 181 _LONG_CALL_ HAL_Status
AnnaBridge 167:e84263d55307 182 HalTimerInitRtl8195a_V04(
AnnaBridge 167:e84263d55307 183 IN VOID *Data
AnnaBridge 167:e84263d55307 184 );
AnnaBridge 167:e84263d55307 185 #endif // #ifdef CONFIG_CHIP_E_CUT
AnnaBridge 167:e84263d55307 186
AnnaBridge 167:e84263d55307 187 // HAL functions wrapper
AnnaBridge 167:e84263d55307 188 #ifndef CONFIG_RELEASE_BUILD_LIBRARIES
AnnaBridge 167:e84263d55307 189 static __inline HAL_Status
AnnaBridge 167:e84263d55307 190 HalTimerInit(
AnnaBridge 167:e84263d55307 191 IN VOID *Data
AnnaBridge 167:e84263d55307 192 )
AnnaBridge 167:e84263d55307 193 {
AnnaBridge 167:e84263d55307 194 #ifdef CONFIG_CHIP_E_CUT
AnnaBridge 167:e84263d55307 195 return (HalTimerInitRtl8195a_V04(Data));
AnnaBridge 167:e84263d55307 196 #else
AnnaBridge 167:e84263d55307 197 return (HalTimerInitRtl8195a_Patch(Data));
AnnaBridge 167:e84263d55307 198 #endif
AnnaBridge 167:e84263d55307 199 }
AnnaBridge 167:e84263d55307 200
AnnaBridge 167:e84263d55307 201 static __inline VOID
AnnaBridge 167:e84263d55307 202 HalTimerEnable(
AnnaBridge 167:e84263d55307 203 IN u32 TimerId
AnnaBridge 167:e84263d55307 204 )
AnnaBridge 167:e84263d55307 205 {
AnnaBridge 167:e84263d55307 206 HalTimerIrqEnRtl8195a(TimerId);
AnnaBridge 167:e84263d55307 207 HalTimerEnRtl8195a_Patch(TimerId);
AnnaBridge 167:e84263d55307 208 }
AnnaBridge 167:e84263d55307 209
AnnaBridge 167:e84263d55307 210 static __inline VOID
AnnaBridge 167:e84263d55307 211 HalTimerDisable(
AnnaBridge 167:e84263d55307 212 IN u32 TimerId
AnnaBridge 167:e84263d55307 213 )
AnnaBridge 167:e84263d55307 214 {
AnnaBridge 167:e84263d55307 215 HalTimerDisRtl8195a_Patch(TimerId);
AnnaBridge 167:e84263d55307 216 }
AnnaBridge 167:e84263d55307 217
AnnaBridge 167:e84263d55307 218 static __inline VOID
AnnaBridge 167:e84263d55307 219 HalTimerClearIsr(
AnnaBridge 167:e84263d55307 220 IN u32 TimerId
AnnaBridge 167:e84263d55307 221 )
AnnaBridge 167:e84263d55307 222 {
AnnaBridge 167:e84263d55307 223 HalTimerClearIsrRtl8195a(TimerId);
AnnaBridge 167:e84263d55307 224 }
AnnaBridge 167:e84263d55307 225
AnnaBridge 167:e84263d55307 226 static __inline VOID
AnnaBridge 167:e84263d55307 227 HalTimerReLoad(
AnnaBridge 167:e84263d55307 228 IN u32 TimerId,
AnnaBridge 167:e84263d55307 229 IN u32 LoadUs
AnnaBridge 167:e84263d55307 230 )
AnnaBridge 167:e84263d55307 231 {
AnnaBridge 167:e84263d55307 232 #ifdef CONFIG_CHIP_E_CUT
AnnaBridge 167:e84263d55307 233 HalTimerReLoadRtl8195a_V04(TimerId, LoadUs);
AnnaBridge 167:e84263d55307 234 #else
AnnaBridge 167:e84263d55307 235 HalTimerReLoadRtl8195a_Patch(TimerId, LoadUs);
AnnaBridge 167:e84263d55307 236 #endif
AnnaBridge 167:e84263d55307 237 }
AnnaBridge 167:e84263d55307 238
AnnaBridge 167:e84263d55307 239 #if defined(CONFIG_CHIP_A_CUT) || defined(CONFIG_CHIP_B_CUT)
AnnaBridge 167:e84263d55307 240
AnnaBridge 167:e84263d55307 241 static __inline VOID
AnnaBridge 167:e84263d55307 242 HalTimerDeInit(
AnnaBridge 167:e84263d55307 243 IN VOID *Data
AnnaBridge 167:e84263d55307 244 )
AnnaBridge 167:e84263d55307 245 {
AnnaBridge 167:e84263d55307 246 HalTimerDeInitRtl8195a_Patch(Data);
AnnaBridge 167:e84263d55307 247 }
AnnaBridge 167:e84263d55307 248
AnnaBridge 167:e84263d55307 249 #else
AnnaBridge 167:e84263d55307 250
AnnaBridge 167:e84263d55307 251 static __inline VOID
AnnaBridge 167:e84263d55307 252 HalTimerDeInit(
AnnaBridge 167:e84263d55307 253 IN VOID *Data
AnnaBridge 167:e84263d55307 254 )
AnnaBridge 167:e84263d55307 255 {
AnnaBridge 167:e84263d55307 256 HalTimerDeInitRtl8195aV02(Data);
AnnaBridge 167:e84263d55307 257 }
AnnaBridge 167:e84263d55307 258
AnnaBridge 167:e84263d55307 259 #endif // end of "#ifndef CONFIG_CHIP_C_CUT"
AnnaBridge 167:e84263d55307 260 #endif // #ifndef CONFIG_RELEASE_BUILD_LIBRARIES
AnnaBridge 167:e84263d55307 261 #endif //_RTL8195A_TIMER_H_