xref: /linux/drivers/crypto/marvell/octeontx2/otx2_cptvf.h (revision a23e1966932464e1c5226cb9ac4ce1d5fc10ba22)
119d8e8c7SSrujana Challa /* SPDX-License-Identifier: GPL-2.0-only
219d8e8c7SSrujana Challa  * Copyright (C) 2020 Marvell.
319d8e8c7SSrujana Challa  */
419d8e8c7SSrujana Challa 
519d8e8c7SSrujana Challa #ifndef __OTX2_CPTVF_H
619d8e8c7SSrujana Challa #define __OTX2_CPTVF_H
719d8e8c7SSrujana Challa 
819d8e8c7SSrujana Challa #include "mbox.h"
919d8e8c7SSrujana Challa #include "otx2_cptlf.h"
1019d8e8c7SSrujana Challa 
1119d8e8c7SSrujana Challa struct otx2_cptvf_dev {
1219d8e8c7SSrujana Challa 	void __iomem *reg_base;		/* Register start address */
1319d8e8c7SSrujana Challa 	void __iomem *pfvf_mbox_base;	/* PF-VF mbox start address */
1419d8e8c7SSrujana Challa 	struct pci_dev *pdev;		/* PCI device handle */
1519d8e8c7SSrujana Challa 	struct otx2_cptlfs_info lfs;	/* CPT LFs attached to this VF */
1619d8e8c7SSrujana Challa 	u8 vf_id;			/* Virtual function index */
1719d8e8c7SSrujana Challa 
1819d8e8c7SSrujana Challa 	/* PF <=> VF mbox */
1919d8e8c7SSrujana Challa 	struct otx2_mbox	pfvf_mbox;
2019d8e8c7SSrujana Challa 	struct work_struct	pfvf_mbox_work;
2119d8e8c7SSrujana Challa 	struct workqueue_struct *pfvf_mbox_wq;
22a4855a8cSSrujana Challa 	int blkaddr;
234cd8c315SSrujana Challa 	void *bbuf_base;
244cd8c315SSrujana Challa 	unsigned long cap_flag;
2592508e7fSSrujana Challa 	u64 eng_caps[OTX2_CPT_MAX_ENG_TYPES];
2619d8e8c7SSrujana Challa };
2719d8e8c7SSrujana Challa 
2819d8e8c7SSrujana Challa irqreturn_t otx2_cptvf_pfvf_mbox_intr(int irq, void *arg);
2919d8e8c7SSrujana Challa void otx2_cptvf_pfvf_mbox_handler(struct work_struct *work);
3019d8e8c7SSrujana Challa int otx2_cptvf_send_eng_grp_num_msg(struct otx2_cptvf_dev *cptvf, int eng_type);
318ec8015aSSrujana Challa int otx2_cptvf_send_kvf_limits_msg(struct otx2_cptvf_dev *cptvf);
324cd8c315SSrujana Challa int otx2_cpt_mbox_bbuf_init(struct otx2_cptvf_dev *cptvf, struct pci_dev *pdev);
3392508e7fSSrujana Challa int otx2_cptvf_send_caps_msg(struct otx2_cptvf_dev *cptvf);
3419d8e8c7SSrujana Challa 
3519d8e8c7SSrujana Challa #endif /* __OTX2_CPTVF_H */
36