📄 drvglobal.h
字号:
////////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2006-2007 MStar Semiconductor, Inc.
// All rights reserved.
//
// Unless otherwise stipulated in writing, any and all information contained
// herein regardless in any format shall remain the sole proprietary of
// MStar Semiconductor Inc. and be kept in strict confidence
// (¨MStar Confidential Information〃) by the recipient.
// Any unauthorized act including without limitation unauthorized disclosure,
// copying, use, reproduction, sale, distribution, modification, disassembling,
// reverse engineering and compiling of the contents of MStar Confidential
// Information is unlawful and strictly prohibited. MStar hereby reserves the
// rights to any and all damages, losses, costs and expenses resulting therefrom.
//
////////////////////////////////////////////////////////////////////////////////
#ifndef DRV_GLOBAL_H
#define DRV_GLOBAL_H
#include "DataType.h"
#include "board.h"
/******************************************************************************/
/* Macros */
/******************************************************************************/
#define MDrv_ReadByte( u16Reg ) XBYTE[u16Reg]
#define MDrv_Read3Byte( u16Reg ) MDrv_ReadU24LE( (U32 xdata *) (u16Reg) )
#define MDrv_Read4Byte( u16Reg ) MDrv_ReadU32LE( (U32 xdata *) (u16Reg) )
#define MDrv_WriteByte( u16Reg, u8Value ) (XBYTE[u16Reg] = u8Value)
#define MDrv_Write3Byte( u16Reg, u32Value ) MDrv_WriteU24LE( (U32 xdata *) (u16Reg), u32Value )
#define MDrv_Write4Byte( u16Reg, u32Value ) MDrv_WriteU32LE( (U32 xdata *) (u16Reg), u32Value )
#define MDrv_WriteByteMask( u16Reg, u8Value, u8Mask ) \
(XBYTE[u16Reg] = (XBYTE[u16Reg] & ~(u8Mask)) | ((u8Value) & (u8Mask)))
#define MDrv_ReadRegBit( u16Reg, u8BitPos ) \
(MDrv_ReadByte( u16Reg ) & (u8BitPos))
#define MDrv_WriteRegBit( u16Reg, bBit, u8BitPos ) \
(XBYTE[u16Reg] = (bBit) ? (XBYTE[u16Reg] | (u8BitPos)) : (XBYTE[u16Reg] & ~(u8BitPos)))
/******************************************************************************/
/* Macros for MDrv_WriteRegTbl() */
/******************************************************************************/
typedef U8 MS_REG_INIT;
#define _RV1(addr, value) (((addr) >> 8) & 0x3F), ((addr) & 0xFF), ((value) & 0xFF)
#define _RV2(addr, value) 0x40 + _RV1(addr, value), (((value) >> 8) & 0xFF)
#define _RV3(addr, value) 0x40 + _RV2(addr, value), (((value) >> 16) & 0xFF)
#define _RV4(addr, value) 0x40 + _RV3(addr, value), (((value) >> 24) & 0xFF)
#define _END_OF_TBL2_ 0xFF, 0xFF
/******************************************************************************/
/* Function Prototypes */
/******************************************************************************/
#ifdef DRV_GLOBAL_C
#define INTERFACE
#else
#define INTERFACE extern
#endif
INTERFACE U16 MDrv_Read2Byte( U16 u16Reg );
INTERFACE void MDrv_Write2Byte( U16 u16Reg, U16 u16Val );
INTERFACE void MDrv_Write2ByteA( U16 u16Reg, U16 u16Value);// kevin e
INTERFACE U16 MDrv_ReadU16LE( U16 *pLoc );
INTERFACE U32 MDrv_ReadU24LE( U32 *pLoc );
INTERFACE U32 MDrv_ReadU32LE( U32 *pLoc );
INTERFACE void MDrv_WriteU16LE( U16 *pLoc, U16 u16Val );
INTERFACE void MDrv_WriteU24LE( U32 *pLoc, U32 u32Val );
INTERFACE void MDrv_WriteU32LE( U32 *pLoc, U32 u32Val );
// INTERFACE void MDrv_WriteRegTbl ( MS_REG_TYPE *pRegTable );
// INTERFACE void MDrv_WriteRegTbl2 ( MS_REG_INIT *pRegTable );
// pRegTable can be both "MS_REG_TYPE *" or "MS_REG_INIT *" on S2 and later
INTERFACE void MDrv_WriteRegTbl ( void *pRegTable );
#define MDrv_WriteRegTbl2( pRegTable ) MDrv_WriteRegTbl( pRegTable )
INTERFACE void MDrv_WriteRegTbl3(MS_REG16_TYPE* pu16Table);
INTERFACE void MDrv_WriteRegTbl4(MS_REG_TYPE* pu8Table);
#undef INTERFACE
#endif /* DRV_GLOBAL_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -