/* hbi_hal.h | |
* | |
* This file defines the interface between the VoicePath API and the Hardware | |
* Abstraction Layer (HAL). The types and functions declared in this file are | |
* platform-dependent. The functions are defined in ve_hal.c. Porting the | |
* VoicePath API to a new host processor consists of modifying the typedefs | |
* in this file, setting the HBI_PINCONFIG define below, and modifying the | |
* function implementations in vp_hal.c. | |
* | |
* Copyright (c) 2005, Legerity Inc. | |
* All rights reserved | |
* | |
* This software is the property of Legerity , Inc. Please refer to the | |
* Non Disclosure Agreement (NDA) that you have signed for more information | |
* on legal obligations in using, modifying or distributing this file. | |
*/ | |
#ifndef HBI_HAL_H | |
#define HBI_HAL_H | |
#include "vp_api_types.h" | |
/* Define the EXTERN macro, if necessary */ | |
#ifndef EXTERN | |
#ifdef __cplusplus | |
#define EXTERN extern "C" | |
#else | |
#define EXTERN extern | |
#endif /* __cplusplus */ | |
#endif /* EXTERN */ | |
/****************************************************************************** | |
* PLATFORM-SPECIFIC OPTIONS * | |
******************************************************************************/ | |
/* HBI configuration register */ | |
#define HBI_CFG_ENDLITTLE 0 /* 1=byte swapping for data words only */ | |
#define HBI_CFG_PWAIT_POLHI 0 /* 0=PWAIT pin active low, 1=PWAIT pin active high */ | |
#define HBI_CFG_PWAIT_EN 0 /* 0=PWAIT pin disabled, 1=PWAIT pin enabled */ | |
#define HBI_CFG_PWAIT_MODEOSD 0 /* 0=PWAIT pin TTL, 1=PWAIT pin open source/drain */ | |
#define HBI_CFG_INT_MODETTL 1 /* 0=INT pin open drain, 1=INT pin TTL */ | |
#define HBI_CFG_PINEA 0 /* 0=IO[2:0], 1=EA[10:8] */ | |
#define HBI_PINCONFIG (HBI_CFG_ENDLITTLE | (HBI_CFG_PWAIT_POLHI << 1) | (HBI_CFG_PWAIT_EN << 2) | (HBI_CFG_PWAIT_MODEOSD << 3) | (HBI_CFG_INT_MODETTL << 4) | (HBI_CFG_PINEA << 5)) | |
#define HBI_CMD_CONFIGURE_INT 0xFD00 | |
#define DEFAULT_DEVICE_ID 0 | |
/****************************************************************************** | |
* PLATFORM-SPECIFIC FUNCTIONS * | |
******************************************************************************/ | |
/* See vp_hal.c for descriptions. */ | |
EXTERN bool VpHalHbiInit(VpDeviceIdType deviceId); | |
EXTERN bool VpHalHbiCmd(VpDeviceIdType deviceId, uint16 cmd); | |
EXTERN bool VpHalHbiWrite(VpDeviceIdType deviceId, uint16 cmd, uint8 numwords, uint16p data); | |
EXTERN bool VpHalHbiRead(VpDeviceIdType deviceId, uint16 cmd, uint8 numwords, uint16p data); | |
EXTERN bool VpHalHbiWrite8(VpDeviceIdType deviceId, uint16 cmd, uint8 numwords, uint8p data); | |
EXTERN bool VpHalHbiRead8(VpDeviceIdType deviceId, uint16 cmd, uint8 numwords, uint8p data); | |
EXTERN bool VpHalHbiBootWr(VpDeviceIdType deviceId, uint8 numwords, VpImagePtrType data); | |
#endif /* HBI_HAL_H */ | |