162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci * Marvell OcteonTX CPT driver 362306a36Sopenharmony_ci * 462306a36Sopenharmony_ci * Copyright (C) 2019 Marvell International Ltd. 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * This program is free software; you can redistribute it and/or modify 762306a36Sopenharmony_ci * it under the terms of the GNU General Public License version 2 as 862306a36Sopenharmony_ci * published by the Free Software Foundation. 962306a36Sopenharmony_ci */ 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#ifndef __OTX_CPT_COMMON_H 1262306a36Sopenharmony_ci#define __OTX_CPT_COMMON_H 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#include <linux/types.h> 1562306a36Sopenharmony_ci#include <linux/delay.h> 1662306a36Sopenharmony_ci#include <linux/device.h> 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci#define OTX_CPT_MAX_MBOX_DATA_STR_SIZE 64 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_cienum otx_cptpf_type { 2162306a36Sopenharmony_ci OTX_CPT_AE = 2, 2262306a36Sopenharmony_ci OTX_CPT_SE = 3, 2362306a36Sopenharmony_ci BAD_OTX_CPTPF_TYPE, 2462306a36Sopenharmony_ci}; 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_cienum otx_cptvf_type { 2762306a36Sopenharmony_ci OTX_CPT_AE_TYPES = 1, 2862306a36Sopenharmony_ci OTX_CPT_SE_TYPES = 2, 2962306a36Sopenharmony_ci BAD_OTX_CPTVF_TYPE, 3062306a36Sopenharmony_ci}; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci/* VF-PF message opcodes */ 3362306a36Sopenharmony_cienum otx_cpt_mbox_opcode { 3462306a36Sopenharmony_ci OTX_CPT_MSG_VF_UP = 1, 3562306a36Sopenharmony_ci OTX_CPT_MSG_VF_DOWN, 3662306a36Sopenharmony_ci OTX_CPT_MSG_READY, 3762306a36Sopenharmony_ci OTX_CPT_MSG_QLEN, 3862306a36Sopenharmony_ci OTX_CPT_MSG_QBIND_GRP, 3962306a36Sopenharmony_ci OTX_CPT_MSG_VQ_PRIORITY, 4062306a36Sopenharmony_ci OTX_CPT_MSG_PF_TYPE, 4162306a36Sopenharmony_ci OTX_CPT_MSG_ACK, 4262306a36Sopenharmony_ci OTX_CPT_MSG_NACK 4362306a36Sopenharmony_ci}; 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci/* OcteonTX CPT mailbox structure */ 4662306a36Sopenharmony_cistruct otx_cpt_mbox { 4762306a36Sopenharmony_ci u64 msg; /* Message type MBOX[0] */ 4862306a36Sopenharmony_ci u64 data;/* Data MBOX[1] */ 4962306a36Sopenharmony_ci}; 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci#endif /* __OTX_CPT_COMMON_H */ 52