162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2019, Mellanox Technologies. All rights reserved.
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#ifndef __MLXBF_TMFIFO_REGS_H__
762306a36Sopenharmony_ci#define __MLXBF_TMFIFO_REGS_H__
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include <linux/types.h>
1062306a36Sopenharmony_ci#include <linux/bits.h>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_DATA				0x00
1362306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_STS				0x08
1462306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_STS__LENGTH			0x0001
1562306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_STS__COUNT_SHIFT		0
1662306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_STS__COUNT_WIDTH		9
1762306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_STS__COUNT_RESET_VAL		0
1862306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_STS__COUNT_RMASK		GENMASK_ULL(8, 0)
1962306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_STS__COUNT_MASK			GENMASK_ULL(8, 0)
2062306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_CTL				0x10
2162306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_CTL__LENGTH			0x0001
2262306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_CTL__LWM_SHIFT			0
2362306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_CTL__LWM_WIDTH			8
2462306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_CTL__LWM_RESET_VAL		128
2562306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_CTL__LWM_RMASK			GENMASK_ULL(7, 0)
2662306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_CTL__LWM_MASK			GENMASK_ULL(7, 0)
2762306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_CTL__HWM_SHIFT			8
2862306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_CTL__HWM_WIDTH			8
2962306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_CTL__HWM_RESET_VAL		128
3062306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_CTL__HWM_RMASK			GENMASK_ULL(7, 0)
3162306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_CTL__HWM_MASK			GENMASK_ULL(15, 8)
3262306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_CTL__MAX_ENTRIES_SHIFT		32
3362306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_CTL__MAX_ENTRIES_WIDTH		9
3462306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_CTL__MAX_ENTRIES_RESET_VAL	256
3562306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_CTL__MAX_ENTRIES_RMASK		GENMASK_ULL(8, 0)
3662306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_CTL__MAX_ENTRIES_MASK		GENMASK_ULL(40, 32)
3762306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_DATA				0x00
3862306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_STS				0x08
3962306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_STS__LENGTH			0x0001
4062306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_STS__COUNT_SHIFT		0
4162306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_STS__COUNT_WIDTH		9
4262306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_STS__COUNT_RESET_VAL		0
4362306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_STS__COUNT_RMASK		GENMASK_ULL(8, 0)
4462306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_STS__COUNT_MASK			GENMASK_ULL(8, 0)
4562306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_CTL				0x10
4662306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_CTL__LENGTH			0x0001
4762306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_CTL__LWM_SHIFT			0
4862306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_CTL__LWM_WIDTH			8
4962306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_CTL__LWM_RESET_VAL		128
5062306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_CTL__LWM_RMASK			GENMASK_ULL(7, 0)
5162306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_CTL__LWM_MASK			GENMASK_ULL(7, 0)
5262306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_CTL__HWM_SHIFT			8
5362306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_CTL__HWM_WIDTH			8
5462306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_CTL__HWM_RESET_VAL		128
5562306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_CTL__HWM_RMASK			GENMASK_ULL(7, 0)
5662306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_CTL__HWM_MASK			GENMASK_ULL(15, 8)
5762306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_CTL__MAX_ENTRIES_SHIFT		32
5862306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_CTL__MAX_ENTRIES_WIDTH		9
5962306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_CTL__MAX_ENTRIES_RESET_VAL	256
6062306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_CTL__MAX_ENTRIES_RMASK		GENMASK_ULL(8, 0)
6162306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_CTL__MAX_ENTRIES_MASK		GENMASK_ULL(40, 32)
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci/* BF3 register offsets within resource 0. */
6462306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_DATA_BF3	0x0000
6562306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_DATA_BF3	0x1000
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci/* BF3 register offsets within resource 1. */
6862306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_STS_BF3		0x0000
6962306a36Sopenharmony_ci#define MLXBF_TMFIFO_RX_CTL_BF3		0x0008
7062306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_STS_BF3		0x0100
7162306a36Sopenharmony_ci#define MLXBF_TMFIFO_TX_CTL_BF3		0x0108
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci#endif /* !defined(__MLXBF_TMFIFO_REGS_H__) */
74