summaryrefslogtreecommitdiff
path: root/software/include/oct6100api/oct6100_chip_open_pub.h
blob: 0f3cb924020c61b066487f6ff0250f673a6aef34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\

File:  oct6100_chip_open_pub.h

    Copyright (c) 2001-2011 Octasic Inc.
    
Description: 

	File containing all defines, macros, and structures pertaining to the file
	oct6100_chip_open.c.  All elements defined in this file are for public
	usage of the API.  All private elements are defined in the
	oct6100_chip_open_priv.h file.

This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API  is 
free software; you can redistribute it and/or modify it under the terms of 
the GNU General Public License as published by the Free Software Foundation; 
either version 2 of the License, or (at your option) any later version.

The OCT6100 GPL API is distributed in the hope that it will be useful, but 
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 
for more details. 

You should have received a copy of the GNU General Public License 
along with the OCT6100 GPL API; if not, write to the Free Software 
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.

$Octasic_Release: OCT612xAPI-01.04.05 $

$Octasic_Revision: 62 $

\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/

#ifndef __OCT6100_CHIP_OPEN_PUB_H__
#define __OCT6100_CHIP_OPEN_PUB_H__

/*****************************  INCLUDE FILES  *******************************/


/*****************************  DEFINES  *************************************/


/*****************************  TYPES  ***************************************/

typedef struct _OCT6100_CHIP_OPEN_
{
	UINT32	ulUserChipId;
	BOOL	fMultiProcessSystem;
	PVOID	pProcessContext;

	UINT32	ulMaxRwAccesses;

	PUINT8	pbyImageFile;		/* Byte pointer to the image file to be uploaded into the chip. */
	UINT32	ulImageSize;		/* Size of the image file (in bytes). */
	
	UINT32	ulMemClkFreq;		/*  10 - 133.3 MHz. */
	UINT32	ulUpclkFreq;		/*  1  - 66.6 MHz. */
	BOOL	fEnableMemClkOut;

	UINT32	ulMemoryType;		/* SDRAM or DDR type external memory. */
	UINT32	ulNumMemoryChips;	/* Number of memory chips present. */
	UINT32	ulMemoryChipSize;	/* The size of the memory chips. */



	
	UINT32	ulTailDisplacement;	/* Tail displacement supported by the chip. */

	BOOL	fEnableAcousticEcho;/* Acoustic echo cancellation enabled. */

	/* Resource allocation parameters. */
	UINT32	ulMaxChannels;
	UINT32	ulMaxTsiCncts;
	UINT32	ulMaxBiDirChannels;
	UINT32	ulMaxConfBridges;
	UINT32	ulMaxFlexibleConfParticipants;
	UINT32	ulMaxPlayoutBuffers;


	UINT32	ulMaxPhasingTssts;
	UINT32	ulMaxAdpcmChannels;
	BOOL	fUseSynchTimestamp;
	UINT32	aulTimestampTimeslots[ 4 ];
	UINT32	aulTimestampStreams[ 4 ];
	UINT32							ulInterruptPolarity;
	tOCT6100_INTERRUPT_CONFIGURE	InterruptConfig;

	UINT32	aulTdmStreamFreqs[ cOCT6100_TDM_STREAM_MAX_GROUPS ];
	UINT32	ulMaxTdmStreams;
	UINT32	ulTdmSampling;

	BOOL	fEnableFastH100Mode;

	UINT32	ulSoftToneEventsBufSize;		/* In events. */
	BOOL	fEnableExtToneDetection;
	BOOL	fEnable2100StopEvent;


	UINT32	ulSoftBufferPlayoutEventsBufSize;	/* In events. */
	UINT32	ulMaxRemoteDebugSessions;

	BOOL	fEnableChannelRecording;
	BOOL	fAllowDynamicRecording;

	BOOL	fEnableProductionBist;
	UINT32	ulProductionBistMode;
	UINT32	ulNumProductionBistLoops;

} tOCT6100_CHIP_OPEN, *tPOCT6100_CHIP_OPEN;

typedef struct _OCT6100_GET_INSTANCE_SIZE_
{
	UINT32	ulApiInstanceSize;

} tOCT6100_GET_INSTANCE_SIZE, *tPOCT6100_GET_INSTANCE_SIZE;

typedef struct _OCT6100_CHIP_CLOSE_
{
	UINT32	ulDummyVariable;

} tOCT6100_CHIP_CLOSE, *tPOCT6100_CHIP_CLOSE;

typedef struct _OCT6100_CREATE_LOCAL_INSTANCE_
{
	tPOCT6100_INSTANCE_API	pApiInstShared;
	tPOCT6100_INSTANCE_API	pApiInstLocal;
	PVOID					pProcessContext;
	UINT32					ulUserChipId;

} tOCT6100_CREATE_LOCAL_INSTANCE, *tPOCT6100_CREATE_LOCAL_INSTANCE;

typedef struct _OCT6100_DESTROY_LOCAL_INSTANCE_
{
	UINT32					ulDummy;

} tOCT6100_DESTROY_LOCAL_INSTANCE, *tPOCT6100_DESTROY_LOCAL_INSTANCE;

typedef struct _OCT6100_GET_HW_REVISION_
{
	UINT32	ulUserChipId;
	PVOID	pProcessContext;
	UINT32	ulRevisionNum;

} tOCT6100_GET_HW_REVISION, *tPOCT6100_GET_HW_REVISION;

