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