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