*/
#define QCA_APB_BASE_REG 0x18000000
#define QCA_FLASH_BASE_REG 0x1F000000
+#define QCA_PCIE_BASE_REG 0x10000000
/*
* APB block
#define QCA_GMAC_BASE_REG QCA_APB_BASE_REG + 0x00070000
#define QCA_RTC_BASE_REG QCA_APB_BASE_REG + 0x00107000
#define QCA_PLL_SRIF_BASE_REG QCA_APB_BASE_REG + 0x00116000
+#define QCA_PCIE_RC0_CTRL_BASE_REG QCA_APB_BASE_REG + 0x000F0000
+#define QCA_PCIE_RC1_CTRL_BASE_REG QCA_APB_BASE_REG + 0x00280000
#if (SOC_TYPE & QCA_AR933X_SOC)
#define QCA_SLIC_BASE_REG QCA_APB_BASE_REG + 0x00090000
#define QCA_SLIC_BASE_REG QCA_APB_BASE_REG + 0x000A9000
#endif
+/*
+ * PCIE bridge address space
+ */
+#define QCA_PCIE_RC0_SLAVE_CFG_BASE_REG QCA_PCIE_BASE_REG + 0x04000000
+#define QCA_PCIE_RC1_SLAVE_CFG_BASE_REG QCA_PCIE_BASE_REG + 0x06000000
+
/*
* DDR registers
*/
#define QCA_RST_BOOTSTRAP_REG QCA_RST_BASE_REG + 0xB0
#endif
+#if (SOC_TYPE & QCA_QCA956X_SOC)
+ #define QCA_RST_MISC2_REG QCA_RST_BASE_REG + 0xB8
+ #define QCA_RST_RESET2_REG QCA_RST_BASE_REG + 0xC0
+#else
+ #define QCA_RST_MISC2_REG QCA_RST_BASE_REG + 0xBC
+ #define QCA_RST_RESET2_REG QCA_RST_BASE_REG + 0xC4
+#endif
+
/*
* Reset control registers BIT fields
*/
/* RST_BOOTSTRAP (Reset bootstrap) */
#if (SOC_TYPE & QCA_AR933X_SOC)
#define QCA_RST_BOOTSTRAP_REF_CLK_SHIFT 0
+#elif (SOC_TYPE & QCA_QCA956X_SOC)
+ #define QCA_RST_BOOTSTRAP_REF_CLK_SHIFT 2
#else
#define QCA_RST_BOOTSTRAP_REF_CLK_SHIFT 4
#endif
#define QCA_RST_BOOTSTRAP_DDR_WIDTH_32_MASK BIT(QCA_RST_BOOTSTRAP_DDR_WIDTH_32_SHIFT)
#define QCA_RST_BOOTSTRAP_JTAG_MODE_SHIFT 5
#define QCA_RST_BOOTSTRAP_JTAG_MODE_MASK BIT(QCA_RST_BOOTSTRAP_JTAG_MODE_SHIFT)
+ #define QCA_RST_BOOTSTRAP_PCIE_RC_MODE_SHIFT 6
+ #define QCA_RST_BOOTSTRAP_PCIE_RC_MODE_MASK BIT(QCA_RST_BOOTSTRAP_PCIE_RC_MODE_SHIFT)
#define QCA_RST_BOOTSTRAP_USB_MODE_DEV_SHIFT 7
#define QCA_RST_BOOTSTRAP_USB_MODE_DEV_MASK BIT(QCA_RST_BOOTSTRAP_USB_MODE_DEV_SHIFT)
#endif
/* RST_RESET */
-#define QCA_RST_RESET_I2C_RST_SHIFT 0
-#define QCA_RST_RESET_I2C_RST_MASK BIT(QCA_RST_RESET_I2C_RST_SHIFT)
+#if (SOC_TYPE & QCA_QCA956X_SOC)
+ #define QCA_RST_RESET_ETH_SWITCH_RST_SHIFT 0
+ #define QCA_RST_RESET_ETH_SWITCH_RST_MASK BIT(QCA_RST_RESET_ETH_SWITCH_RST_SHIFT)
+ #define QCA_RST_RESET_ETH_SWITCH_ARST_SHIFT 2
+ #define QCA_RST_RESET_ETH_SWITCH_ARST_MASK BIT(QCA_RST_RESET_ETH_SWITCH_ARST_SHIFT)
+#else
+ #define QCA_RST_RESET_I2S_RST_SHIFT 0
+ #define QCA_RST_RESET_I2S_RST_MASK BIT(QCA_RST_RESET_I2S_RST_SHIFT)
+ #define QCA_RST_RESET_LUT_RST_SHIFT 2
+ #define QCA_RST_RESET_LUT_RST_MASK BIT(QCA_RST_RESET_LUT_RST_SHIFT)
+#endif
+
#define QCA_RST_RESET_MBOX_RST_SHIFT 1
#define QCA_RST_RESET_MBOX_RST_MASK BIT(QCA_RST_RESET_MBOX_RST_SHIFT)
-#define QCA_RST_RESET_LUT_RST_SHIFT 2
-#define QCA_RST_RESET_LUT_RST_MASK BIT(QCA_RST_RESET_LUT_RST_SHIFT)
#define QCA_RST_RESET_USB_PHY_SUSPEND_ORIDE_SHIFT 3
#define QCA_RST_RESET_USB_PHY_SUSPEND_ORIDE_MASK BIT(QCA_RST_RESET_USB_PHY_SUSPEND_ORIDE_SHIFT)
#define QCA_RST_RESET_USB_PHY_RST_SHIFT 4
#define QCA_RST_RESET_PCIE_PHY_RST_SHIFT 7
#define QCA_RST_RESET_PCIE_PHY_RST_MASK BIT(QCA_RST_RESET_PCIE_PHY_RST_SHIFT)
-#if (SOC_TYPE & QCA_QCA955X_SOC)
+#if (SOC_TYPE & QCA_QCA955X_SOC) |\
+ (SOC_TYPE & QCA_QCA956X_SOC)
#define QCA_RST_RESET_ETH_SGMII_RST_SHIFT 8
#define QCA_RST_RESET_ETH_SGMII_RST_MASK BIT(QCA_RST_RESET_ETH_SGMII_RST_SHIFT)
#else
#define QCA_RST_RESET_ETH_SWITCH_ARST_SHIFT 14
#define QCA_RST_RESET_ETH_SWITCH_ARST_MASK BIT(QCA_RST_RESET_ETH_SWITCH_ARST_SHIFT)
#else
- #if (SOC_TYPE & QCA_QCA955X_SOC)
+ #if (SOC_TYPE & QCA_QCA955X_SOC) |\
+ (SOC_TYPE & QCA_QCA956X_SOC)
#define QCA_RST_RESET_ETH_SGMII_ARST_SHIFT 12
#define QCA_RST_RESET_ETH_SGMII_ARST_MASK BIT(QCA_RST_RESET_ETH_SGMII_ARST_SHIFT)
#else
#define QCA_RST_RESET_ETH_SWITCH_ARST_MASK BIT(QCA_RST_RESET_ETH_SWITCH_ARST_SHIFT)
#endif
- #define QCA_RST_RESET_NANDF_RST_SHIFT 14
- #define QCA_RST_RESET_NANDF_RST_MASK BIT(QCA_RST_RESET_NANDF_RST_SHIFT)
+ #define QCA_RST_RESET_NAND_FLASH_RST_SHIFT 14
+ #define QCA_RST_RESET_NAND_FLASH_RST_MASK BIT(QCA_RST_RESET_NAND_FLASH_RST_SHIFT)
#endif
#define QCA_RST_RESET_GE1_MAC_RST_SHIFT 13
(SOC_TYPE & QCA_QCA955X_SOC)
#define QCA_RST_RESET_HOST_DMA_RST_SHIFT 29
#define QCA_RST_RESET_HOST_DMA_RST_MASK BIT(QCA_RST_RESET_HOST_DMA_RST_SHIFT)
-#else
+#elif (SOC_TYPE & QCA_QCA953X_SOC)
#define QCA_RST_RESET_USB_EXT_PWR_SHIFT 29
#define QCA_RST_RESET_USB_EXT_PWR_MASK BIT(QCA_RST_RESET_USB_EXT_PWR_SHIFT)
#endif
#define QCA_RST_RESET_HOST_DMA_RST_STATUS_SHIFT 31
#define QCA_RST_RESET_HOST_DMA_RST_STATUS_MASK BIT(QCA_RST_RESET_HOST_DMA_RST_STATUS_SHIFT)
+/* RST_RESET2 (QCA955x and QCA956x only) */
+#define QCA_RST_RESET2_USB2_MODE_DEV_SHIFT 0
+#define QCA_RST_RESET2_USB2_MODE_DEV_MASK BIT(QCA_RST_RESET2_USB2_MODE_DEV_SHIFT)
+#define QCA_RST_RESET2_USB2_PHY_SUSPEND_ORIDE_SHIFT 3
+#define QCA_RST_RESET2_USB2_PHY_SUSPEND_ORIDE_MASK BIT(QCA_RST_RESET2_USB2_PHY_SUSPEND_ORIDE_SHIFT)
+#define QCA_RST_RESET2_USB2_PHY_RST_SHIFT 4
+#define QCA_RST_RESET2_USB2_PHY_RST_MASK BIT(QCA_RST_RESET2_USB2_PHY_RST_SHIFT)
+#define QCA_RST_RESET2_USB2_HOST_RST_SHIFT 5
+#define QCA_RST_RESET2_USB2_HOST_RST_MASK BIT(QCA_RST_RESET2_USB2_HOST_RST_SHIFT)
+#define QCA_RST_RESET2_PCIE2_RST_SHIFT 6
+#define QCA_RST_RESET2_PCIE2_RST_MASK BIT(QCA_RST_RESET2_PCIE2_RST_SHIFT)
+#define QCA_RST_RESET2_PCIE2_PHY_RST_SHIFT 7
+#define QCA_RST_RESET2_PCIE2_PHY_RST_MASK BIT(QCA_RST_RESET2_PCIE2_PHY_RST_SHIFT)
+#define QCA_RST_RESET2_USB2_PHY_ARST_SHIFT 11
+#define QCA_RST_RESET2_USB2_PHY_ARST_MASK BIT(QCA_RST_RESET2_USB2_PHY_ARST_SHIFT)
+#define QCA_RST_RESET2_USB2_PHY_PLLPWD_EXT_SHIFT 15
+#define QCA_RST_RESET2_USB2_PHY_PLLPWD_EXT_MASK BIT(QCA_RST_RESET2_USB2_PHY_PLLPWD_EXT_SHIFT)
+#define QCA_RST_RESET2_USB_EXT_PWR_SHIFT 16
+#define QCA_RST_RESET2_USB_EXT_PWR_MASK BIT(QCA_RST_RESET2_USB_EXT_PWR_SHIFT)
+#define QCA_RST_RESET2_USB2_EXT_PWR_SHIFT 17
+#define QCA_RST_RESET2_USB2_EXT_PWR_MASK BIT(QCA_RST_RESET2_USB2_EXT_PWR_SHIFT)
+#define QCA_RST_RESET2_EP_MODE_SHIFT 18
+#define QCA_RST_RESET2_EP_MODE_MASK BIT(QCA_RST_RESET2_EP_MODE_SHIFT)
+
/* RST_REVISION_ID (Chip revision ID) */
#define QCA_RST_REVISION_ID_MAJOR_SHIFT 4
#define QCA_RST_REVISION_ID_MAJOR_MASK BITS(QCA_RST_REVISION_ID_MAJOR_SHIFT, 12)
#define QCA_RST_REVISION_ID_MAJOR_QCA953X_V2_VAL 0x0160
#define QCA_RST_REVISION_ID_MAJOR_QCA9558_VAL 0x1130
+/* RST_MISC2 register (Miscellaneous CPU control bits) */
+#define QCA_RST_MISC2_PERSTN_RCPHY_SHIFT 13
+#define QCA_RST_MISC2_PERSTN_RCPHY_MASK BIT(QCA_RST_MISC2_PERSTN_RCPHY_SHIFT)
+#define QCA_RST_MISC2_PERSTN_RCPHY2_SHIFT 14
+#define QCA_RST_MISC2_PERSTN_RCPHY2_MASK BIT(QCA_RST_MISC2_PERSTN_RCPHY2_SHIFT)
+
+/*
+ * PCIE RC control registers
+ */
+#define QCA_PCIE_RC0_CTRL_APP_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x00
+#define QCA_PCIE_RC1_CTRL_APP_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x00
+#define QCA_PCIE_RC0_CTRL_AER_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x04
+#define QCA_PCIE_RC1_CTRL_AER_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x04
+#define QCA_PCIE_RC0_CTRL_PWR_MGMT_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x08
+#define QCA_PCIE_RC1_CTRL_PWR_MGMT_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x08
+#define QCA_PCIE_RC0_CTRL_ELEC_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x0C
+#define QCA_PCIE_RC1_CTRL_ELEC_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x0C
+#define QCA_PCIE_RC0_CTRL_CFG_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x10
+#define QCA_PCIE_RC1_CTRL_CFG_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x10
+#define QCA_PCIE_RC0_CTRL_RX_CNTL_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x14
+#define QCA_PCIE_RC1_CTRL_RX_CNTL_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x14
+#define QCA_PCIE_RC0_CTRL_RST_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x18
+#define QCA_PCIE_RC1_CTRL_RST_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x18
+#define QCA_PCIE_RC0_CTRL_DBG_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x1C
+#define QCA_PCIE_RC1_CTRL_DBG_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x1C
+#define QCA_PCIE_RC0_CTRL_PHY_RW_DATA_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x24
+#define QCA_PCIE_RC1_CTRL_PHY_RW_DATA_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x24
+#define QCA_PCIE_RC0_CTRL_PHY_TRG_RD_LOAD_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x28
+#define QCA_PCIE_RC1_CTRL_PHY_TRG_RD_LOAD_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x28
+#define QCA_PCIE_RC0_CTRL_PHY_CFG_DATA_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x2C
+#define QCA_PCIE_RC1_CTRL_PHY_CFG_DATA_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x2C
+#define QCA_PCIE_RC0_CTRL_MAC_PHY_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x30
+#define QCA_PCIE_RC1_CTRL_MAC_PHY_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x30
+#define QCA_PCIE_RC0_CTRL_PHY_MAC_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x34
+#define QCA_PCIE_RC1_CTRL_PHY_MAC_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x34
+#define QCA_PCIE_RC0_CTRL_SIDEBAND1_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x38
+#define QCA_PCIE_RC1_CTRL_SIDEBAND1_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x38
+#define QCA_PCIE_RC0_CTRL_SIDEBAND2_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x3C
+#define QCA_PCIE_RC1_CTRL_SIDEBAND2_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x3C
+#define QCA_PCIE_RC0_CTRL_SPARE_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x40
+#define QCA_PCIE_RC1_CTRL_SPARE_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x40
+#define QCA_PCIE_RC0_CTRL_MSI_ADDR_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x44
+#define QCA_PCIE_RC1_CTRL_MSI_ADDR_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x44
+#define QCA_PCIE_RC0_CTRL_MSI_DATA_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x48
+#define QCA_PCIE_RC1_CTRL_MSI_DATA_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x48
+#define QCA_PCIE_RC0_CTRL_INT_STATUS_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x4C
+#define QCA_PCIE_RC1_CTRL_INT_STATUS_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x4C
+#define QCA_PCIE_RC0_CTRL_INT_MASK_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x50
+#define QCA_PCIE_RC1_CTRL_INT_MASK_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x50
+#define QCA_PCIE_RC0_CTRL_ERR_CNT_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x54
+#define QCA_PCIE_RC1_CTRL_ERR_CNT_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x54
+#define QCA_PCIE_RC0_CTRL_REQ_LAT_INT_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x58
+#define QCA_PCIE_RC1_CTRL_REQ_LAT_INT_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x58
+#define QCA_PCIE_RC0_CTRL_MISC_REG QCA_PCIE_RC0_CTRL_BASE_REG + 0x5C
+#define QCA_PCIE_RC1_CTRL_MISC_REG QCA_PCIE_RC1_CTRL_BASE_REG + 0x5C
+
+/*
+ * PCIE RC control registers BIT fields
+ */
+
+/* PCIE_APP register (PCIE application control) */
+#define QCA_PCIE_RCX_CTRL_APP_LTSSM_EN_SHIFT 0
+#define QCA_PCIE_RCX_CTRL_APP_LTSSM_EN_MASK BIT(QCA_PCIE_RCX_CTRL_APP_LTSSM_EN_SHIFT)
+#define QCA_PCIE_RCX_CTRL_APP_UNLOCK_MSG_SHIFT 1
+#define QCA_PCIE_RCX_CTRL_APP_UNLOCK_MSG_MASK BIT(QCA_PCIE_RCX_CTRL_APP_UNLOCK_MSG_SHIFT)
+#define QCA_PCIE_RCX_CTRL_APP_PM_XMT_TURNOFF_SHIFT 2
+#define QCA_PCIE_RCX_CTRL_APP_PM_XMT_TURNOFF_MASK BIT(QCA_PCIE_RCX_CTRL_APP_PM_XMT_TURNOFF_SHIFT)
+#define QCA_PCIE_RCX_CTRL_APP_INIT_RST_SHIFT 3
+#define QCA_PCIE_RCX_CTRL_APP_INIT_RST_MASK BIT(QCA_PCIE_RCX_CTRL_APP_INIT_RST_SHIFT)
+#define QCA_PCIE_RCX_CTRL_APP_MASTER_RESP_ERR_MAP_SHIFT 4
+#define QCA_PCIE_RCX_CTRL_APP_MASTER_RESP_ERR_MAP_MASK BITS(QCA_PCIE_RCX_CTRL_APP_MASTER_RESP_ERR_MAP_SHIFT, 2)
+#define QCA_PCIE_RCX_CTRL_APP_SLAVE_RESP_ERR_MAP_SHIFT 6
+#define QCA_PCIE_RCX_CTRL_APP_SLAVE_RESP_ERR_MAP_MASK BITS(QCA_PCIE_RCX_CTRL_APP_SLAVE_RESP_ERR_MAP_SHIFT, 6)
+#define QCA_PCIE_RCX_CTRL_APP_CFG_BE_SHIFT 12
+#define QCA_PCIE_RCX_CTRL_APP_CFG_BE_MASK BITS(QCA_PCIE_RCX_CTRL_APP_CFG_BE_SHIFT, 4)
+#define QCA_PCIE_RCX_CTRL_APP_BAR_MSN_SHIFT 16
+#define QCA_PCIE_RCX_CTRL_APP_BAR_MSN_MASK BITS(QCA_PCIE_RCX_CTRL_APP_BAR_MSN_SHIFT, 4)
+#define QCA_PCIE_RCX_CTRL_APP_CFG_TYPE_SHIFT 20
+#define QCA_PCIE_RCX_CTRL_APP_CFG_TYPE_MASK BITS(QCA_PCIE_RCX_CTRL_APP_CFG_TYPE_SHIFT, 2)
+
+/* PCIE_RESET register (PCIE reset) */
+#define QCA_PCIE_RCX_CTRL_RST_LINK_UP_SHIFT 0
+#define QCA_PCIE_RCX_CTRL_RST_LINK_UP_MASK BIT(QCA_PCIE_RCX_CTRL_RST_LINK_UP_SHIFT)
+#define QCA_PCIE_RCX_CTRL_RST_LINK_REQ_RST_SHIFT 1
+#define QCA_PCIE_RCX_CTRL_RST_LINK_REQ_RST_MASK BIT(QCA_PCIE_RCX_CTRL_RST_LINK_REQ_RST_SHIFT)
+#define QCA_PCIE_RCX_CTRL_RST_EP_RST_L_SHIFT 2
+#define QCA_PCIE_RCX_CTRL_RST_EP_RST_L_MASK BIT(QCA_PCIE_RCX_CTRL_RST_EP_RST_L_SHIFT)
+
/*
* RTC registers
*/