xref: /openbmc/linux/drivers/net/wwan/t7xx/t7xx_reg.h (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
139d43904SHaijun Liu /* SPDX-License-Identifier: GPL-2.0-only
239d43904SHaijun Liu  *
339d43904SHaijun Liu  * Copyright (c) 2021, MediaTek Inc.
439d43904SHaijun Liu  * Copyright (c) 2021-2022, Intel Corporation.
539d43904SHaijun Liu  *
639d43904SHaijun Liu  * Authors:
739d43904SHaijun Liu  *  Haijun Liu <haijun.liu@mediatek.com>
839d43904SHaijun Liu  *  Chiranjeevi Rapolu <chiranjeevi.rapolu@intel.com>
939d43904SHaijun Liu  *
1039d43904SHaijun Liu  * Contributors:
1139d43904SHaijun Liu  *  Amir Hanania <amir.hanania@intel.com>
1239d43904SHaijun Liu  *  Andy Shevchenko <andriy.shevchenko@linux.intel.com>
1339d43904SHaijun Liu  *  Eliot Lee <eliot.lee@intel.com>
1439d43904SHaijun Liu  *  Moises Veleta <moises.veleta@intel.com>
1539d43904SHaijun Liu  *  Ricardo Martinez <ricardo.martinez@linux.intel.com>
1639d43904SHaijun Liu  *  Sreehari Kancharla <sreehari.kancharla@intel.com>
1739d43904SHaijun Liu  */
1839d43904SHaijun Liu 
1939d43904SHaijun Liu #ifndef __T7XX_REG_H__
2039d43904SHaijun Liu #define __T7XX_REG_H__
2139d43904SHaijun Liu 
2213e920d9SHaijun Liu #include <linux/bits.h>
2313e920d9SHaijun Liu 
2413e920d9SHaijun Liu /* Device base address offset */
2513e920d9SHaijun Liu #define MHCCIF_RC_DEV_BASE			0x10024000
2613e920d9SHaijun Liu 
2713e920d9SHaijun Liu #define REG_RC2EP_SW_BSY			0x04
2813e920d9SHaijun Liu #define REG_RC2EP_SW_INT_START			0x08
2913e920d9SHaijun Liu 
3013e920d9SHaijun Liu #define REG_RC2EP_SW_TCHNUM			0x0c
3113e920d9SHaijun Liu #define H2D_CH_EXCEPTION_ACK			1
3213e920d9SHaijun Liu #define H2D_CH_EXCEPTION_CLEARQ_ACK		2
3313e920d9SHaijun Liu #define H2D_CH_DS_LOCK				3
3413e920d9SHaijun Liu /* Channels 4-8 are reserved */
3513e920d9SHaijun Liu #define H2D_CH_SUSPEND_REQ			9
3613e920d9SHaijun Liu #define H2D_CH_RESUME_REQ			10
3713e920d9SHaijun Liu #define H2D_CH_SUSPEND_REQ_AP			11
3813e920d9SHaijun Liu #define H2D_CH_RESUME_REQ_AP			12
3913e920d9SHaijun Liu #define H2D_CH_DEVICE_RESET			13
4013e920d9SHaijun Liu #define H2D_CH_DRM_DISABLE_AP			14
4113e920d9SHaijun Liu 
4213e920d9SHaijun Liu #define REG_EP2RC_SW_INT_STS			0x10
4313e920d9SHaijun Liu #define REG_EP2RC_SW_INT_ACK			0x14
4413e920d9SHaijun Liu #define REG_EP2RC_SW_INT_EAP_MASK		0x20
4513e920d9SHaijun Liu #define REG_EP2RC_SW_INT_EAP_MASK_SET		0x30
4613e920d9SHaijun Liu #define REG_EP2RC_SW_INT_EAP_MASK_CLR		0x40
4713e920d9SHaijun Liu 
4813e920d9SHaijun Liu #define D2H_INT_DS_LOCK_ACK			BIT(0)
4913e920d9SHaijun Liu #define D2H_INT_EXCEPTION_INIT			BIT(1)
5013e920d9SHaijun Liu #define D2H_INT_EXCEPTION_INIT_DONE		BIT(2)
5113e920d9SHaijun Liu #define D2H_INT_EXCEPTION_CLEARQ_DONE		BIT(3)
5213e920d9SHaijun Liu #define D2H_INT_EXCEPTION_ALLQ_RESET		BIT(4)
5313e920d9SHaijun Liu #define D2H_INT_PORT_ENUM			BIT(5)
5413e920d9SHaijun Liu /* Bits 6-10 are reserved */
5513e920d9SHaijun Liu #define D2H_INT_SUSPEND_ACK			BIT(11)
5613e920d9SHaijun Liu #define D2H_INT_RESUME_ACK			BIT(12)
5713e920d9SHaijun Liu #define D2H_INT_SUSPEND_ACK_AP			BIT(13)
5813e920d9SHaijun Liu #define D2H_INT_RESUME_ACK_AP			BIT(14)
59*ba2274dcSJose Ignacio Tornos Martinez #define D2H_INT_ASYNC_AP_HK			BIT(15)
6013e920d9SHaijun Liu #define D2H_INT_ASYNC_MD_HK			BIT(16)
6113e920d9SHaijun Liu 
6213e920d9SHaijun Liu /* Register base */
6313e920d9SHaijun Liu #define INFRACFG_AO_DEV_CHIP			0x10001000
6413e920d9SHaijun Liu 
6513e920d9SHaijun Liu /* ATR setting */
6613e920d9SHaijun Liu #define T7XX_PCIE_REG_TRSL_ADDR_CHIP		0x10000000
6713e920d9SHaijun Liu #define T7XX_PCIE_REG_SIZE_CHIP			0x00400000
6813e920d9SHaijun Liu 
6913e920d9SHaijun Liu /* Reset Generic Unit (RGU) */
7013e920d9SHaijun Liu #define TOPRGU_CH_PCIE_IRQ_STA			0x1000790c
7113e920d9SHaijun Liu 
7213e920d9SHaijun Liu #define ATR_PORT_OFFSET				0x100
7313e920d9SHaijun Liu #define ATR_TABLE_OFFSET			0x20
7413e920d9SHaijun Liu #define ATR_TABLE_NUM_PER_ATR			8
7513e920d9SHaijun Liu #define ATR_TRANSPARENT_SIZE			0x3f
7613e920d9SHaijun Liu 
7713e920d9SHaijun Liu /* PCIE_MAC_IREG Register Definition */
7813e920d9SHaijun Liu 
7913e920d9SHaijun Liu #define ISTAT_HST_CTRL				0x01ac
8013e920d9SHaijun Liu #define ISTAT_HST_CTRL_DIS			BIT(0)
8113e920d9SHaijun Liu 
8213e920d9SHaijun Liu #define T7XX_PCIE_MISC_CTRL			0x0348
8313e920d9SHaijun Liu #define T7XX_PCIE_MISC_MAC_SLEEP_DIS		BIT(7)
8413e920d9SHaijun Liu 
8513e920d9SHaijun Liu #define T7XX_PCIE_CFG_MSIX			0x03ec
8613e920d9SHaijun Liu #define ATR_PCIE_WIN0_T0_ATR_PARAM_SRC_ADDR	0x0600
8713e920d9SHaijun Liu #define ATR_PCIE_WIN0_T0_TRSL_ADDR		0x0608
8813e920d9SHaijun Liu #define ATR_PCIE_WIN0_T0_TRSL_PARAM		0x0610
8913e920d9SHaijun Liu #define ATR_PCIE_WIN0_ADDR_ALGMT		GENMASK_ULL(63, 12)
9013e920d9SHaijun Liu 
9113e920d9SHaijun Liu #define ATR_SRC_ADDR_INVALID			0x007f
9213e920d9SHaijun Liu 
9313e920d9SHaijun Liu #define T7XX_PCIE_PM_RESUME_STATE		0x0d0c
9413e920d9SHaijun Liu 
9513e920d9SHaijun Liu enum t7xx_pm_resume_state {
9613e920d9SHaijun Liu 	PM_RESUME_REG_STATE_L3,
9713e920d9SHaijun Liu 	PM_RESUME_REG_STATE_L1,
9813e920d9SHaijun Liu 	PM_RESUME_REG_STATE_INIT,
9913e920d9SHaijun Liu 	PM_RESUME_REG_STATE_EXP,
10013e920d9SHaijun Liu 	PM_RESUME_REG_STATE_L2,
10113e920d9SHaijun Liu 	PM_RESUME_REG_STATE_L2_EXP,
10213e920d9SHaijun Liu };
10313e920d9SHaijun Liu 
10413e920d9SHaijun Liu #define T7XX_PCIE_MISC_DEV_STATUS		0x0d1c
10513e920d9SHaijun Liu #define MISC_STAGE_MASK				GENMASK(2, 0)
10613e920d9SHaijun Liu #define MISC_RESET_TYPE_PLDR			BIT(26)
10713e920d9SHaijun Liu #define MISC_RESET_TYPE_FLDR			BIT(27)
10813e920d9SHaijun Liu #define LINUX_STAGE				4
10913e920d9SHaijun Liu 
11013e920d9SHaijun Liu #define T7XX_PCIE_RESOURCE_STATUS		0x0d28
11113e920d9SHaijun Liu #define T7XX_PCIE_RESOURCE_STS_MSK		GENMASK(4, 0)
11213e920d9SHaijun Liu 
11313e920d9SHaijun Liu #define DISABLE_ASPM_LOWPWR			0x0e50
11413e920d9SHaijun Liu #define ENABLE_ASPM_LOWPWR			0x0e54
11513e920d9SHaijun Liu #define T7XX_L1_BIT(i)				BIT((i) * 4 + 1)
11613e920d9SHaijun Liu #define T7XX_L1_1_BIT(i)			BIT((i) * 4 + 2)
11713e920d9SHaijun Liu #define T7XX_L1_2_BIT(i)			BIT((i) * 4 + 3)
11813e920d9SHaijun Liu 
11913e920d9SHaijun Liu #define MSIX_ISTAT_HST_GRP0_0			0x0f00
12013e920d9SHaijun Liu #define IMASK_HOST_MSIX_SET_GRP0_0		0x3000
12113e920d9SHaijun Liu #define IMASK_HOST_MSIX_CLR_GRP0_0		0x3080
12213e920d9SHaijun Liu #define EXT_INT_START				24
12313e920d9SHaijun Liu #define EXT_INT_NUM				8
12413e920d9SHaijun Liu #define MSIX_MSK_SET_ALL			GENMASK(31, 24)
12513e920d9SHaijun Liu 
12639d43904SHaijun Liu enum t7xx_int {
12739d43904SHaijun Liu 	DPMAIF_INT,
12839d43904SHaijun Liu 	CLDMA0_INT,
12939d43904SHaijun Liu 	CLDMA1_INT,
13039d43904SHaijun Liu 	CLDMA2_INT,
13139d43904SHaijun Liu 	MHCCIF_INT,
13239d43904SHaijun Liu 	DPMAIF2_INT,
13339d43904SHaijun Liu 	SAP_RGU_INT,
13439d43904SHaijun Liu 	CLDMA3_INT,
13539d43904SHaijun Liu };
13639d43904SHaijun Liu 
13733f78ab5SHaijun Liu /* DPMA definitions */
13833f78ab5SHaijun Liu 
13933f78ab5SHaijun Liu #define DPMAIF_PD_BASE				0x1022d000
14033f78ab5SHaijun Liu #define BASE_DPMAIF_UL				DPMAIF_PD_BASE
14133f78ab5SHaijun Liu #define BASE_DPMAIF_DL				(DPMAIF_PD_BASE + 0x100)
14233f78ab5SHaijun Liu #define BASE_DPMAIF_AP_MISC			(DPMAIF_PD_BASE + 0x400)
14333f78ab5SHaijun Liu #define BASE_DPMAIF_MMW_HPC			(DPMAIF_PD_BASE + 0x600)
14433f78ab5SHaijun Liu #define BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX		(DPMAIF_PD_BASE + 0x900)
14533f78ab5SHaijun Liu #define BASE_DPMAIF_PD_SRAM_DL			(DPMAIF_PD_BASE + 0xc00)
14633f78ab5SHaijun Liu #define BASE_DPMAIF_PD_SRAM_UL			(DPMAIF_PD_BASE + 0xd00)
14733f78ab5SHaijun Liu 
14833f78ab5SHaijun Liu #define DPMAIF_AO_BASE				0x10014000
14933f78ab5SHaijun Liu #define BASE_DPMAIF_AO_UL			DPMAIF_AO_BASE
15033f78ab5SHaijun Liu #define BASE_DPMAIF_AO_DL			(DPMAIF_AO_BASE + 0x400)
15133f78ab5SHaijun Liu 
15233f78ab5SHaijun Liu #define DPMAIF_UL_ADD_DESC			(BASE_DPMAIF_UL + 0x00)
15333f78ab5SHaijun Liu #define DPMAIF_UL_CHK_BUSY			(BASE_DPMAIF_UL + 0x88)
15433f78ab5SHaijun Liu #define DPMAIF_UL_RESERVE_AO_RW			(BASE_DPMAIF_UL + 0xac)
15533f78ab5SHaijun Liu #define DPMAIF_UL_ADD_DESC_CH0			(BASE_DPMAIF_UL + 0xb0)
15633f78ab5SHaijun Liu 
15733f78ab5SHaijun Liu #define DPMAIF_DL_BAT_INIT			(BASE_DPMAIF_DL + 0x00)
15833f78ab5SHaijun Liu #define DPMAIF_DL_BAT_ADD			(BASE_DPMAIF_DL + 0x04)
15933f78ab5SHaijun Liu #define DPMAIF_DL_BAT_INIT_CON0			(BASE_DPMAIF_DL + 0x08)
16033f78ab5SHaijun Liu #define DPMAIF_DL_BAT_INIT_CON1			(BASE_DPMAIF_DL + 0x0c)
16133f78ab5SHaijun Liu #define DPMAIF_DL_BAT_INIT_CON2			(BASE_DPMAIF_DL + 0x10)
16233f78ab5SHaijun Liu #define DPMAIF_DL_BAT_INIT_CON3			(BASE_DPMAIF_DL + 0x50)
16333f78ab5SHaijun Liu #define DPMAIF_DL_CHK_BUSY			(BASE_DPMAIF_DL + 0xb4)
16433f78ab5SHaijun Liu 
16533f78ab5SHaijun Liu #define DPMAIF_AP_L2TISAR0			(BASE_DPMAIF_AP_MISC + 0x00)
16633f78ab5SHaijun Liu #define DPMAIF_AP_APDL_L2TISAR0			(BASE_DPMAIF_AP_MISC + 0x50)
16733f78ab5SHaijun Liu #define DPMAIF_AP_IP_BUSY			(BASE_DPMAIF_AP_MISC + 0x60)
16833f78ab5SHaijun Liu #define DPMAIF_AP_CG_EN				(BASE_DPMAIF_AP_MISC + 0x68)
16933f78ab5SHaijun Liu #define DPMAIF_AP_OVERWRITE_CFG			(BASE_DPMAIF_AP_MISC + 0x90)
17033f78ab5SHaijun Liu #define DPMAIF_AP_MEM_CLR			(BASE_DPMAIF_AP_MISC + 0x94)
17133f78ab5SHaijun Liu #define DPMAIF_AP_ALL_L2TISAR0_MASK		GENMASK(31, 0)
17233f78ab5SHaijun Liu #define DPMAIF_AP_APDL_ALL_L2TISAR0_MASK	GENMASK(31, 0)
17333f78ab5SHaijun Liu #define DPMAIF_AP_IP_BUSY_MASK			GENMASK(31, 0)
17433f78ab5SHaijun Liu 
17533f78ab5SHaijun Liu #define DPMAIF_AO_UL_INIT_SET			(BASE_DPMAIF_AO_UL + 0x0)
17633f78ab5SHaijun Liu #define DPMAIF_AO_UL_CHNL_ARB0			(BASE_DPMAIF_AO_UL + 0x1c)
17733f78ab5SHaijun Liu #define DPMAIF_AO_UL_AP_L2TIMR0			(BASE_DPMAIF_AO_UL + 0x80)
17833f78ab5SHaijun Liu #define DPMAIF_AO_UL_AP_L2TIMCR0		(BASE_DPMAIF_AO_UL + 0x84)
17933f78ab5SHaijun Liu #define DPMAIF_AO_UL_AP_L2TIMSR0		(BASE_DPMAIF_AO_UL + 0x88)
18033f78ab5SHaijun Liu #define DPMAIF_AO_UL_AP_L1TIMR0			(BASE_DPMAIF_AO_UL + 0x8c)
18133f78ab5SHaijun Liu #define DPMAIF_AO_UL_APDL_L2TIMR0		(BASE_DPMAIF_AO_UL + 0x90)
18233f78ab5SHaijun Liu #define DPMAIF_AO_UL_APDL_L2TIMCR0		(BASE_DPMAIF_AO_UL + 0x94)
18333f78ab5SHaijun Liu #define DPMAIF_AO_UL_APDL_L2TIMSR0		(BASE_DPMAIF_AO_UL + 0x98)
18433f78ab5SHaijun Liu #define DPMAIF_AO_AP_DLUL_IP_BUSY_MASK		(BASE_DPMAIF_AO_UL + 0x9c)
18533f78ab5SHaijun Liu 
18633f78ab5SHaijun Liu #define DPMAIF_AO_UL_CHNL0_CON0			(BASE_DPMAIF_PD_SRAM_UL + 0x10)
18733f78ab5SHaijun Liu #define DPMAIF_AO_UL_CHNL0_CON1			(BASE_DPMAIF_PD_SRAM_UL + 0x14)
18833f78ab5SHaijun Liu #define DPMAIF_AO_UL_CHNL0_CON2			(BASE_DPMAIF_PD_SRAM_UL + 0x18)
18933f78ab5SHaijun Liu #define DPMAIF_AO_UL_CH0_STA			(BASE_DPMAIF_PD_SRAM_UL + 0x70)
19033f78ab5SHaijun Liu 
19133f78ab5SHaijun Liu #define DPMAIF_AO_DL_INIT_SET			(BASE_DPMAIF_AO_DL + 0x00)
19233f78ab5SHaijun Liu #define DPMAIF_AO_DL_IRQ_MASK			(BASE_DPMAIF_AO_DL + 0x0c)
19333f78ab5SHaijun Liu #define DPMAIF_AO_DL_DLQPIT_INIT_CON5		(BASE_DPMAIF_AO_DL + 0x28)
19433f78ab5SHaijun Liu #define DPMAIF_AO_DL_DLQPIT_TRIG_THRES		(BASE_DPMAIF_AO_DL + 0x34)
19533f78ab5SHaijun Liu 
19633f78ab5SHaijun Liu #define DPMAIF_AO_DL_PKTINFO_CON0		(BASE_DPMAIF_PD_SRAM_DL + 0x00)
19733f78ab5SHaijun Liu #define DPMAIF_AO_DL_PKTINFO_CON1		(BASE_DPMAIF_PD_SRAM_DL + 0x04)
19833f78ab5SHaijun Liu #define DPMAIF_AO_DL_PKTINFO_CON2		(BASE_DPMAIF_PD_SRAM_DL + 0x08)
19933f78ab5SHaijun Liu #define DPMAIF_AO_DL_RDY_CHK_THRES		(BASE_DPMAIF_PD_SRAM_DL + 0x0c)
20033f78ab5SHaijun Liu #define DPMAIF_AO_DL_RDY_CHK_FRG_THRES		(BASE_DPMAIF_PD_SRAM_DL + 0x10)
20133f78ab5SHaijun Liu 
20233f78ab5SHaijun Liu #define DPMAIF_AO_DL_DLQ_AGG_CFG		(BASE_DPMAIF_PD_SRAM_DL + 0x20)
20333f78ab5SHaijun Liu #define DPMAIF_AO_DL_DLQPIT_TIMEOUT0		(BASE_DPMAIF_PD_SRAM_DL + 0x24)
20433f78ab5SHaijun Liu #define DPMAIF_AO_DL_DLQPIT_TIMEOUT1		(BASE_DPMAIF_PD_SRAM_DL + 0x28)
20533f78ab5SHaijun Liu #define DPMAIF_AO_DL_HPC_CNTL			(BASE_DPMAIF_PD_SRAM_DL + 0x38)
20633f78ab5SHaijun Liu #define DPMAIF_AO_DL_PIT_SEQ_END		(BASE_DPMAIF_PD_SRAM_DL + 0x40)
20733f78ab5SHaijun Liu 
20833f78ab5SHaijun Liu #define DPMAIF_AO_DL_BAT_RD_IDX			(BASE_DPMAIF_PD_SRAM_DL + 0xd8)
20933f78ab5SHaijun Liu #define DPMAIF_AO_DL_BAT_WR_IDX			(BASE_DPMAIF_PD_SRAM_DL + 0xdc)
21033f78ab5SHaijun Liu #define DPMAIF_AO_DL_PIT_RD_IDX			(BASE_DPMAIF_PD_SRAM_DL + 0xec)
21133f78ab5SHaijun Liu #define DPMAIF_AO_DL_PIT_WR_IDX			(BASE_DPMAIF_PD_SRAM_DL + 0x60)
21233f78ab5SHaijun Liu #define DPMAIF_AO_DL_FRGBAT_RD_IDX		(BASE_DPMAIF_PD_SRAM_DL + 0x78)
21333f78ab5SHaijun Liu #define DPMAIF_AO_DL_DLQ_WR_IDX			(BASE_DPMAIF_PD_SRAM_DL + 0xa4)
21433f78ab5SHaijun Liu 
21533f78ab5SHaijun Liu #define DPMAIF_HPC_INTR_MASK			(BASE_DPMAIF_MMW_HPC + 0x0f4)
21633f78ab5SHaijun Liu #define DPMA_HPC_ALL_INT_MASK			GENMASK(15, 0)
21733f78ab5SHaijun Liu 
21833f78ab5SHaijun Liu #define DPMAIF_HPC_DLQ_PATH_MODE		3
21933f78ab5SHaijun Liu #define DPMAIF_HPC_ADD_MODE_DF			0
22033f78ab5SHaijun Liu #define DPMAIF_HPC_TOTAL_NUM			8
22133f78ab5SHaijun Liu #define DPMAIF_HPC_MAX_TOTAL_NUM		8
22233f78ab5SHaijun Liu 
22333f78ab5SHaijun Liu #define DPMAIF_DL_DLQPIT_INIT			(BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x00)
22433f78ab5SHaijun Liu #define DPMAIF_DL_DLQPIT_ADD			(BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x10)
22533f78ab5SHaijun Liu #define DPMAIF_DL_DLQPIT_INIT_CON0		(BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x14)
22633f78ab5SHaijun Liu #define DPMAIF_DL_DLQPIT_INIT_CON1		(BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x18)
22733f78ab5SHaijun Liu #define DPMAIF_DL_DLQPIT_INIT_CON2		(BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x1c)
22833f78ab5SHaijun Liu #define DPMAIF_DL_DLQPIT_INIT_CON3		(BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x20)
22933f78ab5SHaijun Liu #define DPMAIF_DL_DLQPIT_INIT_CON4		(BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x24)
23033f78ab5SHaijun Liu #define DPMAIF_DL_DLQPIT_INIT_CON5		(BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x28)
23133f78ab5SHaijun Liu #define DPMAIF_DL_DLQPIT_INIT_CON6		(BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x2c)
23233f78ab5SHaijun Liu 
23333f78ab5SHaijun Liu #define DPMAIF_ULQSAR_n(q)			(DPMAIF_AO_UL_CHNL0_CON0 + 0x10 * (q))
23433f78ab5SHaijun Liu #define DPMAIF_UL_DRBSIZE_ADDRH_n(q)		(DPMAIF_AO_UL_CHNL0_CON1 + 0x10 * (q))
23533f78ab5SHaijun Liu #define DPMAIF_UL_DRB_ADDRH_n(q)		(DPMAIF_AO_UL_CHNL0_CON2 + 0x10 * (q))
23633f78ab5SHaijun Liu #define DPMAIF_ULQ_STA0_n(q)			(DPMAIF_AO_UL_CH0_STA + 0x04 * (q))
23733f78ab5SHaijun Liu #define DPMAIF_ULQ_ADD_DESC_CH_n(q)		(DPMAIF_UL_ADD_DESC_CH0 + 0x04 * (q))
23833f78ab5SHaijun Liu 
23933f78ab5SHaijun Liu #define DPMAIF_UL_DRB_RIDX_MSK			GENMASK(31, 16)
24033f78ab5SHaijun Liu 
24133f78ab5SHaijun Liu #define DPMAIF_AP_RGU_ASSERT			0x10001150
24233f78ab5SHaijun Liu #define DPMAIF_AP_RGU_DEASSERT			0x10001154
24333f78ab5SHaijun Liu #define DPMAIF_AP_RST_BIT			BIT(2)
24433f78ab5SHaijun Liu 
24533f78ab5SHaijun Liu #define DPMAIF_AP_AO_RGU_ASSERT			0x10001140
24633f78ab5SHaijun Liu #define DPMAIF_AP_AO_RGU_DEASSERT		0x10001144
24733f78ab5SHaijun Liu #define DPMAIF_AP_AO_RST_BIT			BIT(6)
24833f78ab5SHaijun Liu 
24933f78ab5SHaijun Liu /* DPMAIF init/restore */
25033f78ab5SHaijun Liu #define DPMAIF_UL_ADD_NOT_READY			BIT(31)
25133f78ab5SHaijun Liu #define DPMAIF_UL_ADD_UPDATE			BIT(31)
25233f78ab5SHaijun Liu #define DPMAIF_UL_ADD_COUNT_MASK		GENMASK(15, 0)
25333f78ab5SHaijun Liu #define DPMAIF_UL_ALL_QUE_ARB_EN		GENMASK(11, 8)
25433f78ab5SHaijun Liu 
25533f78ab5SHaijun Liu #define DPMAIF_DL_ADD_UPDATE			BIT(31)
25633f78ab5SHaijun Liu #define DPMAIF_DL_ADD_NOT_READY			BIT(31)
25733f78ab5SHaijun Liu #define DPMAIF_DL_FRG_ADD_UPDATE		BIT(16)
25833f78ab5SHaijun Liu #define DPMAIF_DL_ADD_COUNT_MASK		GENMASK(15, 0)
25933f78ab5SHaijun Liu 
26033f78ab5SHaijun Liu #define DPMAIF_DL_BAT_INIT_ALLSET		BIT(0)
26133f78ab5SHaijun Liu #define DPMAIF_DL_BAT_FRG_INIT			BIT(16)
26233f78ab5SHaijun Liu #define DPMAIF_DL_BAT_INIT_EN			BIT(31)
26333f78ab5SHaijun Liu #define DPMAIF_DL_BAT_INIT_NOT_READY		BIT(31)
26433f78ab5SHaijun Liu #define DPMAIF_DL_BAT_INIT_ONLY_ENABLE_BIT	0
26533f78ab5SHaijun Liu 
26633f78ab5SHaijun Liu #define DPMAIF_DL_PIT_INIT_ALLSET		BIT(0)
26733f78ab5SHaijun Liu #define DPMAIF_DL_PIT_INIT_EN			BIT(31)
26833f78ab5SHaijun Liu #define DPMAIF_DL_PIT_INIT_NOT_READY		BIT(31)
26933f78ab5SHaijun Liu 
27033f78ab5SHaijun Liu #define DPMAIF_BAT_REMAIN_SZ_BASE		16
27133f78ab5SHaijun Liu #define DPMAIF_BAT_BUFFER_SZ_BASE		128
27233f78ab5SHaijun Liu #define DPMAIF_FRG_BUFFER_SZ_BASE		128
27333f78ab5SHaijun Liu 
27433f78ab5SHaijun Liu #define DLQ_PIT_IDX_SIZE			0x20
27533f78ab5SHaijun Liu 
27633f78ab5SHaijun Liu #define DPMAIF_PIT_SIZE_MSK			GENMASK(17, 0)
27733f78ab5SHaijun Liu 
27833f78ab5SHaijun Liu #define DPMAIF_PIT_REM_CNT_MSK			GENMASK(17, 0)
27933f78ab5SHaijun Liu 
28033f78ab5SHaijun Liu #define DPMAIF_BAT_EN_MSK			BIT(16)
28133f78ab5SHaijun Liu #define DPMAIF_FRG_EN_MSK			BIT(28)
28233f78ab5SHaijun Liu #define DPMAIF_BAT_SIZE_MSK			GENMASK(15, 0)
28333f78ab5SHaijun Liu 
28433f78ab5SHaijun Liu #define DPMAIF_BAT_BID_MAXCNT_MSK		GENMASK(31, 16)
28533f78ab5SHaijun Liu #define DPMAIF_BAT_REMAIN_MINSZ_MSK		GENMASK(15, 8)
28633f78ab5SHaijun Liu #define DPMAIF_PIT_CHK_NUM_MSK			GENMASK(31, 24)
28733f78ab5SHaijun Liu #define DPMAIF_BAT_BUF_SZ_MSK			GENMASK(16, 8)
28833f78ab5SHaijun Liu #define DPMAIF_FRG_BUF_SZ_MSK			GENMASK(16, 8)
28933f78ab5SHaijun Liu #define DPMAIF_BAT_RSV_LEN_MSK			GENMASK(7, 0)
29033f78ab5SHaijun Liu #define DPMAIF_PKT_ALIGN_MSK			GENMASK(23, 22)
29133f78ab5SHaijun Liu 
29233f78ab5SHaijun Liu #define DPMAIF_BAT_CHECK_THRES_MSK		GENMASK(21, 16)
29333f78ab5SHaijun Liu #define DPMAIF_FRG_CHECK_THRES_MSK		GENMASK(7, 0)
29433f78ab5SHaijun Liu 
29533f78ab5SHaijun Liu #define DPMAIF_PKT_ALIGN_EN			BIT(23)
29633f78ab5SHaijun Liu 
29733f78ab5SHaijun Liu #define DPMAIF_DRB_SIZE_MSK			GENMASK(15, 0)
29833f78ab5SHaijun Liu 
29933f78ab5SHaijun Liu #define DPMAIF_DL_RD_WR_IDX_MSK			GENMASK(17, 0)
30033f78ab5SHaijun Liu 
30133f78ab5SHaijun Liu /* DPMAIF_UL_CHK_BUSY */
30233f78ab5SHaijun Liu #define DPMAIF_UL_IDLE_STS			BIT(11)
30333f78ab5SHaijun Liu /* DPMAIF_DL_CHK_BUSY */
30433f78ab5SHaijun Liu #define DPMAIF_DL_IDLE_STS			BIT(23)
30533f78ab5SHaijun Liu /* DPMAIF_AO_DL_RDY_CHK_THRES */
30633f78ab5SHaijun Liu #define DPMAIF_DL_PKT_CHECKSUM_EN		BIT(31)
30733f78ab5SHaijun Liu #define DPMAIF_PORT_MODE_PCIE			BIT(30)
30833f78ab5SHaijun Liu #define DPMAIF_DL_BURST_PIT_EN			BIT(13)
30933f78ab5SHaijun Liu /* DPMAIF_DL_BAT_INIT_CON1 */
31033f78ab5SHaijun Liu #define DPMAIF_DL_BAT_CACHE_PRI			BIT(22)
31133f78ab5SHaijun Liu /* DPMAIF_AP_MEM_CLR */
31233f78ab5SHaijun Liu #define DPMAIF_MEM_CLR				BIT(0)
31333f78ab5SHaijun Liu /* DPMAIF_AP_OVERWRITE_CFG */
31433f78ab5SHaijun Liu #define DPMAIF_SRAM_SYNC			BIT(0)
31533f78ab5SHaijun Liu /* DPMAIF_AO_UL_INIT_SET */
31633f78ab5SHaijun Liu #define DPMAIF_UL_INIT_DONE			BIT(0)
31733f78ab5SHaijun Liu /* DPMAIF_AO_DL_INIT_SET */
31833f78ab5SHaijun Liu #define DPMAIF_DL_INIT_DONE			BIT(0)
31933f78ab5SHaijun Liu /* DPMAIF_AO_DL_PIT_SEQ_END */
32033f78ab5SHaijun Liu #define DPMAIF_DL_PIT_SEQ_MSK			GENMASK(7, 0)
32133f78ab5SHaijun Liu /* DPMAIF_UL_RESERVE_AO_RW */
32233f78ab5SHaijun Liu #define DPMAIF_PCIE_MODE_SET_VALUE		0x55
32333f78ab5SHaijun Liu /* DPMAIF_AP_CG_EN */
32433f78ab5SHaijun Liu #define DPMAIF_CG_EN				0x7f
32533f78ab5SHaijun Liu 
32633f78ab5SHaijun Liu #define DPMAIF_UDL_IP_BUSY			BIT(0)
32733f78ab5SHaijun Liu #define DPMAIF_DL_INT_DLQ0_QDONE		BIT(8)
32833f78ab5SHaijun Liu #define DPMAIF_DL_INT_DLQ1_QDONE		BIT(9)
32933f78ab5SHaijun Liu #define DPMAIF_DL_INT_DLQ0_PITCNT_LEN		BIT(10)
33033f78ab5SHaijun Liu #define DPMAIF_DL_INT_DLQ1_PITCNT_LEN		BIT(11)
33133f78ab5SHaijun Liu #define DPMAIF_DL_INT_Q2TOQ1			BIT(24)
33233f78ab5SHaijun Liu #define DPMAIF_DL_INT_Q2APTOP			BIT(25)
33333f78ab5SHaijun Liu 
33433f78ab5SHaijun Liu #define DPMAIF_DLQ_LOW_TIMEOUT_THRES_MKS	GENMASK(15, 0)
33533f78ab5SHaijun Liu #define DPMAIF_DLQ_HIGH_TIMEOUT_THRES_MSK	GENMASK(31, 16)
33633f78ab5SHaijun Liu 
33733f78ab5SHaijun Liu /* DPMAIF DLQ HW configure */
33833f78ab5SHaijun Liu #define DPMAIF_AGG_MAX_LEN_DF			65535
33933f78ab5SHaijun Liu #define DPMAIF_AGG_TBL_ENT_NUM_DF		50
34033f78ab5SHaijun Liu #define DPMAIF_HASH_PRIME_DF			13
34133f78ab5SHaijun Liu #define DPMAIF_MID_TIMEOUT_THRES_DF		100
34233f78ab5SHaijun Liu #define DPMAIF_DLQ_TIMEOUT_THRES_DF		100
34333f78ab5SHaijun Liu #define DPMAIF_DLQ_PRS_THRES_DF			10
34433f78ab5SHaijun Liu #define DPMAIF_DLQ_HASH_BIT_CHOOSE_DF		0
34533f78ab5SHaijun Liu 
34633f78ab5SHaijun Liu #define DPMAIF_DLQPIT_EN_MSK			BIT(20)
34733f78ab5SHaijun Liu #define DPMAIF_DLQPIT_CHAN_OFS			16
34833f78ab5SHaijun Liu #define DPMAIF_ADD_DLQ_PIT_CHAN_OFS		20
34933f78ab5SHaijun Liu 
35039d43904SHaijun Liu #endif /* __T7XX_REG_H__ */
351