1 /* SPDX-License-Identifier: GPL-2.0
2  * Marvell OcteonTX CPT driver
3  *
4  * Copyright (C) 2019 Marvell International Ltd.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  */
10 
11 #ifndef __OTX_CPT_COMMON_H
12 #define __OTX_CPT_COMMON_H
13 
14 #include <linux/types.h>
15 #include <linux/delay.h>
16 #include <linux/device.h>
17 
18 #define OTX_CPT_MAX_MBOX_DATA_STR_SIZE 64
19 
20 enum otx_cptpf_type {
21 	OTX_CPT_AE = 2,
22 	OTX_CPT_SE = 3,
23 	BAD_OTX_CPTPF_TYPE,
24 };
25 
26 enum otx_cptvf_type {
27 	OTX_CPT_AE_TYPES = 1,
28 	OTX_CPT_SE_TYPES = 2,
29 	BAD_OTX_CPTVF_TYPE,
30 };
31 
32 /* VF-PF message opcodes */
33 enum otx_cpt_mbox_opcode {
34 	OTX_CPT_MSG_VF_UP = 1,
35 	OTX_CPT_MSG_VF_DOWN,
36 	OTX_CPT_MSG_READY,
37 	OTX_CPT_MSG_QLEN,
38 	OTX_CPT_MSG_QBIND_GRP,
39 	OTX_CPT_MSG_VQ_PRIORITY,
40 	OTX_CPT_MSG_PF_TYPE,
41 	OTX_CPT_MSG_ACK,
42 	OTX_CPT_MSG_NACK
43 };
44 
45 /* OcteonTX CPT mailbox structure */
46 struct otx_cpt_mbox {
47 	u64 msg; /* Message type MBOX[0] */
48 	u64 data;/* Data         MBOX[1] */
49 };
50 
51 #endif /* __OTX_CPT_COMMON_H */
52