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_CPTPF_H
12#define __OTX_CPTPF_H
13
14#include <linux/types.h>
15#include <linux/device.h>
16#include "otx_cptpf_ucode.h"
17
18/*
19 * OcteonTX CPT device structure
20 */
21struct otx_cpt_device {
22	void __iomem *reg_base; /* Register start address */
23	struct pci_dev *pdev;	/* Pci device handle */
24	struct otx_cpt_eng_grps eng_grps;/* Engine groups information */
25	struct list_head list;
26	u8 pf_type;	/* PF type SE or AE */
27	u8 max_vfs;	/* Maximum number of VFs supported by the CPT */
28	u8 vfs_enabled;	/* Number of enabled VFs */
29};
30
31void otx_cpt_mbox_intr_handler(struct otx_cpt_device *cpt, int mbx);
32void otx_cpt_disable_all_cores(struct otx_cpt_device *cpt);
33
34#endif /* __OTX_CPTPF_H */
35