typedef struct _OCT6100_FREE_RESOURCES_
{
	BOOL	fFreeTsiConnections;
	BOOL	fFreeConferenceBridges;
	BOOL	fFreePlayoutBuffers;
	BOOL	fFreePhasingTssts;
	BOOL	fFreeAdpcmChannels;

} tOCT6100_FREE_RESOURCES, *tPOCT6100_FREE_RESOURCES;

typedef struct _OCT6100_PRODUCTION_BIST_
{
	UINT32	ulCurrentAddress;
	UINT32	ulCurrentLoop;
	UINT32	ulCurrentTest;
	UINT32	ulBistStatus;
	UINT32	ulFailedAddress;
	UINT32	ulReadValue;
	UINT32	ulExpectedValue;

} tOCT6100_PRODUCTION_BIST, *tPOCT6100_PRODUCTION_BIST;

typedef struct _OCT6100_API_GET_VERSION_
{
	UINT8	achApiVersion[ cOCT6100_API_VERSION_STRING_LENGTH ];

} tOCT6100_API_GET_VERSION, *tPOCT6100_API_GET_VERSION;

typedef struct _OCT6100_API_GET_CAPACITY_PINS_
{
	UINT32	ulUserChipId;
	PVOID	pProcessContext;
	UINT32	ulMemoryType;		/* SDRAM or DDR type external memory. */
	BOOL	fEnableMemClkOut;
	UINT32	ulMemClkFreq;
	UINT32	ulCapacityValue;
} tOCT6100_API_GET_CAPACITY_PINS, *tPOCT6100_API_GET_CAPACITY_PINS;

/************************** FUNCTION PROTOTYPES  *****************************/

UINT32 Oct6100ChipOpenDef(
				OUT		tPOCT6100_CHIP_OPEN					f_pChipOpen );
UINT32 Oct6100ChipOpen(
				IN OUT	tPOCT6100_INSTANCE_API				f_pApiInstance,
				IN OUT	tPOCT6100_CHIP_OPEN					f_pChipOpen );

UINT32 Oct6100ChipCloseDef(
				OUT		tPOCT6100_CHIP_CLOSE				f_pChipClose );
UINT32 Oct6100ChipClose(
				IN OUT	tPOCT6100_INSTANCE_API				f_pApiInstance, 
				IN OUT	tPOCT6100_CHIP_CLOSE				f_pChipClose );

UINT32 Oct6100GetInstanceSizeDef(
				OUT		tPOCT6100_GET_INSTANCE_SIZE			f_pInstanceSize );
UINT32 Oct6100GetInstanceSize(
				IN OUT	tPOCT6100_CHIP_OPEN					f_pChipOpen,
				IN OUT	tPOCT6100_GET_INSTANCE_SIZE			f_pInstanceSize );

UINT32 Oct6100CreateLocalInstanceDef(
				OUT		tPOCT6100_CREATE_LOCAL_INSTANCE		f_pCreateLocal );
UINT32 Oct6100CreateLocalInstance(
				IN OUT	tPOCT6100_CREATE_LOCAL_INSTANCE		f_pCreateLocal );

UINT32 Oct6100DestroyLocalInstanceDef(
				OUT		tPOCT6100_DESTROY_LOCAL_INSTANCE	f_pDestroyLocal );
UINT32 Oct6100DestroyLocalInstance(
				IN OUT	tPOCT6100_INSTANCE_API				f_pApiInstance, 
				IN OUT	tPOCT6100_DESTROY_LOCAL_INSTANCE	f_pDestroyLocal );

UINT32 Oct6100ApiGetVersionDef(
				OUT		tPOCT6100_API_GET_VERSION			f_pApiGetVersion );
UINT32 Oct6100ApiGetVersion(
				IN OUT	tPOCT6100_API_GET_VERSION			f_pApiGetVersion );

UINT32 Oct6100GetHwRevisionDef(
				OUT		tPOCT6100_GET_HW_REVISION			f_pRevision );
UINT32 Oct6100GetHwRevision(
				IN OUT	tPOCT6100_GET_HW_REVISION			f_pRevision );

UINT32 Oct6100FreeResourcesDef(
				OUT	tPOCT6100_FREE_RESOURCES				f_pFreeResources );
UINT32 Oct6100FreeResources(
				IN OUT	tPOCT6100_INSTANCE_API				f_pApiInstance,
				IN OUT	tPOCT6100_FREE_RESOURCES			f_pFreeResources );

UINT32 Oct6100ProductionBistDef(
				OUT	tPOCT6100_PRODUCTION_BIST				f_pProductionBist );
UINT32 Oct6100ProductionBist(
				IN OUT	tPOCT6100_INSTANCE_API				f_pApiInstance,
				IN OUT	tPOCT6100_PRODUCTION_BIST			f_pProductionBist );

UINT32 Oct6100ApiGetCapacityPinsDef(
				tPOCT6100_API_GET_CAPACITY_PINS			f_pGetCapacityPins);

UINT32 Oct6100ApiGetCapacityPins(
				tPOCT6100_API_GET_CAPACITY_PINS		f_pGetCapacityPins  );


#endif /* __OCT6100_CHIP_OPEN_PUB_H__ */