blob: c372668b2f1c0b16dbc1089ae22e57f569672e1a [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001#ifndef __CDIF_PUBLIC_H__
2#define __CDIF_PUBLIC_H__
3
4/*****************************************************************************
5 * Value Definition *
6 *****************************************************************************/
7typedef enum {
8 CDIF_CONTROL_CHANNEL_MASTER_TX = 0,
9 CDIF_CONTROL_CHANNEL_MASTER_RX,
10 CDIF_IPC_MASTER_TX,
11 CDIF_IPC_MASTER_RX,
12 CDIF_EVG_MASTER_TX,
13 CDIF_EVG_MASTER_RX,
14 CDIF_MUTEX_MASTER_TX,
15 CDIF_MUTEX_MASTER_RX,
16 CDIF_EXCEP_MASTER_TX,
17 CDIF_EXCEP_MASTER_RX,
18#if defined(CDIF_IT)
19 CDIF_CCIF_IT_MASTER_TX,
20 CDIF_CCIF_IT_MASTER_RX,
21#endif
22 CDIF_MAX_CHANNEL,
23} CDIF_CHANNEL_T;
24
25typedef enum {
26 CDIF_SUCCESS = 0,
27 CDIF_NO_PHY_CHANNEL = -1001,
28 CDIF_INVALID_PARAM = -1002,
29 CDIF_IN_USE = -1003,
30 CDIF_IN_LISR = -1004,
31 CDIF_NOT_OWNER = -1005,
32} CDIF_RET_VALUE_T;
33
34
35/*****************************************************************************
36 * Data Type Definition *
37 *****************************************************************************/
38typedef struct {
39 kal_uint32 data[2];
40 kal_uint32 channel;
41 kal_uint32 reserved;
42} CDIF_BUFF_T;
43
44typedef void (*CDIF_CALLBACK)(CDIF_BUFF_T *buff);
45
46typedef struct {
47 kal_uint32 state;
48 kal_uint32 owner;
49 CDIF_CALLBACK funp;
50} CDIF_CTRL_T;
51
52
53/*****************************************************************************
54 * public API *
55 *****************************************************************************/
56extern void cdif_init();
57extern void cdif_init_handshake();
58extern kal_int32 cdif_channel_init(kal_uint32 channel, CDIF_CALLBACK funp);
59extern kal_int32 cdif_channel_deinit(kal_uint32 channel);
60extern kal_int32 cdif_mailbox_write(kal_uint32 channel, kal_uint32 message_id, kal_uint32 reseerved);
61extern kal_int32 cdif_mailbox_write_with_polling(kal_uint32 channel, kal_uint32 message_id, kal_uint32 reserved);
62extern kal_uint32 cdif_chk_recentry_in_queue(kal_uint32 query_channel, kal_bool ack_if_found);
63extern kal_uint32 cdif_init_ready();
64
65#endif /* __U3G_CCCI_H__ */