xref: /linux/drivers/net/ethernet/broadcom/bnge/bnge_db.h (revision ec2e0fb07d789976c601bec19ecced7a501c3705)
1*c757ef35SBhargava Marreddy /* SPDX-License-Identifier: GPL-2.0 */
2*c757ef35SBhargava Marreddy /* Copyright (c) 2025 Broadcom */
3*c757ef35SBhargava Marreddy 
4*c757ef35SBhargava Marreddy #ifndef _BNGE_DB_H_
5*c757ef35SBhargava Marreddy #define _BNGE_DB_H_
6*c757ef35SBhargava Marreddy 
7*c757ef35SBhargava Marreddy /* 64-bit doorbell */
8*c757ef35SBhargava Marreddy #define DBR_EPOCH_SFT					24
9*c757ef35SBhargava Marreddy #define DBR_TOGGLE_SFT					25
10*c757ef35SBhargava Marreddy #define DBR_XID_SFT					32
11*c757ef35SBhargava Marreddy #define DBR_PATH_L2					(0x1ULL << 56)
12*c757ef35SBhargava Marreddy #define DBR_VALID					(0x1ULL << 58)
13*c757ef35SBhargava Marreddy #define DBR_TYPE_SQ					(0x0ULL << 60)
14*c757ef35SBhargava Marreddy #define DBR_TYPE_SRQ					(0x2ULL << 60)
15*c757ef35SBhargava Marreddy #define DBR_TYPE_CQ					(0x4ULL << 60)
16*c757ef35SBhargava Marreddy #define DBR_TYPE_CQ_ARMALL				(0x6ULL << 60)
17*c757ef35SBhargava Marreddy #define DBR_TYPE_NQ					(0xaULL << 60)
18*c757ef35SBhargava Marreddy #define DBR_TYPE_NQ_ARM					(0xbULL << 60)
19*c757ef35SBhargava Marreddy #define DBR_TYPE_NQ_MASK				(0xeULL << 60)
20*c757ef35SBhargava Marreddy 
21*c757ef35SBhargava Marreddy struct bnge_db_info {
22*c757ef35SBhargava Marreddy 	void __iomem		*doorbell;
23*c757ef35SBhargava Marreddy 	u64			db_key64;
24*c757ef35SBhargava Marreddy 	u32			db_ring_mask;
25*c757ef35SBhargava Marreddy 	u32			db_epoch_mask;
26*c757ef35SBhargava Marreddy 	u8			db_epoch_shift;
27*c757ef35SBhargava Marreddy };
28*c757ef35SBhargava Marreddy 
29*c757ef35SBhargava Marreddy #define DB_EPOCH(db, idx)	(((idx) & (db)->db_epoch_mask) <<	\
30*c757ef35SBhargava Marreddy 				 ((db)->db_epoch_shift))
31*c757ef35SBhargava Marreddy #define DB_RING_IDX(db, idx)	(((idx) & (db)->db_ring_mask) |		\
32*c757ef35SBhargava Marreddy 				 DB_EPOCH(db, idx))
33*c757ef35SBhargava Marreddy 
34*c757ef35SBhargava Marreddy #endif /* _BNGE_DB_H_ */
35