Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0+ */
0002 /* Copyright (c) 2015 Quantenna Communications */
0003 
0004 #ifndef __PEARL_PCIE_H
0005 #define __PEARL_PCIE_H
0006 
0007 /* Pearl PCIe HDP registers */
0008 #define PCIE_HDP_CTRL(base)         ((base) + 0x2c00)
0009 #define PCIE_HDP_AXI_CTRL(base)         ((base) + 0x2c04)
0010 #define PCIE_HDP_HOST_WR_DESC0(base)        ((base) + 0x2c10)
0011 #define PCIE_HDP_HOST_WR_DESC0_H(base)      ((base) + 0x2c14)
0012 #define PCIE_HDP_HOST_WR_DESC1(base)        ((base) + 0x2c18)
0013 #define PCIE_HDP_HOST_WR_DESC1_H(base)      ((base) + 0x2c1c)
0014 #define PCIE_HDP_HOST_WR_DESC2(base)        ((base) + 0x2c20)
0015 #define PCIE_HDP_HOST_WR_DESC2_H(base)      ((base) + 0x2c24)
0016 #define PCIE_HDP_HOST_WR_DESC3(base)        ((base) + 0x2c28)
0017 #define PCIE_HDP_HOST_WR_DESC4_H(base)      ((base) + 0x2c2c)
0018 #define PCIE_HDP_RX_INT_CTRL(base)      ((base) + 0x2c30)
0019 #define PCIE_HDP_TX_INT_CTRL(base)      ((base) + 0x2c34)
0020 #define PCIE_HDP_INT_STATUS(base)       ((base) + 0x2c38)
0021 #define PCIE_HDP_INT_EN(base)           ((base) + 0x2c3c)
0022 #define PCIE_HDP_RX_DESC0_PTR(base)     ((base) + 0x2c40)
0023 #define PCIE_HDP_RX_DESC0_NOE(base)     ((base) + 0x2c44)
0024 #define PCIE_HDP_RX_DESC1_PTR(base)     ((base) + 0x2c48)
0025 #define PCIE_HDP_RX_DESC1_NOE(base)     ((base) + 0x2c4c)
0026 #define PCIE_HDP_RX_DESC2_PTR(base)     ((base) + 0x2c50)
0027 #define PCIE_HDP_RX_DESC2_NOE(base)     ((base) + 0x2c54)
0028 #define PCIE_HDP_RX_DESC3_PTR(base)     ((base) + 0x2c58)
0029 #define PCIE_HDP_RX_DESC3_NOE(base)     ((base) + 0x2c5c)
0030 
0031 #define PCIE_HDP_TX0_BASE_ADDR(base)        ((base) + 0x2c60)
0032 #define PCIE_HDP_TX1_BASE_ADDR(base)        ((base) + 0x2c64)
0033 #define PCIE_HDP_TX0_Q_CTRL(base)       ((base) + 0x2c70)
0034 #define PCIE_HDP_TX1_Q_CTRL(base)       ((base) + 0x2c74)
0035 #define PCIE_HDP_CFG0(base)         ((base) + 0x2c80)
0036 #define PCIE_HDP_CFG1(base)         ((base) + 0x2c84)
0037 #define PCIE_HDP_CFG2(base)         ((base) + 0x2c88)
0038 #define PCIE_HDP_CFG3(base)         ((base) + 0x2c8c)
0039 #define PCIE_HDP_CFG4(base)         ((base) + 0x2c90)
0040 #define PCIE_HDP_CFG5(base)         ((base) + 0x2c94)
0041 #define PCIE_HDP_CFG6(base)         ((base) + 0x2c98)
0042 #define PCIE_HDP_CFG7(base)         ((base) + 0x2c9c)
0043 #define PCIE_HDP_CFG8(base)         ((base) + 0x2ca0)
0044 #define PCIE_HDP_CFG9(base)         ((base) + 0x2ca4)
0045 #define PCIE_HDP_CFG10(base)            ((base) + 0x2ca8)
0046 #define PCIE_HDP_CFG11(base)            ((base) + 0x2cac)
0047 #define PCIE_INT(base)              ((base) + 0x2cb0)
0048 #define PCIE_INT_MASK(base)         ((base) + 0x2cb4)
0049 #define PCIE_MSI_MASK(base)         ((base) + 0x2cb8)
0050 #define PCIE_MSI_PNDG(base)         ((base) + 0x2cbc)
0051 #define PCIE_PRI_CFG(base)          ((base) + 0x2cc0)
0052 #define PCIE_PHY_CR(base)           ((base) + 0x2cc4)
0053 #define PCIE_HDP_CTAG_CTRL(base)        ((base) + 0x2cf4)
0054 #define PCIE_HDP_HHBM_BUF_PTR(base)     ((base) + 0x2d00)
0055 #define PCIE_HDP_HHBM_BUF_PTR_H(base)       ((base) + 0x2d04)
0056 #define PCIE_HDP_HHBM_BUF_FIFO_NOE(base)    ((base) + 0x2d04)
0057 #define PCIE_HDP_RX0DMA_CNT(base)       ((base) + 0x2d10)
0058 #define PCIE_HDP_RX1DMA_CNT(base)       ((base) + 0x2d14)
0059 #define PCIE_HDP_RX2DMA_CNT(base)       ((base) + 0x2d18)
0060 #define PCIE_HDP_RX3DMA_CNT(base)       ((base) + 0x2d1c)
0061 #define PCIE_HDP_TX0DMA_CNT(base)       ((base) + 0x2d20)
0062 #define PCIE_HDP_TX1DMA_CNT(base)       ((base) + 0x2d24)
0063 #define PCIE_HDP_RXDMA_CTRL(base)       ((base) + 0x2d28)
0064 #define PCIE_HDP_TX_HOST_Q_SZ_CTRL(base)    ((base) + 0x2d2c)
0065 #define PCIE_HDP_TX_HOST_Q_BASE_L(base)     ((base) + 0x2d30)
0066 #define PCIE_HDP_TX_HOST_Q_BASE_H(base)     ((base) + 0x2d34)
0067 #define PCIE_HDP_TX_HOST_Q_WR_PTR(base)     ((base) + 0x2d38)
0068 #define PCIE_HDP_TX_HOST_Q_RD_PTR(base)     ((base) + 0x2d3c)
0069 #define PCIE_HDP_TX_HOST_Q_STS(base)        ((base) + 0x2d40)
0070 
0071 /* Pearl PCIe HBM pool registers */
0072 #define PCIE_HHBM_CSR_REG(base)         ((base) + 0x2e00)
0073 #define PCIE_HHBM_Q_BASE_REG(base)      ((base) + 0x2e04)
0074 #define PCIE_HHBM_Q_LIMIT_REG(base)     ((base) + 0x2e08)
0075 #define PCIE_HHBM_Q_WR_REG(base)        ((base) + 0x2e0c)
0076 #define PCIE_HHBM_Q_RD_REG(base)        ((base) + 0x2e10)
0077 #define PCIE_HHBM_POOL_DATA_0_H(base)       ((base) + 0x2e90)
0078 #define PCIE_HHBM_CONFIG(base)          ((base) + 0x2f9c)
0079 #define PCIE_HHBM_POOL_REQ_0(base)      ((base) + 0x2f10)
0080 #define PCIE_HHBM_POOL_DATA_0(base)     ((base) + 0x2f40)
0081 #define PCIE_HHBM_WATERMARK_MASKED_INT(base)    ((base) + 0x2f68)
0082 #define PCIE_HHBM_WATERMARK_INT(base)       ((base) + 0x2f6c)
0083 #define PCIE_HHBM_POOL_WATERMARK(base)      ((base) + 0x2f70)
0084 #define PCIE_HHBM_POOL_OVERFLOW_CNT(base)   ((base) + 0x2f90)
0085 #define PCIE_HHBM_POOL_UNDERFLOW_CNT(base)  ((base) + 0x2f94)
0086 #define HBM_INT_STATUS(base)            ((base) + 0x2f9c)
0087 #define PCIE_HHBM_POOL_CNFIG(base)      ((base) + 0x2f9c)
0088 
0089 /* Pearl PCIe HBM bit field definitions */
0090 #define HHBM_CONFIG_SOFT_RESET          (BIT(8))
0091 #define HHBM_WR_REQ             (BIT(0))
0092 #define HHBM_RD_REQ             (BIT(1))
0093 #define HHBM_DONE               (BIT(31))
0094 #define HHBM_64BIT              (BIT(10))
0095 
0096 /* PCIe HDP interrupt status definition */
0097 #define PCIE_HDP_INT_EP_RXDMA       (BIT(0))
0098 #define PCIE_HDP_INT_HBM_UF     (BIT(1))
0099 #define PCIE_HDP_INT_RX_LEN_ERR     (BIT(2))
0100 #define PCIE_HDP_INT_RX_HDR_LEN_ERR (BIT(3))
0101 #define PCIE_HDP_INT_EP_TXDMA       (BIT(12))
0102 #define PCIE_HDP_INT_HHBM_UF        (BIT(13))
0103 #define PCIE_HDP_INT_EP_TXEMPTY     (BIT(15))
0104 #define PCIE_HDP_INT_IPC        (BIT(29))
0105 
0106 /* PCIe interrupt status definition */
0107 #define PCIE_INT_MSI            (BIT(24))
0108 #define PCIE_INT_INTX           (BIT(23))
0109 
0110 /* PCIe legacy INTx */
0111 #define PEARL_PCIE_CFG0_OFFSET      (0x6C)
0112 #define PEARL_ASSERT_INTX       (BIT(9))
0113 
0114 /* SYS CTL regs */
0115 #define QTN_PEARL_SYSCTL_LHOST_IRQ_OFFSET   (0x001C)
0116 
0117 #define QTN_PEARL_IPC_IRQ_WORD(irq) (BIT(irq) | BIT(irq + 16))
0118 #define QTN_PEARL_LHOST_IPC_IRQ     (6)
0119 #define QTN_PEARL_LHOST_EP_RESET    (7)
0120 
0121 #endif /* __PEARL_PCIE_H */