[TOOLS] added missed files for USB support (valid only for x86 platform)
authorleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Tue, 6 Jun 2006 17:29:25 +0000 (17:29 +0000)
committerleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Tue, 6 Jun 2006 17:29:25 +0000 (17:29 +0000)
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@374 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

tools/mtcr/user/usb/I2cBrdg.lib [new file with mode: 0644]
tools/mtcr/user/usb/UsbI2cIo.lib [new file with mode: 0644]
tools/mtcr/user/usb/i2cbridge.h [new file with mode: 0644]
tools/mtcr/user/usb/usbi2cio.h [new file with mode: 0644]

diff --git a/tools/mtcr/user/usb/I2cBrdg.lib b/tools/mtcr/user/usb/I2cBrdg.lib
new file mode 100644 (file)
index 0000000..b0974de
Binary files /dev/null and b/tools/mtcr/user/usb/I2cBrdg.lib differ
diff --git a/tools/mtcr/user/usb/UsbI2cIo.lib b/tools/mtcr/user/usb/UsbI2cIo.lib
new file mode 100644 (file)
index 0000000..b9bfb20
Binary files /dev/null and b/tools/mtcr/user/usb/UsbI2cIo.lib differ
diff --git a/tools/mtcr/user/usb/i2cbridge.h b/tools/mtcr/user/usb/i2cbridge.h
new file mode 100644 (file)
index 0000000..e69ca78
--- /dev/null
@@ -0,0 +1,168 @@
+// Copyright (C)2004 Dimax ( http://www.xdimax.com )\r
+//\r
+// This program is free software; you can redistribute it and/or\r
+// modify it under the terms of the GNU General Public License\r
+// as published by the Free Software Foundation\r
+//\r
+// This program is distributed in the hope that it will be useful,\r
+// but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+// GNU General Public License for more details.\r
+\r
+#ifndef I2C_BRIDGE_H_10DF0DED_E85F_4f14_88D9_610BEA2211F7\r
+\r
+#define I2C_BRIDGE_H_10DF0DED_E85F_4f14_88D9_610BEA2211F7\r
+\r
+#ifdef __linux__\r
+/*\r
+* Compatibility stuff\r
+*/\r
+#include <sys/types.h>\r
+typedef int         BOOL;        \r
+typedef u_int8_t    BYTE;\r
+typedef u_int8_t    UCHAR;\r
+typedef u_int16_t   WORD; \r
+typedef u_int32_t   DWORD; \r
+typedef u_int32_t   ULONG; \r
+typedef void*       HANDLE;\r
+#define _stdcall       /* nothing */\r
+#define INVALID_HANDLE_VALUE ((HANDLE)(-1))\r
+#endif\r
+\r
+#pragma pack(push, 1)\r
+\r
+typedef enum \r
+{\r
+       U2C_SUCCESS, \r
+       U2C_BAD_PARAMETER,\r
+       U2C_HARDWARE_NOT_FOUND,\r
+       U2C_SLAVE_DEVICE_NOT_FOUND,\r
+       U2C_TRANSACTION_FAILED,\r
+       U2C_SLAVE_OPENNING_FOR_WRITE_FAILED, \r
+       U2C_SLAVE_OPENNING_FOR_READ_FAILED, \r
+       U2C_SENDING_MEMORY_ADDRESS_FAILED, \r
+       U2C_SENDING_DATA_FAILED,  \r
+       U2C_NOT_IMPLEMENTED,  \r
+       U2C_NO_ACK, \r
+       U2C_DEVICE_BUSY,\r
+       U2C_MEMORY_ERROR,\r
+       U2C_UNKNOWN_ERROR,\r
+} U2C_RESULT;\r
+\r
+\r
+\r
+typedef struct _U2C_TRANSACTION\r
+{\r
+       BYTE nSlaveDeviceAddress;\r
+       BYTE nMemoryAddressLength; // can be from 0 up to 4 bytes\r
+       DWORD nMemoryAddress;\r
+       unsigned short nBufferLength; // can be from 1 up to 256\r
+       BYTE Buffer[256];\r
+} U2C_TRANSACTION, *PU2C_TRANSACTION;\r
+\r
+\r
+// I2C bus frequency values:\r
+const BYTE U2C_I2C_FREQ_FAST  = 0;\r
+const BYTE U2C_I2C_FREQ_STD   = 1;\r
+const BYTE U2C_I2C_FREQ_83KHZ = 2;\r
+const BYTE U2C_I2C_FREQ_71KHZ = 3;\r
+const BYTE U2C_I2C_FREQ_62KHZ = 4;\r
+const BYTE U2C_I2C_FREQ_50KHZ = 6;\r
+const BYTE U2C_I2C_FREQ_25KHZ = 16;\r
+const BYTE U2C_I2C_FREQ_10KHZ = 46;\r
+const BYTE U2C_I2C_FREQ_5KHZ  = 96;\r
+const BYTE U2C_I2C_FREQ_2KHZ  = 242;\r
+\r
+\r
+// SPI bus frequency values:\r
+const BYTE U2C_SPI_FREQ_200KHZ = 0;\r
+const BYTE U2C_SPI_FREQ_100KHZ = 1;\r
+const BYTE U2C_SPI_FREQ_83KHZ = 2;\r
+const BYTE U2C_SPI_FREQ_71KHZ = 3;\r
+const BYTE U2C_SPI_FREQ_62KHZ = 4;\r
+const BYTE U2C_SPI_FREQ_50KHZ = 6;\r
+const BYTE U2C_SPI_FREQ_25KHZ = 16;\r
+const BYTE U2C_SPI_FREQ_10KHZ = 46;\r
+const BYTE U2C_SPI_FREQ_5KHZ  = 96;\r
+const BYTE U2C_SPI_FREQ_2KHZ  = 242;\r
+\r
+\r
+typedef struct _U2C_SLAVE_ADDR_LIST\r
+{\r
+       BYTE nDeviceNumber;\r
+       BYTE List[256];\r
+} U2C_SLAVE_ADDR_LIST, *PU2C_SLAVE_ADDR_LIST;\r
+\r
+typedef struct _U2C_VERSION_INFO\r
+{\r
+       WORD MajorVersion;\r
+       WORD MinorVersion;\r
+} U2C_VERSION_INFO, *PU2C_VERSION_INFO;\r
+\r
+typedef enum \r
+{\r
+       LS_RELEASED,\r
+       LS_DROPPED_BY_I2C_BRIDGE,\r
+       LS_DROPPED_BY_SLAVE,\r
+       LS_RAISED_BY_I2C_BRIDGE,\r
+} U2C_LINE_STATE;\r
+\r
+\r
+#pragma pack(pop)\r
+// I2CBridge Board Initialization Routines\r
+BYTE _stdcall U2C_GetDeviceCount();\r
+U2C_RESULT _stdcall U2C_GetSerialNum(HANDLE hDevice, long* pSerialNum); \r
+U2C_RESULT _stdcall U2C_IsHandleValid(HANDLE hDevice); \r
+HANDLE _stdcall U2C_OpenDevice(BYTE nDevice);\r
+HANDLE _stdcall U2C_OpenDeviceBySerialNum(long nSerialNum); \r
+U2C_RESULT _stdcall U2C_CloseDevice(HANDLE hDevice);\r
+U2C_RESULT _stdcall U2C_GetFirmwareVersion(HANDLE hDevice, PU2C_VERSION_INFO pVersion);\r
+U2C_RESULT _stdcall U2C_GetDriverVersion(HANDLE hDevice, PU2C_VERSION_INFO pVersion);\r
+U2C_VERSION_INFO _stdcall U2C_GetDllVersion(); \r
+\r
+// I2C high level and configuration routines\r
+U2C_RESULT _stdcall U2C_SetI2cFreq(HANDLE hDevice, BYTE Frequency);\r
+U2C_RESULT _stdcall U2C_GetI2cFreq(HANDLE hDevice, BYTE *pFrequency);\r
+U2C_RESULT _stdcall U2C_Read(HANDLE hDevice, PU2C_TRANSACTION pTransaction);\r
+U2C_RESULT _stdcall U2C_Write(HANDLE hDevice, PU2C_TRANSACTION pTransaction);\r
+U2C_RESULT _stdcall U2C_ScanDevices(HANDLE hDevice, PU2C_SLAVE_ADDR_LIST pList);\r
+\r
+// I2C low level routines\r
+U2C_RESULT _stdcall U2C_Start(HANDLE hDevice);\r
+U2C_RESULT _stdcall U2C_RepeatedStart(HANDLE hDevice);\r
+U2C_RESULT _stdcall U2C_Stop(HANDLE hDevice);\r
+U2C_RESULT _stdcall U2C_PutByte(HANDLE hDevice, BYTE Data);\r
+U2C_RESULT _stdcall U2C_GetByte(HANDLE hDevice, BYTE *pData);\r
+U2C_RESULT _stdcall U2C_PutByteWithAck(HANDLE hDevice, BYTE Data);\r
+U2C_RESULT _stdcall U2C_GetByteWithAck(HANDLE hDevice, BYTE *pData, BOOL bAck);\r
+U2C_RESULT _stdcall U2C_PutAck(HANDLE hDevice, BOOL bAck);\r
+U2C_RESULT _stdcall U2C_GetAck(HANDLE hDevice);\r
+\r
+// I2c wire level routines\r
+U2C_RESULT _stdcall U2C_ReadScl(HANDLE hDevice, U2C_LINE_STATE *pState);\r
+U2C_RESULT _stdcall U2C_ReadSda(HANDLE hDevice, U2C_LINE_STATE *pState);\r
+U2C_RESULT _stdcall U2C_ReleaseScl(HANDLE hDevice);\r
+U2C_RESULT _stdcall U2C_ReleaseSda(HANDLE hDevice);\r
+U2C_RESULT _stdcall U2C_DropScl(HANDLE hDevice);\r
+U2C_RESULT _stdcall U2C_DropSda(HANDLE hDevice);\r
+\r
+// GPIO routines\r
+U2C_RESULT _stdcall U2C_SetIoDirection(HANDLE hDevice, ULONG Value, ULONG Mask);\r
+U2C_RESULT _stdcall U2C_GetIoDirection(HANDLE hDevice, ULONG *pValue);\r
+U2C_RESULT _stdcall U2C_IoWrite(HANDLE hDevice, ULONG Value, ULONG Mask);\r
+U2C_RESULT _stdcall U2C_IoRead(HANDLE hDevice, ULONG *pValue);\r
+U2C_RESULT _stdcall U2C_SetSingleIoDirection(HANDLE hDevice, ULONG IoNumber, BOOL bOutput);\r
+U2C_RESULT _stdcall U2C_GetSingleIoDirection(HANDLE hDevice, ULONG IoNumber, BOOL *pbOutput);\r
+U2C_RESULT _stdcall U2C_SingleIoWrite(HANDLE hDevice, ULONG IoNumber, BOOL Value);\r
+U2C_RESULT _stdcall U2C_SingleIoRead(HANDLE hDevice, ULONG IoNumber, BOOL *pValue);\r
+\r
+// SPI configuration routines\r
+U2C_RESULT _stdcall U2C_SpiSetConfig(HANDLE hDevice, BYTE CPOL, BYTE CPHA);\r
+U2C_RESULT _stdcall U2C_SpiGetConfig(HANDLE hDevice, BYTE *pCPOL, BYTE *pCPHA);\r
+U2C_RESULT _stdcall U2C_SpiSetFreq(HANDLE hDevice, BYTE Frequency);\r
+U2C_RESULT _stdcall U2C_SpiGetFreq(HANDLE hDevice, BYTE *pFrequency);\r
+U2C_RESULT _stdcall U2C_SpiReadWrite(HANDLE hDevice, BYTE *pOutBuffer, BYTE *pInBuffer, unsigned short Length);\r
+U2C_RESULT _stdcall U2C_SpiWrite(HANDLE hDevice, BYTE *pOutBuffer, unsigned short Length);\r
+U2C_RESULT _stdcall U2C_SpiRead(HANDLE hDevice, BYTE *pInBuffer, unsigned short Length);\r
+\r
+#endif //I2C_BRIDGE_H_10DF0DED_E85F_4f14_88D9_610BEA2211F7\r
diff --git a/tools/mtcr/user/usb/usbi2cio.h b/tools/mtcr/user/usb/usbi2cio.h
new file mode 100644 (file)
index 0000000..04961c8
--- /dev/null
@@ -0,0 +1,83 @@
+// the following ifndef is for preventing double includes of this header file\r
+#if !defined(__USBI2CIO_H__)\r
+  #define __USBI2CIO_H__\r
+\r
+\r
+#define DAPI_MAX_DEVICES      127\r
+\r
+\r
+#ifdef _DEBUG\r
+  #define DbgWrStr(sDebug) OutputDebugString((sDebug))\r
+#else\r
+  #define DbgWrStr(sDebug)\r
+#endif\r
+\r
+\r
+\r
+//-----------------------------------------------------------------------------\r
+// Constants\r
+//-----------------------------------------------------------------------------\r
+typedef enum {\r
+  // supported transaction types\r
+  I2C_TRANS_NOADR,          // read or write with no address cycle\r
+  I2C_TRANS_8ADR,           // read or write with 8 bit address cycle\r
+  I2C_TRANS_16ADR           // read or write with 16 bit address cycle\r
+} I2C_TRANS_TYPE;\r
+\r
+\r
+//-----------------------------------------------------------------------------\r
+// Structure Definitions\r
+//-----------------------------------------------------------------------------\r
+typedef struct _DEVINFO {             // structure for device information\r
+  BYTE byInstance;\r
+  BYTE SerialId[9];\r
+} DEVINFO, *LPDEVINFO;\r
+\r
+\r
+#pragma pack(1)                       // force byte alignment\r
+\r
+typedef struct _I2C_TRANS {\r
+  BYTE byTransType;\r
+  BYTE bySlvDevAddr;\r
+  WORD wMemoryAddr;\r
+  WORD wCount;\r
+  BYTE Data[256];\r
+} I2C_TRANS, *PI2C_TRANS;\r
+\r
+\r
+//-----------------------------------------------------------------------------\r
+// Global Variables\r
+//-----------------------------------------------------------------------------\r
+\r
+\r
+//-----------------------------------------------------------------------------\r
+// Macros\r
+//-----------------------------------------------------------------------------\r
+\r
+\r
+//-----------------------------------------------------------------------------\r
+// API Function Prototypes (exported)\r
+//-----------------------------------------------------------------------------\r
+\r
+WORD _stdcall DAPI_GetDllVersion(void);\r
+HANDLE _stdcall DAPI_OpenDeviceInstance(LPSTR lpsDevName, BYTE byDevInstance);\r
+BOOL _stdcall DAPI_CloseDeviceInstance(HANDLE hDevInstance);\r
+BOOL _stdcall DAPI_DetectDevice(HANDLE hDevInstance);\r
+BYTE _stdcall DAPI_GetDeviceCount( LPSTR lpsDevName );\r
+BYTE _stdcall DAPI_GetDeviceInfo( LPSTR lpsDevName, LPDEVINFO lpDevInfo);\r
+HANDLE _stdcall DAPI_OpenDeviceBySerialId(LPSTR lpsDevName, LPSTR lpsDevSerialId);\r
+BOOL _stdcall DAPI_GetSerialId(HANDLE hDevInstance, LPSTR lpsDevSerialId);\r
+BOOL _stdcall DAPI_ConfigIoPorts(HANDLE hDevInstance, ULONG ulIoPortConfig);\r
+BOOL _stdcall DAPI_GetIoConfig(HANDLE hDevInstance, LPLONG lpulIoPortData);\r
+BOOL _stdcall DAPI_ReadIoPorts(HANDLE hDevInstance, LPLONG lpulIoPortData);\r
+BOOL _stdcall DAPI_WriteIoPorts(HANDLE hDevInstance, ULONG ulIoPortData, ULONG ulIoPortMask);\r
+LONG _stdcall DAPI_ReadI2c(HANDLE hDevInstance, PI2C_TRANS TransI2C);\r
+LONG _stdcall DAPI_WriteI2c(HANDLE hDevInstance, PI2C_TRANS TransI2C);\r
+void _stdcall DAPI_EnablePolling(void);\r
+void _stdcall DAPI_DisablePolling(void);\r
+void _stdcall DAPI_GetPolledInfo(void);\r
+LONG _stdcall DAPI_ReadDebugBuffer(LPSTR lpsDebugString, HANDLE hDevInstance, LONG ulMaxBytes);\r
+\r
+\r
+// the following #endif is for preventing double includes of this header file\r
+#endif
\ No newline at end of file