mirror of
https://github.com/drasko/open-ameba.git
synced 2024-12-28 00:55:19 +00:00
96 lines
2 KiB
C
96 lines
2 KiB
C
/*
|
|
* Routines to access hardware
|
|
*
|
|
* Copyright (c) 2013 Realtek Semiconductor Corp.
|
|
*
|
|
* This module is a confidential and proprietary property of RealTek and
|
|
* possession or use of this module requires written permission of RealTek.
|
|
*/
|
|
|
|
#ifndef _HAL_TIMER_H_
|
|
#define _HAL_TIMER_H_
|
|
#include "basic_types.h"
|
|
#include "hal_platform.h"
|
|
#include "rtl8195a_timer.h"
|
|
|
|
#define GTIMER_CLK_HZ (32768)
|
|
#define GTIMER_TICK_US (1000000/GTIMER_CLK_HZ)
|
|
|
|
typedef enum _TIMER_MODE_ {
|
|
FREE_RUN_MODE = 0,
|
|
USER_DEFINED = 1
|
|
}TIMER_MODE, *PTIMER_MODE;
|
|
|
|
|
|
typedef struct _TIMER_ADAPTER_ {
|
|
|
|
u32 TimerLoadValueUs; //+00
|
|
u32 TimerIrqPriority; //+04
|
|
TIMER_MODE TimerMode; //+08
|
|
IRQ_HANDLE IrqHandle; //+0c
|
|
u8 TimerId; //+1c?
|
|
u8 IrqDis; //+1d?
|
|
|
|
}TIMER_ADAPTER, *PTIMER_ADAPTER;
|
|
|
|
|
|
typedef struct _HAL_TIMER_OP_ {
|
|
u32 (*HalGetTimerId)(u32 *TimerId); //+00
|
|
BOOL (*HalTimerInit)(VOID *Data); //+04
|
|
u32 (*HalTimerReadCount)(u32 TimerId); //+08
|
|
VOID (*HalTimerIrqClear)(u32 TimerId); //+0c
|
|
VOID (*HalTimerDis)(u32 TimerId); //+10
|
|
VOID (*HalTimerEn)(u32 TimerId); //+14
|
|
VOID (*HalTimerDumpReg)(u32 TimerId); //+18
|
|
}HAL_TIMER_OP, *PHAL_TIMER_OP;
|
|
|
|
#ifdef CONFIG_TIMER_MODULE
|
|
// This variable declared in ROM code
|
|
extern HAL_TIMER_OP HalTimerOp;
|
|
#endif
|
|
|
|
VOID HalTimerOpInit_Patch(
|
|
IN VOID *Data
|
|
);
|
|
|
|
|
|
//======================================================
|
|
// ROM Function prototype
|
|
_LONG_CALL_ VOID HalTimerOpInitV02(IN VOID *Data);
|
|
|
|
#ifndef CONFIG_RELEASE_BUILD_LIBRARIES
|
|
#define HalTimerOpInit HalTimerOpInit_Patch
|
|
#endif
|
|
|
|
#ifdef CONFIG_RELEASE_BUILD_LIBRARIES
|
|
void HalTimerOpInit(
|
|
void *Data
|
|
);
|
|
|
|
HAL_Status
|
|
HalTimerInit(
|
|
void *Data
|
|
);
|
|
|
|
void
|
|
HalTimerEnable(
|
|
uint32_t TimerId
|
|
);
|
|
|
|
void
|
|
HalTimerDisable(
|
|
uint32_t TimerId
|
|
);
|
|
|
|
void
|
|
HalTimerReLoad(
|
|
uint32_t TimerId,
|
|
uint32_t LoadUs
|
|
);
|
|
|
|
void
|
|
HalTimerDeInit(
|
|
void *Data
|
|
);
|
|
#endif // #ifdef CONFIG_RELEASE_BUILD_LIBRARIES
|
|
#endif
|