162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci * 362306a36Sopenharmony_ci * Copyright (c) 2021, MediaTek Inc. 462306a36Sopenharmony_ci * Copyright (c) 2021-2022, Intel Corporation. 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * Authors: 762306a36Sopenharmony_ci * Haijun Liu <haijun.liu@mediatek.com> 862306a36Sopenharmony_ci * Chiranjeevi Rapolu <chiranjeevi.rapolu@intel.com> 962306a36Sopenharmony_ci * 1062306a36Sopenharmony_ci * Contributors: 1162306a36Sopenharmony_ci * Amir Hanania <amir.hanania@intel.com> 1262306a36Sopenharmony_ci * Andy Shevchenko <andriy.shevchenko@linux.intel.com> 1362306a36Sopenharmony_ci * Eliot Lee <eliot.lee@intel.com> 1462306a36Sopenharmony_ci * Moises Veleta <moises.veleta@intel.com> 1562306a36Sopenharmony_ci * Ricardo Martinez <ricardo.martinez@linux.intel.com> 1662306a36Sopenharmony_ci * Sreehari Kancharla <sreehari.kancharla@intel.com> 1762306a36Sopenharmony_ci */ 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci#ifndef __T7XX_REG_H__ 2062306a36Sopenharmony_ci#define __T7XX_REG_H__ 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci#include <linux/bits.h> 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci/* Device base address offset */ 2562306a36Sopenharmony_ci#define MHCCIF_RC_DEV_BASE 0x10024000 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci#define REG_RC2EP_SW_BSY 0x04 2862306a36Sopenharmony_ci#define REG_RC2EP_SW_INT_START 0x08 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci#define REG_RC2EP_SW_TCHNUM 0x0c 3162306a36Sopenharmony_ci#define H2D_CH_EXCEPTION_ACK 1 3262306a36Sopenharmony_ci#define H2D_CH_EXCEPTION_CLEARQ_ACK 2 3362306a36Sopenharmony_ci#define H2D_CH_DS_LOCK 3 3462306a36Sopenharmony_ci/* Channels 4-8 are reserved */ 3562306a36Sopenharmony_ci#define H2D_CH_SUSPEND_REQ 9 3662306a36Sopenharmony_ci#define H2D_CH_RESUME_REQ 10 3762306a36Sopenharmony_ci#define H2D_CH_SUSPEND_REQ_AP 11 3862306a36Sopenharmony_ci#define H2D_CH_RESUME_REQ_AP 12 3962306a36Sopenharmony_ci#define H2D_CH_DEVICE_RESET 13 4062306a36Sopenharmony_ci#define H2D_CH_DRM_DISABLE_AP 14 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci#define REG_EP2RC_SW_INT_STS 0x10 4362306a36Sopenharmony_ci#define REG_EP2RC_SW_INT_ACK 0x14 4462306a36Sopenharmony_ci#define REG_EP2RC_SW_INT_EAP_MASK 0x20 4562306a36Sopenharmony_ci#define REG_EP2RC_SW_INT_EAP_MASK_SET 0x30 4662306a36Sopenharmony_ci#define REG_EP2RC_SW_INT_EAP_MASK_CLR 0x40 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci#define D2H_INT_DS_LOCK_ACK BIT(0) 4962306a36Sopenharmony_ci#define D2H_INT_EXCEPTION_INIT BIT(1) 5062306a36Sopenharmony_ci#define D2H_INT_EXCEPTION_INIT_DONE BIT(2) 5162306a36Sopenharmony_ci#define D2H_INT_EXCEPTION_CLEARQ_DONE BIT(3) 5262306a36Sopenharmony_ci#define D2H_INT_EXCEPTION_ALLQ_RESET BIT(4) 5362306a36Sopenharmony_ci#define D2H_INT_PORT_ENUM BIT(5) 5462306a36Sopenharmony_ci/* Bits 6-10 are reserved */ 5562306a36Sopenharmony_ci#define D2H_INT_SUSPEND_ACK BIT(11) 5662306a36Sopenharmony_ci#define D2H_INT_RESUME_ACK BIT(12) 5762306a36Sopenharmony_ci#define D2H_INT_SUSPEND_ACK_AP BIT(13) 5862306a36Sopenharmony_ci#define D2H_INT_RESUME_ACK_AP BIT(14) 5962306a36Sopenharmony_ci#define D2H_INT_ASYNC_AP_HK BIT(15) 6062306a36Sopenharmony_ci#define D2H_INT_ASYNC_MD_HK BIT(16) 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ci/* Register base */ 6362306a36Sopenharmony_ci#define INFRACFG_AO_DEV_CHIP 0x10001000 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci/* ATR setting */ 6662306a36Sopenharmony_ci#define T7XX_PCIE_REG_TRSL_ADDR_CHIP 0x10000000 6762306a36Sopenharmony_ci#define T7XX_PCIE_REG_SIZE_CHIP 0x00400000 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci/* Reset Generic Unit (RGU) */ 7062306a36Sopenharmony_ci#define TOPRGU_CH_PCIE_IRQ_STA 0x1000790c 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci#define ATR_PORT_OFFSET 0x100 7362306a36Sopenharmony_ci#define ATR_TABLE_OFFSET 0x20 7462306a36Sopenharmony_ci#define ATR_TABLE_NUM_PER_ATR 8 7562306a36Sopenharmony_ci#define ATR_TRANSPARENT_SIZE 0x3f 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci/* PCIE_MAC_IREG Register Definition */ 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci#define ISTAT_HST_CTRL 0x01ac 8062306a36Sopenharmony_ci#define ISTAT_HST_CTRL_DIS BIT(0) 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci#define T7XX_PCIE_MISC_CTRL 0x0348 8362306a36Sopenharmony_ci#define T7XX_PCIE_MISC_MAC_SLEEP_DIS BIT(7) 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci#define T7XX_PCIE_CFG_MSIX 0x03ec 8662306a36Sopenharmony_ci#define ATR_PCIE_WIN0_T0_ATR_PARAM_SRC_ADDR 0x0600 8762306a36Sopenharmony_ci#define ATR_PCIE_WIN0_T0_TRSL_ADDR 0x0608 8862306a36Sopenharmony_ci#define ATR_PCIE_WIN0_T0_TRSL_PARAM 0x0610 8962306a36Sopenharmony_ci#define ATR_PCIE_WIN0_ADDR_ALGMT GENMASK_ULL(63, 12) 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci#define ATR_SRC_ADDR_INVALID 0x007f 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ci#define T7XX_PCIE_PM_RESUME_STATE 0x0d0c 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_cienum t7xx_pm_resume_state { 9662306a36Sopenharmony_ci PM_RESUME_REG_STATE_L3, 9762306a36Sopenharmony_ci PM_RESUME_REG_STATE_L1, 9862306a36Sopenharmony_ci PM_RESUME_REG_STATE_INIT, 9962306a36Sopenharmony_ci PM_RESUME_REG_STATE_EXP, 10062306a36Sopenharmony_ci PM_RESUME_REG_STATE_L2, 10162306a36Sopenharmony_ci PM_RESUME_REG_STATE_L2_EXP, 10262306a36Sopenharmony_ci}; 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ci#define T7XX_PCIE_MISC_DEV_STATUS 0x0d1c 10562306a36Sopenharmony_ci#define MISC_STAGE_MASK GENMASK(2, 0) 10662306a36Sopenharmony_ci#define MISC_RESET_TYPE_PLDR BIT(26) 10762306a36Sopenharmony_ci#define MISC_RESET_TYPE_FLDR BIT(27) 10862306a36Sopenharmony_ci#define LINUX_STAGE 4 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ci#define T7XX_PCIE_RESOURCE_STATUS 0x0d28 11162306a36Sopenharmony_ci#define T7XX_PCIE_RESOURCE_STS_MSK GENMASK(4, 0) 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ci#define DISABLE_ASPM_LOWPWR 0x0e50 11462306a36Sopenharmony_ci#define ENABLE_ASPM_LOWPWR 0x0e54 11562306a36Sopenharmony_ci#define T7XX_L1_BIT(i) BIT((i) * 4 + 1) 11662306a36Sopenharmony_ci#define T7XX_L1_1_BIT(i) BIT((i) * 4 + 2) 11762306a36Sopenharmony_ci#define T7XX_L1_2_BIT(i) BIT((i) * 4 + 3) 11862306a36Sopenharmony_ci 11962306a36Sopenharmony_ci#define MSIX_ISTAT_HST_GRP0_0 0x0f00 12062306a36Sopenharmony_ci#define IMASK_HOST_MSIX_SET_GRP0_0 0x3000 12162306a36Sopenharmony_ci#define IMASK_HOST_MSIX_CLR_GRP0_0 0x3080 12262306a36Sopenharmony_ci#define EXT_INT_START 24 12362306a36Sopenharmony_ci#define EXT_INT_NUM 8 12462306a36Sopenharmony_ci#define MSIX_MSK_SET_ALL GENMASK(31, 24) 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_cienum t7xx_int { 12762306a36Sopenharmony_ci DPMAIF_INT, 12862306a36Sopenharmony_ci CLDMA0_INT, 12962306a36Sopenharmony_ci CLDMA1_INT, 13062306a36Sopenharmony_ci CLDMA2_INT, 13162306a36Sopenharmony_ci MHCCIF_INT, 13262306a36Sopenharmony_ci DPMAIF2_INT, 13362306a36Sopenharmony_ci SAP_RGU_INT, 13462306a36Sopenharmony_ci CLDMA3_INT, 13562306a36Sopenharmony_ci}; 13662306a36Sopenharmony_ci 13762306a36Sopenharmony_ci/* DPMA definitions */ 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ci#define DPMAIF_PD_BASE 0x1022d000 14062306a36Sopenharmony_ci#define BASE_DPMAIF_UL DPMAIF_PD_BASE 14162306a36Sopenharmony_ci#define BASE_DPMAIF_DL (DPMAIF_PD_BASE + 0x100) 14262306a36Sopenharmony_ci#define BASE_DPMAIF_AP_MISC (DPMAIF_PD_BASE + 0x400) 14362306a36Sopenharmony_ci#define BASE_DPMAIF_MMW_HPC (DPMAIF_PD_BASE + 0x600) 14462306a36Sopenharmony_ci#define BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX (DPMAIF_PD_BASE + 0x900) 14562306a36Sopenharmony_ci#define BASE_DPMAIF_PD_SRAM_DL (DPMAIF_PD_BASE + 0xc00) 14662306a36Sopenharmony_ci#define BASE_DPMAIF_PD_SRAM_UL (DPMAIF_PD_BASE + 0xd00) 14762306a36Sopenharmony_ci 14862306a36Sopenharmony_ci#define DPMAIF_AO_BASE 0x10014000 14962306a36Sopenharmony_ci#define BASE_DPMAIF_AO_UL DPMAIF_AO_BASE 15062306a36Sopenharmony_ci#define BASE_DPMAIF_AO_DL (DPMAIF_AO_BASE + 0x400) 15162306a36Sopenharmony_ci 15262306a36Sopenharmony_ci#define DPMAIF_UL_ADD_DESC (BASE_DPMAIF_UL + 0x00) 15362306a36Sopenharmony_ci#define DPMAIF_UL_CHK_BUSY (BASE_DPMAIF_UL + 0x88) 15462306a36Sopenharmony_ci#define DPMAIF_UL_RESERVE_AO_RW (BASE_DPMAIF_UL + 0xac) 15562306a36Sopenharmony_ci#define DPMAIF_UL_ADD_DESC_CH0 (BASE_DPMAIF_UL + 0xb0) 15662306a36Sopenharmony_ci 15762306a36Sopenharmony_ci#define DPMAIF_DL_BAT_INIT (BASE_DPMAIF_DL + 0x00) 15862306a36Sopenharmony_ci#define DPMAIF_DL_BAT_ADD (BASE_DPMAIF_DL + 0x04) 15962306a36Sopenharmony_ci#define DPMAIF_DL_BAT_INIT_CON0 (BASE_DPMAIF_DL + 0x08) 16062306a36Sopenharmony_ci#define DPMAIF_DL_BAT_INIT_CON1 (BASE_DPMAIF_DL + 0x0c) 16162306a36Sopenharmony_ci#define DPMAIF_DL_BAT_INIT_CON2 (BASE_DPMAIF_DL + 0x10) 16262306a36Sopenharmony_ci#define DPMAIF_DL_BAT_INIT_CON3 (BASE_DPMAIF_DL + 0x50) 16362306a36Sopenharmony_ci#define DPMAIF_DL_CHK_BUSY (BASE_DPMAIF_DL + 0xb4) 16462306a36Sopenharmony_ci 16562306a36Sopenharmony_ci#define DPMAIF_AP_L2TISAR0 (BASE_DPMAIF_AP_MISC + 0x00) 16662306a36Sopenharmony_ci#define DPMAIF_AP_APDL_L2TISAR0 (BASE_DPMAIF_AP_MISC + 0x50) 16762306a36Sopenharmony_ci#define DPMAIF_AP_IP_BUSY (BASE_DPMAIF_AP_MISC + 0x60) 16862306a36Sopenharmony_ci#define DPMAIF_AP_CG_EN (BASE_DPMAIF_AP_MISC + 0x68) 16962306a36Sopenharmony_ci#define DPMAIF_AP_OVERWRITE_CFG (BASE_DPMAIF_AP_MISC + 0x90) 17062306a36Sopenharmony_ci#define DPMAIF_AP_MEM_CLR (BASE_DPMAIF_AP_MISC + 0x94) 17162306a36Sopenharmony_ci#define DPMAIF_AP_ALL_L2TISAR0_MASK GENMASK(31, 0) 17262306a36Sopenharmony_ci#define DPMAIF_AP_APDL_ALL_L2TISAR0_MASK GENMASK(31, 0) 17362306a36Sopenharmony_ci#define DPMAIF_AP_IP_BUSY_MASK GENMASK(31, 0) 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ci#define DPMAIF_AO_UL_INIT_SET (BASE_DPMAIF_AO_UL + 0x0) 17662306a36Sopenharmony_ci#define DPMAIF_AO_UL_CHNL_ARB0 (BASE_DPMAIF_AO_UL + 0x1c) 17762306a36Sopenharmony_ci#define DPMAIF_AO_UL_AP_L2TIMR0 (BASE_DPMAIF_AO_UL + 0x80) 17862306a36Sopenharmony_ci#define DPMAIF_AO_UL_AP_L2TIMCR0 (BASE_DPMAIF_AO_UL + 0x84) 17962306a36Sopenharmony_ci#define DPMAIF_AO_UL_AP_L2TIMSR0 (BASE_DPMAIF_AO_UL + 0x88) 18062306a36Sopenharmony_ci#define DPMAIF_AO_UL_AP_L1TIMR0 (BASE_DPMAIF_AO_UL + 0x8c) 18162306a36Sopenharmony_ci#define DPMAIF_AO_UL_APDL_L2TIMR0 (BASE_DPMAIF_AO_UL + 0x90) 18262306a36Sopenharmony_ci#define DPMAIF_AO_UL_APDL_L2TIMCR0 (BASE_DPMAIF_AO_UL + 0x94) 18362306a36Sopenharmony_ci#define DPMAIF_AO_UL_APDL_L2TIMSR0 (BASE_DPMAIF_AO_UL + 0x98) 18462306a36Sopenharmony_ci#define DPMAIF_AO_AP_DLUL_IP_BUSY_MASK (BASE_DPMAIF_AO_UL + 0x9c) 18562306a36Sopenharmony_ci 18662306a36Sopenharmony_ci#define DPMAIF_AO_UL_CHNL0_CON0 (BASE_DPMAIF_PD_SRAM_UL + 0x10) 18762306a36Sopenharmony_ci#define DPMAIF_AO_UL_CHNL0_CON1 (BASE_DPMAIF_PD_SRAM_UL + 0x14) 18862306a36Sopenharmony_ci#define DPMAIF_AO_UL_CHNL0_CON2 (BASE_DPMAIF_PD_SRAM_UL + 0x18) 18962306a36Sopenharmony_ci#define DPMAIF_AO_UL_CH0_STA (BASE_DPMAIF_PD_SRAM_UL + 0x70) 19062306a36Sopenharmony_ci 19162306a36Sopenharmony_ci#define DPMAIF_AO_DL_INIT_SET (BASE_DPMAIF_AO_DL + 0x00) 19262306a36Sopenharmony_ci#define DPMAIF_AO_DL_IRQ_MASK (BASE_DPMAIF_AO_DL + 0x0c) 19362306a36Sopenharmony_ci#define DPMAIF_AO_DL_DLQPIT_INIT_CON5 (BASE_DPMAIF_AO_DL + 0x28) 19462306a36Sopenharmony_ci#define DPMAIF_AO_DL_DLQPIT_TRIG_THRES (BASE_DPMAIF_AO_DL + 0x34) 19562306a36Sopenharmony_ci 19662306a36Sopenharmony_ci#define DPMAIF_AO_DL_PKTINFO_CON0 (BASE_DPMAIF_PD_SRAM_DL + 0x00) 19762306a36Sopenharmony_ci#define DPMAIF_AO_DL_PKTINFO_CON1 (BASE_DPMAIF_PD_SRAM_DL + 0x04) 19862306a36Sopenharmony_ci#define DPMAIF_AO_DL_PKTINFO_CON2 (BASE_DPMAIF_PD_SRAM_DL + 0x08) 19962306a36Sopenharmony_ci#define DPMAIF_AO_DL_RDY_CHK_THRES (BASE_DPMAIF_PD_SRAM_DL + 0x0c) 20062306a36Sopenharmony_ci#define DPMAIF_AO_DL_RDY_CHK_FRG_THRES (BASE_DPMAIF_PD_SRAM_DL + 0x10) 20162306a36Sopenharmony_ci 20262306a36Sopenharmony_ci#define DPMAIF_AO_DL_DLQ_AGG_CFG (BASE_DPMAIF_PD_SRAM_DL + 0x20) 20362306a36Sopenharmony_ci#define DPMAIF_AO_DL_DLQPIT_TIMEOUT0 (BASE_DPMAIF_PD_SRAM_DL + 0x24) 20462306a36Sopenharmony_ci#define DPMAIF_AO_DL_DLQPIT_TIMEOUT1 (BASE_DPMAIF_PD_SRAM_DL + 0x28) 20562306a36Sopenharmony_ci#define DPMAIF_AO_DL_HPC_CNTL (BASE_DPMAIF_PD_SRAM_DL + 0x38) 20662306a36Sopenharmony_ci#define DPMAIF_AO_DL_PIT_SEQ_END (BASE_DPMAIF_PD_SRAM_DL + 0x40) 20762306a36Sopenharmony_ci 20862306a36Sopenharmony_ci#define DPMAIF_AO_DL_BAT_RD_IDX (BASE_DPMAIF_PD_SRAM_DL + 0xd8) 20962306a36Sopenharmony_ci#define DPMAIF_AO_DL_BAT_WR_IDX (BASE_DPMAIF_PD_SRAM_DL + 0xdc) 21062306a36Sopenharmony_ci#define DPMAIF_AO_DL_PIT_RD_IDX (BASE_DPMAIF_PD_SRAM_DL + 0xec) 21162306a36Sopenharmony_ci#define DPMAIF_AO_DL_PIT_WR_IDX (BASE_DPMAIF_PD_SRAM_DL + 0x60) 21262306a36Sopenharmony_ci#define DPMAIF_AO_DL_FRGBAT_RD_IDX (BASE_DPMAIF_PD_SRAM_DL + 0x78) 21362306a36Sopenharmony_ci#define DPMAIF_AO_DL_DLQ_WR_IDX (BASE_DPMAIF_PD_SRAM_DL + 0xa4) 21462306a36Sopenharmony_ci 21562306a36Sopenharmony_ci#define DPMAIF_HPC_INTR_MASK (BASE_DPMAIF_MMW_HPC + 0x0f4) 21662306a36Sopenharmony_ci#define DPMA_HPC_ALL_INT_MASK GENMASK(15, 0) 21762306a36Sopenharmony_ci 21862306a36Sopenharmony_ci#define DPMAIF_HPC_DLQ_PATH_MODE 3 21962306a36Sopenharmony_ci#define DPMAIF_HPC_ADD_MODE_DF 0 22062306a36Sopenharmony_ci#define DPMAIF_HPC_TOTAL_NUM 8 22162306a36Sopenharmony_ci#define DPMAIF_HPC_MAX_TOTAL_NUM 8 22262306a36Sopenharmony_ci 22362306a36Sopenharmony_ci#define DPMAIF_DL_DLQPIT_INIT (BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x00) 22462306a36Sopenharmony_ci#define DPMAIF_DL_DLQPIT_ADD (BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x10) 22562306a36Sopenharmony_ci#define DPMAIF_DL_DLQPIT_INIT_CON0 (BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x14) 22662306a36Sopenharmony_ci#define DPMAIF_DL_DLQPIT_INIT_CON1 (BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x18) 22762306a36Sopenharmony_ci#define DPMAIF_DL_DLQPIT_INIT_CON2 (BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x1c) 22862306a36Sopenharmony_ci#define DPMAIF_DL_DLQPIT_INIT_CON3 (BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x20) 22962306a36Sopenharmony_ci#define DPMAIF_DL_DLQPIT_INIT_CON4 (BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x24) 23062306a36Sopenharmony_ci#define DPMAIF_DL_DLQPIT_INIT_CON5 (BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x28) 23162306a36Sopenharmony_ci#define DPMAIF_DL_DLQPIT_INIT_CON6 (BASE_DPMAIF_DL_DLQ_REMOVEAO_IDX + 0x2c) 23262306a36Sopenharmony_ci 23362306a36Sopenharmony_ci#define DPMAIF_ULQSAR_n(q) (DPMAIF_AO_UL_CHNL0_CON0 + 0x10 * (q)) 23462306a36Sopenharmony_ci#define DPMAIF_UL_DRBSIZE_ADDRH_n(q) (DPMAIF_AO_UL_CHNL0_CON1 + 0x10 * (q)) 23562306a36Sopenharmony_ci#define DPMAIF_UL_DRB_ADDRH_n(q) (DPMAIF_AO_UL_CHNL0_CON2 + 0x10 * (q)) 23662306a36Sopenharmony_ci#define DPMAIF_ULQ_STA0_n(q) (DPMAIF_AO_UL_CH0_STA + 0x04 * (q)) 23762306a36Sopenharmony_ci#define DPMAIF_ULQ_ADD_DESC_CH_n(q) (DPMAIF_UL_ADD_DESC_CH0 + 0x04 * (q)) 23862306a36Sopenharmony_ci 23962306a36Sopenharmony_ci#define DPMAIF_UL_DRB_RIDX_MSK GENMASK(31, 16) 24062306a36Sopenharmony_ci 24162306a36Sopenharmony_ci#define DPMAIF_AP_RGU_ASSERT 0x10001150 24262306a36Sopenharmony_ci#define DPMAIF_AP_RGU_DEASSERT 0x10001154 24362306a36Sopenharmony_ci#define DPMAIF_AP_RST_BIT BIT(2) 24462306a36Sopenharmony_ci 24562306a36Sopenharmony_ci#define DPMAIF_AP_AO_RGU_ASSERT 0x10001140 24662306a36Sopenharmony_ci#define DPMAIF_AP_AO_RGU_DEASSERT 0x10001144 24762306a36Sopenharmony_ci#define DPMAIF_AP_AO_RST_BIT BIT(6) 24862306a36Sopenharmony_ci 24962306a36Sopenharmony_ci/* DPMAIF init/restore */ 25062306a36Sopenharmony_ci#define DPMAIF_UL_ADD_NOT_READY BIT(31) 25162306a36Sopenharmony_ci#define DPMAIF_UL_ADD_UPDATE BIT(31) 25262306a36Sopenharmony_ci#define DPMAIF_UL_ADD_COUNT_MASK GENMASK(15, 0) 25362306a36Sopenharmony_ci#define DPMAIF_UL_ALL_QUE_ARB_EN GENMASK(11, 8) 25462306a36Sopenharmony_ci 25562306a36Sopenharmony_ci#define DPMAIF_DL_ADD_UPDATE BIT(31) 25662306a36Sopenharmony_ci#define DPMAIF_DL_ADD_NOT_READY BIT(31) 25762306a36Sopenharmony_ci#define DPMAIF_DL_FRG_ADD_UPDATE BIT(16) 25862306a36Sopenharmony_ci#define DPMAIF_DL_ADD_COUNT_MASK GENMASK(15, 0) 25962306a36Sopenharmony_ci 26062306a36Sopenharmony_ci#define DPMAIF_DL_BAT_INIT_ALLSET BIT(0) 26162306a36Sopenharmony_ci#define DPMAIF_DL_BAT_FRG_INIT BIT(16) 26262306a36Sopenharmony_ci#define DPMAIF_DL_BAT_INIT_EN BIT(31) 26362306a36Sopenharmony_ci#define DPMAIF_DL_BAT_INIT_NOT_READY BIT(31) 26462306a36Sopenharmony_ci#define DPMAIF_DL_BAT_INIT_ONLY_ENABLE_BIT 0 26562306a36Sopenharmony_ci 26662306a36Sopenharmony_ci#define DPMAIF_DL_PIT_INIT_ALLSET BIT(0) 26762306a36Sopenharmony_ci#define DPMAIF_DL_PIT_INIT_EN BIT(31) 26862306a36Sopenharmony_ci#define DPMAIF_DL_PIT_INIT_NOT_READY BIT(31) 26962306a36Sopenharmony_ci 27062306a36Sopenharmony_ci#define DPMAIF_BAT_REMAIN_SZ_BASE 16 27162306a36Sopenharmony_ci#define DPMAIF_BAT_BUFFER_SZ_BASE 128 27262306a36Sopenharmony_ci#define DPMAIF_FRG_BUFFER_SZ_BASE 128 27362306a36Sopenharmony_ci 27462306a36Sopenharmony_ci#define DLQ_PIT_IDX_SIZE 0x20 27562306a36Sopenharmony_ci 27662306a36Sopenharmony_ci#define DPMAIF_PIT_SIZE_MSK GENMASK(17, 0) 27762306a36Sopenharmony_ci 27862306a36Sopenharmony_ci#define DPMAIF_PIT_REM_CNT_MSK GENMASK(17, 0) 27962306a36Sopenharmony_ci 28062306a36Sopenharmony_ci#define DPMAIF_BAT_EN_MSK BIT(16) 28162306a36Sopenharmony_ci#define DPMAIF_FRG_EN_MSK BIT(28) 28262306a36Sopenharmony_ci#define DPMAIF_BAT_SIZE_MSK GENMASK(15, 0) 28362306a36Sopenharmony_ci 28462306a36Sopenharmony_ci#define DPMAIF_BAT_BID_MAXCNT_MSK GENMASK(31, 16) 28562306a36Sopenharmony_ci#define DPMAIF_BAT_REMAIN_MINSZ_MSK GENMASK(15, 8) 28662306a36Sopenharmony_ci#define DPMAIF_PIT_CHK_NUM_MSK GENMASK(31, 24) 28762306a36Sopenharmony_ci#define DPMAIF_BAT_BUF_SZ_MSK GENMASK(16, 8) 28862306a36Sopenharmony_ci#define DPMAIF_FRG_BUF_SZ_MSK GENMASK(16, 8) 28962306a36Sopenharmony_ci#define DPMAIF_BAT_RSV_LEN_MSK GENMASK(7, 0) 29062306a36Sopenharmony_ci#define DPMAIF_PKT_ALIGN_MSK GENMASK(23, 22) 29162306a36Sopenharmony_ci 29262306a36Sopenharmony_ci#define DPMAIF_BAT_CHECK_THRES_MSK GENMASK(21, 16) 29362306a36Sopenharmony_ci#define DPMAIF_FRG_CHECK_THRES_MSK GENMASK(7, 0) 29462306a36Sopenharmony_ci 29562306a36Sopenharmony_ci#define DPMAIF_PKT_ALIGN_EN BIT(23) 29662306a36Sopenharmony_ci 29762306a36Sopenharmony_ci#define DPMAIF_DRB_SIZE_MSK GENMASK(15, 0) 29862306a36Sopenharmony_ci 29962306a36Sopenharmony_ci#define DPMAIF_DL_RD_WR_IDX_MSK GENMASK(17, 0) 30062306a36Sopenharmony_ci 30162306a36Sopenharmony_ci/* DPMAIF_UL_CHK_BUSY */ 30262306a36Sopenharmony_ci#define DPMAIF_UL_IDLE_STS BIT(11) 30362306a36Sopenharmony_ci/* DPMAIF_DL_CHK_BUSY */ 30462306a36Sopenharmony_ci#define DPMAIF_DL_IDLE_STS BIT(23) 30562306a36Sopenharmony_ci/* DPMAIF_AO_DL_RDY_CHK_THRES */ 30662306a36Sopenharmony_ci#define DPMAIF_DL_PKT_CHECKSUM_EN BIT(31) 30762306a36Sopenharmony_ci#define DPMAIF_PORT_MODE_PCIE BIT(30) 30862306a36Sopenharmony_ci#define DPMAIF_DL_BURST_PIT_EN BIT(13) 30962306a36Sopenharmony_ci/* DPMAIF_DL_BAT_INIT_CON1 */ 31062306a36Sopenharmony_ci#define DPMAIF_DL_BAT_CACHE_PRI BIT(22) 31162306a36Sopenharmony_ci/* DPMAIF_AP_MEM_CLR */ 31262306a36Sopenharmony_ci#define DPMAIF_MEM_CLR BIT(0) 31362306a36Sopenharmony_ci/* DPMAIF_AP_OVERWRITE_CFG */ 31462306a36Sopenharmony_ci#define DPMAIF_SRAM_SYNC BIT(0) 31562306a36Sopenharmony_ci/* DPMAIF_AO_UL_INIT_SET */ 31662306a36Sopenharmony_ci#define DPMAIF_UL_INIT_DONE BIT(0) 31762306a36Sopenharmony_ci/* DPMAIF_AO_DL_INIT_SET */ 31862306a36Sopenharmony_ci#define DPMAIF_DL_INIT_DONE BIT(0) 31962306a36Sopenharmony_ci/* DPMAIF_AO_DL_PIT_SEQ_END */ 32062306a36Sopenharmony_ci#define DPMAIF_DL_PIT_SEQ_MSK GENMASK(7, 0) 32162306a36Sopenharmony_ci/* DPMAIF_UL_RESERVE_AO_RW */ 32262306a36Sopenharmony_ci#define DPMAIF_PCIE_MODE_SET_VALUE 0x55 32362306a36Sopenharmony_ci/* DPMAIF_AP_CG_EN */ 32462306a36Sopenharmony_ci#define DPMAIF_CG_EN 0x7f 32562306a36Sopenharmony_ci 32662306a36Sopenharmony_ci#define DPMAIF_UDL_IP_BUSY BIT(0) 32762306a36Sopenharmony_ci#define DPMAIF_DL_INT_DLQ0_QDONE BIT(8) 32862306a36Sopenharmony_ci#define DPMAIF_DL_INT_DLQ1_QDONE BIT(9) 32962306a36Sopenharmony_ci#define DPMAIF_DL_INT_DLQ0_PITCNT_LEN BIT(10) 33062306a36Sopenharmony_ci#define DPMAIF_DL_INT_DLQ1_PITCNT_LEN BIT(11) 33162306a36Sopenharmony_ci#define DPMAIF_DL_INT_Q2TOQ1 BIT(24) 33262306a36Sopenharmony_ci#define DPMAIF_DL_INT_Q2APTOP BIT(25) 33362306a36Sopenharmony_ci 33462306a36Sopenharmony_ci#define DPMAIF_DLQ_LOW_TIMEOUT_THRES_MKS GENMASK(15, 0) 33562306a36Sopenharmony_ci#define DPMAIF_DLQ_HIGH_TIMEOUT_THRES_MSK GENMASK(31, 16) 33662306a36Sopenharmony_ci 33762306a36Sopenharmony_ci/* DPMAIF DLQ HW configure */ 33862306a36Sopenharmony_ci#define DPMAIF_AGG_MAX_LEN_DF 65535 33962306a36Sopenharmony_ci#define DPMAIF_AGG_TBL_ENT_NUM_DF 50 34062306a36Sopenharmony_ci#define DPMAIF_HASH_PRIME_DF 13 34162306a36Sopenharmony_ci#define DPMAIF_MID_TIMEOUT_THRES_DF 100 34262306a36Sopenharmony_ci#define DPMAIF_DLQ_TIMEOUT_THRES_DF 100 34362306a36Sopenharmony_ci#define DPMAIF_DLQ_PRS_THRES_DF 10 34462306a36Sopenharmony_ci#define DPMAIF_DLQ_HASH_BIT_CHOOSE_DF 0 34562306a36Sopenharmony_ci 34662306a36Sopenharmony_ci#define DPMAIF_DLQPIT_EN_MSK BIT(20) 34762306a36Sopenharmony_ci#define DPMAIF_DLQPIT_CHAN_OFS 16 34862306a36Sopenharmony_ci#define DPMAIF_ADD_DLQ_PIT_CHAN_OFS 20 34962306a36Sopenharmony_ci 35062306a36Sopenharmony_ci#endif /* __T7XX_REG_H__ */ 351