blob: 7be725be16d3a858e54707e6409881134a5773de [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2016
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS (""MEDIATEK SOFTWARE"")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN ""AS-IS"" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35/*************************************************************
36*
37* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
38*
39* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
40*
41* Copyright (c) 1998-2010 VIA Telecom, Inc. All rights reserved.
42*
43*************************************************************/
44/*****************************************************************************
45
46 FILE NAME: iopapi.h
47
48 DESCRIPTION:
49
50 This file contains all the constants, mail message definition and
51 function prototypes exported by the IOP unit.
52
53*****************************************************************************/
54
55#ifndef IOPAPI_H
56#define IOPAPI_H
57
58#include "cpbuf.h"
59
60
61/*------------------------------------------------------------------------
62 * Message IDs for _CMD mailbox
63 *-----------------------------------------------------------------------*/
64#if 0
65/* under construction !*/
66/* under construction !*/
67/* under construction !*/
68/* under construction !*/
69/* under construction !*/
70/* under construction !*/
71/* under construction !*/
72/* under construction !*/
73/* under construction !*/
74/* under construction !*/
75/* under construction !*/
76/* under construction !*/
77/* under construction !*/
78/* under construction !*/
79/* under construction !*/
80/* under construction !*/
81/* under construction !*/
82/* under construction !*/
83/* under construction !*/
84/* under construction !*/
85/* under construction !*/
86/* under construction !*/
87/* under construction !*/
88/* under construction !*/
89/* under construction !*/
90/* under construction !*/
91/* under construction !*/
92/* under construction !*/
93/* under construction !*/
94/* under construction !*/
95/* under construction !*/
96/* under construction !*/
97/* under construction !*/
98/* under construction !*/
99/* under construction !*/
100/* under construction !*/
101/* under construction !*/
102#ifdef SYS_OPTION_LTEDO_UART
103/* under construction !*/
104#endif
105/* under construction !*/
106/* under construction !*/
107#endif
108
109typedef enum
110{
111 IOP_ACK = 0,
112 IOP_SET_BAUD
113} IopBaudCmdT;
114
115typedef PACKED_PREFIX struct
116{
117 ExeRspMsgT RspInfo;
118 IopBaudCmdT Cmd;
119 kal_uint8 Delay;
120} PACKED_POSTFIX IopSetBaudMsgT;
121
122
123 /* IOP_SETBAUD_DATA_MSG */
124typedef PACKED_PREFIX struct
125{
126 ExeRspMsgT RspInfo;
127 kal_uint8 UartNum;
128} PACKED_POSTFIX IopSetDataBaudMsgT;
129
130 /* IOP_USB_ETS_CTRL_MSG */
131typedef PACKED_PREFIX struct
132{
133 kal_bool Open;
134} PACKED_POSTFIX IopUsbEtsCtrlMsgT;
135
136 /* IOP_CNG_UART_MSG */
137typedef enum {
138 NO_UART,
139 ETS_UART,
140 GPS_UART,
141 GPS_UART_VASCO
142#if ((defined BLUETOOTH_CSR) || (defined BLUETOOTH_BCM2046))
143 ,
144 BT_UART
145#endif
146
147#ifdef SYS_OPTION_IOPHAL_UART
148 ,
149 AT_UART,
150 DATA_UART,
151 IOPHAL_UART
152#endif
153#ifdef SYS_OPTION_LTEDO_UART
154 ,
155 LTEDO_UART
156#endif
157}UartTypeT;
158
159
160
161typedef enum
162{
163 IOP_HAL_SER_DEV,
164 IOP_HAL_USB_DEV,
165 IOP_HAL_DPRAM_DEV,
166 IOP_HAL_SDIO_SLAVE_DEV,
167 IOP_HAL_SDIO_MASTER_DEV,
168 IOP_HAL_ESPI_DEV,
169 IOP_HAL_MUX_DEV,
170 IOP_HAL_CCIF_DEV,
171 IOP_HAL_DEV_NUM, /* Always last in this list */
172 IOP_HAL_INVALID_DEV=0xff
173}IOP_HAL_DEVICE;
174
175typedef IOP_HAL_DEVICE IopDeviceHalT;
176typedef IOP_HAL_DEVICE IopDeviceInfoT;
177typedef IOP_HAL_DEVICE IopDeviceDataT;
178
179typedef IOP_HAL_DEVICE CPTranDevT;
180
181typedef PACKED_PREFIX struct {
182 CPTranDevT InfoDev;
183} PACKED_POSTFIX IopCpTxDevMsgT;
184
185typedef PACKED_PREFIX struct {
186 IopDeviceInfoT InfoDev;
187 IopDeviceDataT DataDev;
188} PACKED_POSTFIX IopSetDevMsgT;
189
190typedef PACKED_PREFIX struct {
191 ExeRspMsgT RspInfo;
192 kal_uint8 Channel;
193 kal_uint8 Device;
194} PACKED_POSTFIX IopChanSwitchMsgT;
195#define SIZEOF_CH_SWITCH_RSP_MSG 2
196
197typedef PACKED_PREFIX struct {
198 ExeRspMsgT RspInfo;
199 kal_uint8 Channel;
200} PACKED_POSTFIX IopChanQueryMsgT;
201#define SIZEOF_CH_QUERY_RSP_MSG 3
202
203typedef PACKED_PREFIX struct {
204 ExeRspMsgT RspInfo;
205 kal_uint8 Channel;
206 kal_bool state;
207} PACKED_POSTFIX IopChanOnOffMsgT;
208#define SIZEOF_CH_ONOFF_RSP_MSG 2
209
210 /* IOP_AIW_C109_IND_MSG */
211typedef PACKED_PREFIX struct {
212 kal_bool C109On; /* status of C109, active high */
213 kal_uint8 chan;
214} PACKED_POSTFIX IopValC109IndMsgT;
215
216 /* IOP_USB_C108_IND_MSG */
217typedef PACKED_PREFIX struct {
218 kal_bool C108On; /* status of C108 as reported by USB windriver, active high */
219 kal_bool CableUnplugged; /* KAL_TRUE if this IND sent because cable unplugged */
220} PACKED_POSTFIX IopUsbC108IndMsgT;
221
222 /* IOP_AIW_MODEM_ALIVE_MSG */
223typedef PACKED_PREFIX struct {
224 kal_bool IsAlive; /* KAL_TRUE == modem task is ready to accept AT cmds */
225} PACKED_POSTFIX IopValModemAliveMsgT;
226
227 /* IOP_SET_DATA_THR */
228typedef PACKED_PREFIX struct {
229 kal_uint16 HighThr; /* high threshold for data cache */
230} PACKED_POSTFIX IopSetDataThrMsgT;
231
232#ifdef MTK_DEV_LOG_FILTER_NVRAM
233typedef PACKED_PREFIX struct {
234 kal_bool NvramStartupLogFlag;
235 kal_bool NvramFilterUpdateFlag;
236} PACKED_POSTFIX IopNvramCtlMsgT;
237#endif
238
239typedef struct
240{
241 kal_uint8 mode;
242 kal_uint8 frameType;
243 kal_uint8 portSpeed;
244 kal_uint16 N1;
245 kal_uint8 T1;
246 kal_uint8 N2;
247 kal_uint8 T2;
248 kal_uint8 T3;
249 kal_uint8 K;
250}IopMuxSysParaT;
251
252/*------------------------------------------------------------------------
253 * Message IDs for _DATA mailbox
254 *-----------------------------------------------------------------------*/
255
256/*#ifdef BLUETOOTH_BC4*/
257typedef struct
258{
259 kal_uint8 *Data;
260 kal_uint16 DataLen;
261}IopBTRxMsgT;
262
263/*#endif*/
264
265//don't modify following Enum, brew has referred to it
266typedef enum {
267 IOP_FWD_TX_REQ_MSG, /* This command is used to send data to IOP */
268 IOP_DATA_TX_ACK_MSG, /* This command is used to acknowledge the receipt of data from IOP */
269 IOP_BT_RX_REQ_MSG, /*BT Protocol stack send data to BC4*/
270 IOP_BT_TX_ACK_MSG /*BT Protocol stack send ACK to CBP when it receive data*/
271} IopDataMsgIdT;
272
273
274/* Iop channels are now fixed regardless of build options for better maintainance.
275 0-15 is reserved for CBP7 internal usage only and should not be used by third party */
276typedef enum {
277 IopControlChannel = 0,
278 IopEtsChannel = 1,
279 IopDataChannelPPP = 2,
280 IopDataChannelLBS = 3,
281 IopDataChannelVoice = 4,
282 IopDataChannelATCmds_1 = 5,
283 IopDataChannelATCmds_2 = 6,
284 IopEtsChannel_1 = 7,
285#ifdef SYS_OPTION_ATCMD_CH_3
286 IopDataChannelATCmds_3 = 8,
287#ifdef SYS_OPTION_ATCMD_CH_4
288 IopDataChannelATCmds_4 = 11,
289#ifdef SYS_OPTION_MORE_AT_CHANNEL
290 IopDataChannelATCmds_5 = 12,
291 IopDataChannelATCmds_6 = 13,
292 IopDataChannelATCmds_7 = 14,
293 IopDataChannelATCmds_8 = 15,
294#endif /* SYS_OPTION_MORE_AT_CHANNEL */
295#endif /* SYS_OPTION_ATCMD_CH_4 */
296#endif /* SYS_OPTION_ATCMD_CH_3 */
297#ifdef IOP_DEBUG_OPTION_DATA_LOOPBACK
298 IopDataChannelLoopBack = 15,
299#endif
300
301 /* user extended channel should start from 16 */
302 IopUserExtChannel = 16,
303#ifdef SYS_FLASH_LESS_SUPPORT
304 IopDataChannelRfs = 17,
305#endif
306
307 IopSysChannelNum,
308 IopAllChanNum=IopSysChannelNum
309} IopDataChannel;
310
311//don't modify following Struct, brew has referred to it
312typedef PACKED_PREFIX struct {
313 ExeRspMsgT RspInfo;
314 kal_uint8 *Data;
315 kal_uint16 DataLen;
316 kal_uint8 chan;
317} PACKED_POSTFIX IopValFwdTxMsgT;
318
319typedef PACKED_PREFIX struct {
320 ExeRspMsgT RevDestInfo;
321 IopDataChannel Channel;
322} PACKED_POSTFIX IopSetRevDataPathMsgT;
323
324/*------------------------------------------------------------------------
325 * Message IDs for _GPS mailbox
326 *-----------------------------------------------------------------------*/
327typedef enum {
328 IOP_GPS7560_TX_DATA_MSG /* Data from external GPS */
329} IopGpsMsgIdT;
330
331typedef struct
332{
333 kal_uint16 DataLen;
334 kal_uint8 Data[2]; /* This is just place holder. We make it 2 bytes for alignment */
335} IopGps7560TxDataMsgT;
336
337/*------------------------------------------------------------------------
338 * Definitions and exported functions for handling data with CpBuffers
339 *-----------------------------------------------------------------------*/
340#define PPP_CHANNEL_FWD_QDEPTH 450
341#define PPP_CHANNEL_REV_QDEPTH 300
342
343typedef enum {
344 IopDataChRetOK,
345 IopDataChRetNA, /*Channel not available */
346 IopDataChRetFull, /* Buffer Q full */
347 IopDataChRetOK_Empty, /* Buffer Q empty after read successfully */
348 IopDataChRetErr /* Error occurred. */
349} IopDataChRetStatus;
350
351typedef struct {
352 CpBufferT *bufPtr;
353 kal_uint16 offset;
354 kal_uint16 dataLen;
355 kal_uint8 nRLPFlow;
356 kal_uint8 streamType;
357
358 kal_uint16 tcpTag;
359 kal_uint32 tcpPort;
360 kal_uint32 srcIpAddr;
361 kal_uint32 dstIpAddr;
362
363#ifdef CBP7_EHRPD
364 kal_uint16 FrameType; /* distinguish Ipv4/Ipv6 and PDN-ID */
365#endif
366
367 kal_uint8 BearerId;
368} IopDataCpBuffDescT;
369
370#define IOP_DEBUG_RX_INFO_IDX (30)
371#define IOP_DEBUG_TX_INFO_IDX (60)
372
373/* store the 4-line information */
374typedef struct
375{
376 kal_uint32 header;
377
378 /*Rx device type and the Rxstatus of this device*/
379 kal_uint8 RxDevStatus;
380 kal_uint8 RxLastDevStatus;
381
382 /*Tx device type and the Txstatus of this device*/
383 kal_uint8 TxDevStatus;
384 kal_uint8 TxLastDevStatus;
385
386 /* the GPIO value for 4-line */
387 kal_uint8 CpWkApGpio;
388 kal_uint8 CpRdyGpio;
389 kal_uint8 ApWkCpGpio;
390 kal_uint8 ApRdyGpio;
391
392 /* store the log information */
393 kal_uint16 TxLogBuffIdx;
394 kal_uint16 RxLogBuffIdx;
395 kal_uint16 TxLogBuff[IOP_DEBUG_TX_INFO_IDX];
396 kal_uint16 RxLogBuff[IOP_DEBUG_RX_INFO_IDX];
397
398 kal_uint32 footer;
399}IopStatusInfoT;
400
401
402/* Frame type in IopDataCpBuffDescT structure, the lower 8 bit is PDN-ID */
403#define IOP_DATA_EIPV4_TYPE 0xA000 /* EHRPD IPv4 with PDN-ID (0xA0xx) */
404#define IOP_DATA_EIPV6_TYPE 0xA100 /* EHRPD IPv6 with PDN-ID (0xA1xx) */
405#define IOP_DATA_IPV4_TYPE IOP_DATA_EIPV4_TYPE /* IPv4 for 1x/DO is fixed to 0xA000 */
406#define IOP_DATA_IPV6_TYPE IOP_DATA_EIPV6_TYPE /* IPv6 for 1x/DO is fixed to 0xA100 */
407#define IOP_DATA_NULL_TYPE 0 /* No info in IPC Data frame */
408#ifdef SYS_OPTION_IOP_CCIF
409#define IOP_DATA_PDNID_MASK 0x007F /* mask for PDN ID */
410#define CCMNI_CHANNEL_HEADER_FALG (1U << 7)
411#define CCMNI_CHANNEL_NUM 8
412#else
413#define IOP_DATA_PDNID_MASK 0x00FF /* mask for PDN ID */
414#endif
415/* Flags for IopWrite/IopRead functions
416 */
417#define IOP_WRITE_FLAG_SND_ACK (1<<0)
418#ifdef IOP_DEV_CH_LOOP_TEST
419typedef enum {
420 OPT_LOOPBACK_NON = 0,
421 OPT_LOOPBACK_OPEN = 1,
422 OPT_LOOPBACK_CLOSE = 2,
423 OPT_LOOPBACK_QUERY = 3,
424 OPT_LOOPBACK_NUM
425}IOP_OPT_LOOPBACK;
426
427typedef enum {
428 RSLT_LOOPBACK_SUCCESS = 0,
429 RSLT_LOOPBACK_WORK = 1,
430 RSLT_LOOPBACK_CLOSED = 2,
431 RSLT_LOOPBACK_INVALID = 3,
432 RSLT_LOOPBACK_FAIL = 4,
433 RSLT_LOOPBACK_NUM
434}IOP_RSLT_LOOPBACK;
435
436typedef struct {
437 IopDeviceInfoT Dev;
438 IOP_OPT_LOOPBACK Operation;
439 kal_uint8 Lchan;
440 kal_uint8 Reserv;
441}IopCtrlLoopbackMsg;
442
443typedef struct {
444 IopDeviceInfoT Dev;
445 IOP_OPT_LOOPBACK Operation;
446 kal_uint8 Lchan;
447 IOP_RSLT_LOOPBACK Result;
448}IopAckLoopbackMsg;
449#endif
450
451/* CCIF dev */
452#ifdef SYS_OPTION_IOP_CCIF
453/* IOP channel */
454typedef enum
455{
456#ifndef SYS_OPTION_CCIF_LOOPTEST
457 IOP_CCIF_CTRL_CHANNEL,
458 IOP_CCIF_VOICE_CHANNEL, /* voice with high priority */
459 IOP_CCIF_PPP_CHANNEL,
460 IOP_CCIF_ETS_CTRL_CHANNEL,
461#if (SYS_OPTION_IPC_DEV == SYS_IPC_DEV_CCIF)
462 IOP_CCIF_RFS_CHANNEL,
463#endif
464 IOP_CCIF_AT_1_CHANNEL,
465 IOP_CCIF_LBS_CHANNEL,
466#ifdef SYS_OPTION_ATCMD_CH_2
467 IOP_CCIF_AT_2_CHANNEL,
468#endif
469#ifdef SYS_OPTION_ATCMD_CH_3
470 IOP_CCIF_AT_3_CHANNEL,
471#endif
472 IOP_CCIF_ETS_CHANNEL,
473#ifdef SYS_OPTION_ATCMD_CH_4
474 IOP_CCIF_AT_4_CHANNEL,
475#endif
476 IOP_CCIF_CCMNI_0_CHANNEL = 12,
477 IOP_CCIF_CCMNI_1_CHANNEL = 13,
478 IOP_CCIF_CCMNI_2_CHANNEL = 14,
479 IOP_CCIF_CCMNI_3_CHANNEL = 15,
480 IOP_CCIF_CCMNI_4_CHANNEL = 16,
481 IOP_CCIF_CCMNI_5_CHANNEL = 17,
482 IOP_CCIF_CCMNI_6_CHANNEL = 18,
483 IOP_CCIF_CCMNI_7_CHANNEL = 19,
484#ifdef SYS_OPTION_MORE_AT_CHANNEL
485 IOP_CCIF_AT_5_CHANNEL = 20,
486 IOP_CCIF_AT_6_CHANNEL = 21,
487 IOP_CCIF_AT_7_CHANNEL = 22,
488 IOP_CCIF_AT_8_CHANNEL = 23,
489#endif /* SYS_OPTION_NEW_ADD_AT_CHANNEL */
490
491
492#else
493 IOP_CCIF_TEST0_CHANNEL,
494 IOP_CCIF_TEST1_CHANNEL,
495 IOP_CCIF_TEST2_CHANNEL,
496#endif
497 IOP_CCIF_NUM_CHANNELS
498
499}IopCcifChannelT;
500
501
502/* CCIF ringbuffer software header */
503typedef struct
504{
505 kal_uint32 Data[2];
506 kal_uint32 Channel;
507 kal_uint32 Reserved;
508} IopBuffT;
509
510
511typedef enum
512{
513 IOP_CCIF_PQ_0, /* priority queue 0 , the most high priority */
514 IOP_CCIF_PQ_1,
515 IOP_CCIF_PQ_2,
516 IOP_CCIF_PQ_3,
517 IOP_CCIF_PQ_4,
518 IOP_CCIF_PQ_5,
519 IOP_CCIF_PQ_6,
520 IOP_CCIF_PQ_7,
521 IOP_CCIF_PQ_MAX
522}IopCcifPriQueT;
523
524/*!
525 * @brief CONTROL_CHANNEL_MSG
526 * CCCI Message ID Passing Through CONTROL_CHANNEL and SYSTEM_CHANNEL
527 * NOTICE: Negotiations With AP Owner Before Modification
528 */
529typedef enum
530{
531 CCMSG_ID_START_BOOT = 0x00000000,
532 CCMSG_ID_NORMAL_BOOT_READY = 0x00000001,
533 CCMSG_ID_META_BOOT_READY = 0x00000002,
534 CCMSG_ID_RESET = 0x00000003,
535 CCMSG_ID_EXCEPTION_CHECK = 0x00000004,
536 CCMSG_ID_DRV_VERSION_ERR = 0x00000005,
537 CCMSG_ID_EXCEPTION_REC_OK = 0x00000006,
538 CCMSG_ID_EXCEPTION_PASS = 0x00000008,
539 /* System Channel */
540 CCMSG_ID_MD_L4_MOD = 0x0000000E,//add for RIL (AP task) and L4C (MD task) communication message
541 CCMSG_ID_MD_L4_MAX_TX_PWR_RED_REQ = 0x0000000F,
542
543 CCMSG_ID_MD_LEGACY_END = 0x000000FF,
544 CCMSG_ID_SYSMSGSVC_MASK = 0x00000100,
545 CCMSG_ID_SYSMSGSVC_START = 0x00000100,
546 CCMSG_ID_SYSMSGSVC_DUMMY = 0x000000FF,
547 //- section 0x100 ~ 0x1FF : reserved for system message service used
548
549 CCMSG_ID_SYSMSGSVC_END,
550
551 CCMSG_ID_MD_WDT_FLAG = 0x00001000, //- for MT6577/MT6589, AP cannot receive MD WDT interrupt issue. k2 md2 6589, for resolving wdt build error
552
553}CONTROL_CHANNEL_MSG;
554#endif
555
556#ifdef SYS_OPTION_CCISM_2SCP
557
558typedef struct
559{
560 kal_uint8* Buffp;
561 kal_uint32 Len;
562}IopCcismBufDescT;
563
564typedef enum
565{
566 IOP_CCISM_AUDIO_CHANNEL,
567 IOP_CCISM_GEOFENCE_CHANNEL,
568 IOP_CCISM_MAX_CHANNEL
569}IopCcismChT;
570
571typedef enum
572{
573 IOP_CCISM_PQ_0, /* priority queue 0 , the most high priority */
574 IOP_CCISM_PQ_1,
575 IOP_CCISM_PQ_MAX
576}IopCcismPriQueT;
577
578#endif
579/*------------------------------------------------------------------------
580 * The following IOP functions shared by USB, DPRAM. SDIO etc.
581 *-----------------------------------------------------------------------*/
582extern IopDataChRetStatus IopWrite(IopDataCpBuffDescT * Buff, IopDataChannel channel, kal_uint32 flags);
583extern IopDataChRetStatus IopRead(IopDataCpBuffDescT* Buff, IopDataChannel channel, kal_uint32 flags);
584extern kal_uint16 IopCheckRxReadyStatus(IopDataChannel channel);
585extern kal_uint16 IopCheckTxReadyStatus(IopDataChannel channel);
586extern void IopCleanUpRevQue (void);
587extern void IopDisableRevFlowCtl(void);
588extern void IopSetRevPathAtPPPChannel(IopSetRevDataPathMsgT*);
589extern void IopGetRevPathAtPPPChannel(IopSetRevDataPathMsgT*);
590extern kal_uint8 IopGetC108Status(void);
591
592/*------------------------------------------------------------------------
593 * Exported IOP functions
594 *-----------------------------------------------------------------------*/
595
596//extern void IopSetBaudRate(IopBaudT BaudRate, kal_uint8 UartNum);
597extern void IopUpdateDataUartSettings(void);
598extern kal_uint8 IopUartNumGet(UartTypeT UartType);
599#if (SYS_OPTION_USB != SYS_USB_NONE)
600extern void IopUsbSetDevice(void);
601#endif
602extern void IopSerSetDevice(void);
603#ifdef IOP_DEV_CH_LOOP_TEST
604extern IOP_RSLT_LOOPBACK RfsLoopTstCmdHandler(IopDeviceInfoT Dev, IOP_OPT_LOOPBACK Operation);
605extern IOP_RSLT_LOOPBACK IopEtsLoopTstCmdHandler(IopDeviceInfoT Dev, IOP_OPT_LOOPBACK Operation);
606#endif
607#endif /* IOPAPI_H */
608
609/*****************************************************************************
610 End of File
611******************************************************************************/
612
613/**Log information: \main\Trophy_0.3.X\1 2013-03-29 09:00:13 GMT fwu
614** HREF#008278, Support uart to be the AT communication channel between AP and CP.**/
615/**Log information: \main\Trophy\Trophy_fwu_href22082\1 2013-04-03 02:26:29 GMT fwu
616** HREF#22082, Modified to support UART1 to be the AT channel between AP and CP.**/
617/**Log information: \main\Trophy\1 2013-04-03 02:57:01 GMT hzhang
618** HREF#22082 to merge code.**/
619/**Log information: \main\Trophy\Trophy_xding_href22331\1 2013-12-10 07:17:49 GMT xding
620** HREF#22331, ºÏ²¢MMCÏà¹Ø¹¦Äܵ½Trophy baselineÉÏ**/
621/**Log information: \main\Trophy\2 2013-12-10 08:33:18 GMT jzwang
622** href#22331:Merge MMC latest implementation from Qilian branch.**/
623/**Log information: \main\Trophy\Trophy_fwu_href22333\1 2013-12-17 04:59:22 GMT fwu
624** HREF#22333. Trophy cbp82c_flashless_sdio_mmc version will crash when LTEDO_UART is enabled.**/
625/**Log information: \main\Trophy\3 2013-12-17 05:29:19 GMT hzhang
626** HREF#22333 to modify IOP_LTEDOUART_RX_SIGNAL definition **/
627/**Log information: \main\Trophy\Trophy_fwu_href22348\1 2014-01-08 06:17:22 GMT fwu
628** HREF#22348. Merge ESPI related source code.**/
629/**Log information: \main\Trophy\4 2014-01-09 06:34:40 GMT zlin
630** HREF#22348, merge code.**/
631