root/drivers/net/wireless/quantenna/qtnfmac/pcie/pearl_pcie_ipc.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0+ */
   2 /* Copyright (c) 2015-2016 Quantenna Communications */
   3 
   4 #ifndef _QTN_FMAC_PCIE_IPC_H_
   5 #define _QTN_FMAC_PCIE_IPC_H_
   6 
   7 #include <linux/types.h>
   8 
   9 #include "shm_ipc_defs.h"
  10 
  11 /* bitmap for EP status and flags: updated by EP, read by RC */
  12 #define QTN_EP_HAS_UBOOT        BIT(0)
  13 #define QTN_EP_HAS_FIRMWARE     BIT(1)
  14 #define QTN_EP_REQ_UBOOT        BIT(2)
  15 #define QTN_EP_REQ_FIRMWARE     BIT(3)
  16 #define QTN_EP_ERROR_UBOOT      BIT(4)
  17 #define QTN_EP_ERROR_FIRMWARE   BIT(5)
  18 
  19 #define QTN_EP_FW_LOADRDY       BIT(8)
  20 #define QTN_EP_FW_SYNC          BIT(9)
  21 #define QTN_EP_FW_RETRY         BIT(10)
  22 #define QTN_EP_FW_QLINK_DONE    BIT(15)
  23 #define QTN_EP_FW_DONE          BIT(16)
  24 
  25 /* bitmap for RC status and flags: updated by RC, read by EP */
  26 #define QTN_RC_PCIE_LINK        BIT(0)
  27 #define QTN_RC_NET_LINK         BIT(1)
  28 #define QTN_RC_FW_FLASHBOOT     BIT(5)
  29 #define QTN_RC_FW_QLINK         BIT(7)
  30 #define QTN_RC_FW_LOADRDY       BIT(8)
  31 #define QTN_RC_FW_SYNC          BIT(9)
  32 
  33 #define PCIE_HDP_INT_RX_BITS (0         \
  34         | PCIE_HDP_INT_EP_TXDMA         \
  35         | PCIE_HDP_INT_EP_TXEMPTY       \
  36         | PCIE_HDP_INT_HHBM_UF          \
  37         )
  38 
  39 #define PCIE_HDP_INT_TX_BITS (0         \
  40         | PCIE_HDP_INT_EP_RXDMA         \
  41         )
  42 
  43 #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
  44 #define QTN_HOST_HI32(a)        ((u32)(((u64)a) >> 32))
  45 #define QTN_HOST_LO32(a)        ((u32)(((u64)a) & 0xffffffffUL))
  46 #define QTN_HOST_ADDR(h, l)     ((((u64)h) << 32) | ((u64)l))
  47 #else
  48 #define QTN_HOST_HI32(a)        0
  49 #define QTN_HOST_LO32(a)        ((u32)(((u32)a) & 0xffffffffUL))
  50 #define QTN_HOST_ADDR(h, l)     ((u32)l)
  51 #endif
  52 
  53 #define QTN_PCIE_BDA_VERSION            0x1002
  54 
  55 #define PCIE_BDA_NAMELEN                32
  56 #define PCIE_HHBM_MAX_SIZE              2048
  57 
  58 #define QTN_PCIE_BOARDFLG       "PCIEQTN"
  59 #define QTN_PCIE_FW_DLMASK      0xF
  60 #define QTN_PCIE_FW_BUFSZ       2048
  61 
  62 #define QTN_ENET_ADDR_LENGTH    6
  63 
  64 #define QTN_TXDONE_MASK         ((u32)0x80000000)
  65 #define QTN_GET_LEN(x)          ((x) & 0xFFFF)
  66 
  67 #define QTN_PCIE_TX_DESC_LEN_MASK       0xFFFF
  68 #define QTN_PCIE_TX_DESC_LEN_SHIFT      0
  69 #define QTN_PCIE_TX_DESC_PORT_MASK      0xF
  70 #define QTN_PCIE_TX_DESC_PORT_SHIFT     16
  71 #define QTN_PCIE_TX_DESC_TQE_BIT        BIT(24)
  72 
  73 #define QTN_EP_LHOST_TQE_PORT   4
  74 
  75 enum qtnf_fw_loadtype {
  76         QTN_FW_DBEGIN,
  77         QTN_FW_DSUB,
  78         QTN_FW_DEND,
  79         QTN_FW_CTRL
  80 };
  81 
  82 #endif /* _QTN_FMAC_PCIE_IPC_H_ */

/* [<][>][^][v][top][bottom][index][help] */