blob: e9fe2f5ce8b364fd68cad949ae81db0c640b2f9e [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001/*
2 * This software program is licensed subject to the GNU General Public License
3 * (GPL).Version 2,June 1991, available at http://www.fsf.org/copyleft/gpl.html
4
5 * (C) Copyright 2012 Marvell International Ltd.
6 * All Rights Reserved
7 */
8
9#ifndef _PXA9XX_AMIPC_H_
10#define _PXA9XX_AMIPC_H_
11
12/* user level ioctl commands for accessing APIs */
13#define AMIPC_IOC_MAGIC 0xD2
14#define AMIPC_SET_EVENT _IO(AMIPC_IOC_MAGIC, 0)
15#define AMIPC_GET_EVENT _IO(AMIPC_IOC_MAGIC, 1)
16#define AMIPC_SEND_DATA _IO(AMIPC_IOC_MAGIC, 2)
17#define AMIPC_READ_DATA _IO(AMIPC_IOC_MAGIC, 3)
18#define AMIPC_BIND_EVENT _IO(AMIPC_IOC_MAGIC, 4)
19#define AMIPC_UNBIND_EVENT _IO(AMIPC_IOC_MAGIC, 5)
20#define AMIPC_IPC_CRL _IO(AMIPC_IOC_MAGIC, 6)
21#define AMIPC_IPC_MSG_GET _IO(AMIPC_IOC_MAGIC, 7)
22#define AMIPC_TEST_CRL _IO(AMIPC_IOC_MAGIC, 8)
23
24/* TEST CRL */
25#define TEST_CRL_CLR (1)
26#define TEST_CRL_SET_TX (2)
27#define TEST_CRL_SET_RX (3)
28#define TEST_CRL_GEN_IRQ (4)
29/* ACQ related */
30#define AMIPC_ACQ_GET_MEM (0xF0000000)
31#define AMIPC_ACQ_REL_MEM (0xF0000001)
32#define AMIPC_ACQ_CACHE_FLUSH (0xF0000002)
33#define AMIPC_ACQ_SET_TO_DMACHAIN (0xF0000003)
34#define AMIPC_ACQ_CLR_DMACHAIN (0xF0000004)
35
36typedef unsigned int u32;
37
38enum amipc_events
39{
40 AMIPC_SHM_PACKET_NOTIFY = 0x00000001,
41 AMIPC_RINGBUF_FC = 0x00000002,
42 AMIPC_ACQ_COMMAND = 0x00000003,
43 AMIPC_LL_PING = 0x00000004,
44 AMIPC_EVENT_LAST = AMIPC_LL_PING,
45};
46
47enum amipc_return_code
48{
49 AMIPC_RC_OK = 0,
50 AMIPC_EVENT_ALREADY_BIND,
51 AMIPC_RC_FAILURE,
52 AMIPC_RC_TIMEOUT,
53 AMIPC_RC_AGAIN
54};
55
56struct amipc_ioctl_arg
57{
58 enum amipc_events event;
59 u32 data1, data2;
60 u32 more_msgs;
61};
62
63#endif /* _PXA9XX_AMIPC_H_ */