1665ff1ccSJerin Jacob /* SPDX-License-Identifier: BSD-3-Clause 2665ff1ccSJerin Jacob * Copyright(C) 2021 Marvell. 3665ff1ccSJerin Jacob */ 4665ff1ccSJerin Jacob 5665ff1ccSJerin Jacob #ifndef _ROC_IDEV_PRIV_H_ 6665ff1ccSJerin Jacob #define _ROC_IDEV_PRIV_H_ 7665ff1ccSJerin Jacob 8665ff1ccSJerin Jacob /* Intra device related functions */ 9124ff1a4SAshwin Sekhar T K struct npa_lf; 104ced2b04STomasz Duszynski struct roc_bphy; 110a2879b2SAnoob Joseph struct roc_cpt; 12bbcd191cSNithin Dabilpuram struct nix_inl_dev; 130f3f3ad8SNithin Dabilpuram 140f3f3ad8SNithin Dabilpuram struct idev_nix_inl_cfg { 150f3f3ad8SNithin Dabilpuram uint64_t meta_aura; 167ea18718SRahul Bhansali uintptr_t meta_mempool; 170f3f3ad8SNithin Dabilpuram uint32_t nb_bufs; 180f3f3ad8SNithin Dabilpuram uint32_t buf_sz; 190f3f3ad8SNithin Dabilpuram uint32_t refs; 200f3f3ad8SNithin Dabilpuram }; 210f3f3ad8SNithin Dabilpuram 22b77d160fSRahul Bhansali struct idev_nix_inl_rx_inj_cfg { 23b77d160fSRahul Bhansali uint16_t chan[PLT_MAX_ETHPORTS]; 24b77d160fSRahul Bhansali uint8_t rx_inject_en[PLT_MAX_ETHPORTS]; 25b77d160fSRahul Bhansali }; 26b77d160fSRahul Bhansali 27665ff1ccSJerin Jacob struct idev_cfg { 289b727f85SPavan Nikhilesh uint16_t sso_pf_func; 29124ff1a4SAshwin Sekhar T K uint16_t npa_pf_func; 30124ff1a4SAshwin Sekhar T K struct npa_lf *npa; 31124ff1a4SAshwin Sekhar T K uint16_t npa_refcnt; 32124ff1a4SAshwin Sekhar T K uint32_t max_pools; 33665ff1ccSJerin Jacob uint16_t lmt_pf_func; 34665ff1ccSJerin Jacob uint16_t num_lmtlines; 35665ff1ccSJerin Jacob uint64_t lmt_base_addr; 364ced2b04STomasz Duszynski struct roc_bphy *bphy; 370a2879b2SAnoob Joseph struct roc_cpt *cpt; 38cb0e45cbSPavan Nikhilesh struct roc_sso *sso; 39*318ee1b0SAkhil Goyal struct roc_rvu_lf_head rvu_lf_list; 40f752780fSAkhil Goyal struct roc_mcs_head mcs_list; 41bbcd191cSNithin Dabilpuram struct nix_inl_dev *nix_inl_dev; 420f3f3ad8SNithin Dabilpuram struct idev_nix_inl_cfg inl_cfg; 43ec7c2f5aSShijith Thotton struct roc_nix_list roc_nix_list; 44b77d160fSRahul Bhansali struct idev_nix_inl_rx_inj_cfg inl_rx_inj_cfg; 45bbcd191cSNithin Dabilpuram plt_spinlock_t nix_inl_dev_lock; 4644a9307cSRakesh Kudurumalla plt_spinlock_t npa_dev_lock; 4794163794SAmit Prakash Shukla uint8_t dma_cs_offset; 48665ff1ccSJerin Jacob }; 49665ff1ccSJerin Jacob 50665ff1ccSJerin Jacob /* Generic */ 51665ff1ccSJerin Jacob struct idev_cfg *idev_get_cfg(void); 52665ff1ccSJerin Jacob void idev_set_defaults(struct idev_cfg *idev); 53665ff1ccSJerin Jacob 54124ff1a4SAshwin Sekhar T K /* idev npa */ 55124ff1a4SAshwin Sekhar T K uint16_t idev_npa_pffunc_get(void); 56124ff1a4SAshwin Sekhar T K struct npa_lf *idev_npa_obj_get(void); 57124ff1a4SAshwin Sekhar T K uint32_t idev_npa_maxpools_get(void); 58124ff1a4SAshwin Sekhar T K void idev_npa_maxpools_set(uint32_t max_pools); 59124ff1a4SAshwin Sekhar T K uint16_t idev_npa_lf_active(struct dev *dev); 60124ff1a4SAshwin Sekhar T K 619b727f85SPavan Nikhilesh /* idev sso */ 629b727f85SPavan Nikhilesh void idev_sso_pffunc_set(uint16_t sso_pf_func); 639b727f85SPavan Nikhilesh uint16_t idev_sso_pffunc_get(void); 64cb0e45cbSPavan Nikhilesh struct roc_sso *idev_sso_get(void); 65cb0e45cbSPavan Nikhilesh void idev_sso_set(struct roc_sso *sso); 6694163794SAmit Prakash Shukla void idev_dma_cs_offset_set(uint8_t offset); 6794163794SAmit Prakash Shukla uint8_t idev_dma_cs_offset_get(void); 689b727f85SPavan Nikhilesh 69665ff1ccSJerin Jacob /* idev lmt */ 70665ff1ccSJerin Jacob uint16_t idev_lmt_pffunc_get(void); 71665ff1ccSJerin Jacob 72665ff1ccSJerin Jacob #endif /* _ROC_IDEV_PRIV_H_ */ 73