/*
 * Copyright (c) 2016-2017 The Linux Foundation. All rights reserved.
 *
 * Permission to use, copy, modify, and/or distribute this software for
 * any purpose with or without fee is hereby granted, provided that the
 * above copyright notice and this permission notice appear in all
 * copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 * PERFORMANCE OF THIS SOFTWARE.
 */

#ifndef TARGET_REG_INIT_H
#define TARGET_REG_INIT_H
#include "reg_struct.h"
#include "targaddrs.h"
/*** WARNING : Add to the end of the TABLE! do not change the order ****/
struct targetdef_s;



#define ATH_UNSUPPORTED_REG_OFFSET UNSUPPORTED_REGISTER_OFFSET
#define ATH_SUPPORTED_BY_TARGET(reg_offset) \
	((reg_offset) != ATH_UNSUPPORTED_REG_OFFSET)

#if defined(MY_TARGET_DEF)

/* Cross-platform compatibility */
#if !defined(SOC_RESET_CONTROL_OFFSET) && defined(RESET_CONTROL_OFFSET)
#define SOC_RESET_CONTROL_OFFSET RESET_CONTROL_OFFSET
#endif

#if !defined(CLOCK_GPIO_OFFSET)
#define CLOCK_GPIO_OFFSET ATH_UNSUPPORTED_REG_OFFSET
#define CLOCK_GPIO_BT_CLK_OUT_EN_LSB 0
#define CLOCK_GPIO_BT_CLK_OUT_EN_MASK 0
#endif

#if !defined(WLAN_MAC_BASE_ADDRESS)
#define WLAN_MAC_BASE_ADDRESS        ATH_UNSUPPORTED_REG_OFFSET
#endif

#if !defined(CE0_BASE_ADDRESS)
#define CE0_BASE_ADDRESS ATH_UNSUPPORTED_REG_OFFSET
#define CE1_BASE_ADDRESS ATH_UNSUPPORTED_REG_OFFSET
#define CE_COUNT 0
#endif

#if !defined(MSI_NUM_REQUEST)
#define MSI_NUM_REQUEST              0
#define MSI_ASSIGN_FW                0
#define MSI_ASSIGN_CE_INITIAL        0
#endif

#if !defined(FW_INDICATOR_ADDRESS)
#define FW_INDICATOR_ADDRESS     ATH_UNSUPPORTED_REG_OFFSET
#endif

#if !defined(FW_CPU_PLL_CONFIG)
#define FW_CPU_PLL_CONFIG     ATH_UNSUPPORTED_REG_OFFSET
#endif

#if !defined(DRAM_BASE_ADDRESS)
#define DRAM_BASE_ADDRESS            ATH_UNSUPPORTED_REG_OFFSET
#endif

#if !defined(SOC_CORE_BASE_ADDRESS)
#define SOC_CORE_BASE_ADDRESS        ATH_UNSUPPORTED_REG_OFFSET
#endif

#if !defined(CPU_INTR_ADDRESS)
#define CPU_INTR_ADDRESS        ATH_UNSUPPORTED_REG_OFFSET
#endif

#if !defined(SOC_LF_TIMER_CONTROL0_ADDRESS)
#define SOC_LF_TIMER_CONTROL0_ADDRESS        ATH_UNSUPPORTED_REG_OFFSET
#define SOC_LF_TIMER_CONTROL0_ENABLE_MASK        ATH_UNSUPPORTED_REG_OFFSET
#endif

#if !defined(SOC_RESET_CONTROL_ADDRESS)
#define SOC_RESET_CONTROL_ADDRESS    ATH_UNSUPPORTED_REG_OFFSET
#define SOC_RESET_CONTROL_CE_RST_MASK    ATH_UNSUPPORTED_REG_OFFSET
#define SOC_RESET_CONTROL_CPU_WARM_RST_MASK    ATH_UNSUPPORTED_REG_OFFSET
#endif

#if !defined(CORE_CTRL_ADDRESS)
#define CORE_CTRL_ADDRESS            ATH_UNSUPPORTED_REG_OFFSET
#define CORE_CTRL_CPU_INTR_MASK      0
#endif

#if !defined(PCIE_INTR_ENABLE_ADDRESS)
#define PCIE_INTR_ENABLE_ADDRESS     ATH_UNSUPPORTED_REG_OFFSET
#define PCIE_INTR_CLR_ADDRESS        ATH_UNSUPPORTED_REG_OFFSET
#define PCIE_INTR_FIRMWARE_MASK      ATH_UNSUPPORTED_REG_OFFSET
#define PCIE_INTR_CE_MASK_ALL        ATH_UNSUPPORTED_REG_OFFSET
#define PCIE_INTR_CAUSE_ADDRESS      ATH_UNSUPPORTED_REG_OFFSET
#endif

#if !defined(WIFICMN_PCIE_BAR_REG_ADDRESS)
#define WIFICMN_PCIE_BAR_REG_ADDRESS    ATH_UNSUPPORTED_REG_OFFSET
#endif

#if !defined(WIFICMN_INT_STATUS_ADDRESS)
#define WIFICMN_INT_STATUS_ADDRESS    ATH_UNSUPPORTED_REG_OFFSET
#endif

#if !defined(FW_AXI_MSI_ADDR)
#define FW_AXI_MSI_ADDR    ATH_UNSUPPORTED_REG_OFFSET
#endif

#if !defined(FW_AXI_MSI_DATA)
#define FW_AXI_MSI_DATA    ATH_UNSUPPORTED_REG_OFFSET
#endif

#if !defined(WLAN_SUBSYSTEM_CORE_ID_ADDRESS)
#define WLAN_SUBSYSTEM_CORE_ID_ADDRESS ATH_UNSUPPORTED_REG_OFFSET
#endif

#if !defined(FPGA_VERSION_ADDRESS)
#define FPGA_VERSION_ADDRESS    ATH_UNSUPPORTED_REG_OFFSET
#endif

#if !defined(SI_CONFIG_ADDRESS)
#define SI_CONFIG_ADDRESS ATH_UNSUPPORTED_REG_OFFSET
#define SI_CONFIG_BIDIR_OD_DATA_LSB 0
#define SI_CONFIG_BIDIR_OD_DATA_MASK 0
#define SI_CONFIG_I2C_LSB 0
#define SI_CONFIG_I2C_MASK 0
#define SI_CONFIG_POS_SAMPLE_LSB 0
#define SI_CONFIG_POS_SAMPLE_MASK 0
#define SI_CONFIG_INACTIVE_CLK_LSB 0
#define SI_CONFIG_INACTIVE_CLK_MASK 0
#define SI_CONFIG_INACTIVE_DATA_LSB 0
#define SI_CONFIG_INACTIVE_DATA_MASK 0
#define SI_CONFIG_DIVIDER_LSB 0
#define SI_CONFIG_DIVIDER_MASK 0
#define SI_CONFIG_OFFSET 0
#define SI_TX_DATA0_OFFSET ATH_UNSUPPORTED_REG_OFFSET
#define SI_TX_DATA1_OFFSET ATH_UNSUPPORTED_REG_OFFSET
#define SI_RX_DATA0_OFFSET ATH_UNSUPPORTED_REG_OFFSET
#define SI_RX_DATA1_OFFSET ATH_UNSUPPORTED_REG_OFFSET
#define SI_CS_OFFSET ATH_UNSUPPORTED_REG_OFFSET
#define SI_CS_DONE_ERR_MASK 0
#define SI_CS_DONE_INT_MASK 0
#define SI_CS_START_LSB 0
#define SI_CS_START_MASK 0
#define SI_CS_RX_CNT_LSB 0
#define SI_CS_RX_CNT_MASK 0
#define SI_CS_TX_CNT_LSB 0
#define SI_CS_TX_CNT_MASK 0
#endif

#ifndef SI_BASE_ADDRESS
#define SI_BASE_ADDRESS ATH_UNSUPPORTED_REG_OFFSET
#endif

#ifndef WLAN_GPIO_PIN10_ADDRESS
#define WLAN_GPIO_PIN10_ADDRESS ATH_UNSUPPORTED_REG_OFFSET
#endif

#ifndef WLAN_GPIO_PIN11_ADDRESS
#define WLAN_GPIO_PIN11_ADDRESS ATH_UNSUPPORTED_REG_OFFSET
#endif

#ifndef WLAN_GPIO_PIN12_ADDRESS
#define WLAN_GPIO_PIN12_ADDRESS ATH_UNSUPPORTED_REG_OFFSET
#endif

#ifndef WLAN_GPIO_PIN13_ADDRESS
#define WLAN_GPIO_PIN13_ADDRESS ATH_UNSUPPORTED_REG_OFFSET
#endif

#ifndef WIFICMN_INT_STATUS_ADDRESS
#define WIFICMN_INT_STATUS_ADDRESS  ATH_UNSUPPORTED_REG_OFFSET
#endif

static struct targetdef_s my_target_def = {
	.d_RTC_SOC_BASE_ADDRESS = RTC_SOC_BASE_ADDRESS,
	.d_RTC_WMAC_BASE_ADDRESS = RTC_WMAC_BASE_ADDRESS,
	.d_SYSTEM_SLEEP_OFFSET = WLAN_SYSTEM_SLEEP_OFFSET,
	.d_WLAN_SYSTEM_SLEEP_OFFSET = WLAN_SYSTEM_SLEEP_OFFSET,
	.d_WLAN_SYSTEM_SLEEP_DISABLE_LSB = WLAN_SYSTEM_SLEEP_DISABLE_LSB,
	.d_WLAN_SYSTEM_SLEEP_DISABLE_MASK = WLAN_SYSTEM_SLEEP_DISABLE_MASK,
	.d_CLOCK_CONTROL_OFFSET = CLOCK_CONTROL_OFFSET,
	.d_CLOCK_CONTROL_SI0_CLK_MASK = CLOCK_CONTROL_SI0_CLK_MASK,
	.d_RESET_CONTROL_OFFSET = SOC_RESET_CONTROL_OFFSET,
	.d_RESET_CONTROL_SI0_RST_MASK = RESET_CONTROL_SI0_RST_MASK,
	.d_WLAN_RESET_CONTROL_OFFSET = WLAN_RESET_CONTROL_OFFSET,
	.d_WLAN_RESET_CONTROL_COLD_RST_MASK = WLAN_RESET_CONTROL_COLD_RST_MASK,
	.d_WLAN_RESET_CONTROL_WARM_RST_MASK = WLAN_RESET_CONTROL_WARM_RST_MASK,
	.d_GPIO_BASE_ADDRESS = GPIO_BASE_ADDRESS,
	.d_GPIO_PIN0_OFFSET = GPIO_PIN0_OFFSET,
	.d_GPIO_PIN1_OFFSET = GPIO_PIN1_OFFSET,
	.d_GPIO_PIN0_CONFIG_MASK = GPIO_PIN0_CONFIG_MASK,
	.d_GPIO_PIN1_CONFIG_MASK = GPIO_PIN1_CONFIG_MASK,
	.d_SI_CONFIG_BIDIR_OD_DATA_LSB = SI_CONFIG_BIDIR_OD_DATA_LSB,
	.d_SI_CONFIG_BIDIR_OD_DATA_MASK = SI_CONFIG_BIDIR_OD_DATA_MASK,
	.d_SI_CONFIG_I2C_LSB = SI_CONFIG_I2C_LSB,
	.d_SI_CONFIG_I2C_MASK = SI_CONFIG_I2C_MASK,
	.d_SI_CONFIG_POS_SAMPLE_LSB = SI_CONFIG_POS_SAMPLE_LSB,
	.d_SI_CONFIG_POS_SAMPLE_MASK = SI_CONFIG_POS_SAMPLE_MASK,
	.d_SI_CONFIG_INACTIVE_CLK_LSB = SI_CONFIG_INACTIVE_CLK_LSB,
	.d_SI_CONFIG_INACTIVE_CLK_MASK = SI_CONFIG_INACTIVE_CLK_MASK,
	.d_SI_CONFIG_INACTIVE_DATA_LSB = SI_CONFIG_INACTIVE_DATA_LSB,
	.d_SI_CONFIG_INACTIVE_DATA_MASK = SI_CONFIG_INACTIVE_DATA_MASK,
	.d_SI_CONFIG_DIVIDER_LSB = SI_CONFIG_DIVIDER_LSB,
	.d_SI_CONFIG_DIVIDER_MASK = SI_CONFIG_DIVIDER_MASK,
	.d_SI_BASE_ADDRESS = SI_BASE_ADDRESS,
	.d_SI_CONFIG_OFFSET = SI_CONFIG_OFFSET,
	.d_SI_TX_DATA0_OFFSET = SI_TX_DATA0_OFFSET,
	.d_SI_TX_DATA1_OFFSET = SI_TX_DATA1_OFFSET,
	.d_SI_RX_DATA0_OFFSET = SI_RX_DATA0_OFFSET,
	.d_SI_RX_DATA1_OFFSET = SI_RX_DATA1_OFFSET,
	.d_SI_CS_OFFSET = SI_CS_OFFSET,
	.d_SI_CS_DONE_ERR_MASK = SI_CS_DONE_ERR_MASK,
	.d_SI_CS_DONE_INT_MASK = SI_CS_DONE_INT_MASK,
	.d_SI_CS_START_LSB = SI_CS_START_LSB,
	.d_SI_CS_START_MASK = SI_CS_START_MASK,
	.d_SI_CS_RX_CNT_LSB = SI_CS_RX_CNT_LSB,
	.d_SI_CS_RX_CNT_MASK = SI_CS_RX_CNT_MASK,
	.d_SI_CS_TX_CNT_LSB = SI_CS_TX_CNT_LSB,
	.d_SI_CS_TX_CNT_MASK = SI_CS_TX_CNT_MASK,
	.d_BOARD_DATA_SZ = MY_TARGET_BOARD_DATA_SZ,
	.d_BOARD_EXT_DATA_SZ = MY_TARGET_BOARD_EXT_DATA_SZ,
	.d_MBOX_BASE_ADDRESS = MBOX_BASE_ADDRESS,
	.d_LOCAL_SCRATCH_OFFSET = LOCAL_SCRATCH_OFFSET,
	.d_CPU_CLOCK_OFFSET = CPU_CLOCK_OFFSET,
	.d_GPIO_PIN10_OFFSET = GPIO_PIN10_OFFSET,
	.d_GPIO_PIN11_OFFSET = GPIO_PIN11_OFFSET,
	.d_GPIO_PIN12_OFFSET = GPIO_PIN12_OFFSET,
	.d_GPIO_PIN13_OFFSET = GPIO_PIN13_OFFSET,
	.d_CLOCK_GPIO_OFFSET = CLOCK_GPIO_OFFSET,
	.d_CPU_CLOCK_STANDARD_LSB = CPU_CLOCK_STANDARD_LSB,
	.d_CPU_CLOCK_STANDARD_MASK = CPU_CLOCK_STANDARD_MASK,
	.d_LPO_CAL_ENABLE_LSB = LPO_CAL_ENABLE_LSB,
	.d_LPO_CAL_ENABLE_MASK = LPO_CAL_ENABLE_MASK,
	.d_CLOCK_GPIO_BT_CLK_OUT_EN_LSB = CLOCK_GPIO_BT_CLK_OUT_EN_LSB,
	.d_CLOCK_GPIO_BT_CLK_OUT_EN_MASK = CLOCK_GPIO_BT_CLK_OUT_EN_MASK,
	.d_ANALOG_INTF_BASE_ADDRESS = ANALOG_INTF_BASE_ADDRESS,
	.d_WLAN_MAC_BASE_ADDRESS = WLAN_MAC_BASE_ADDRESS,
	.d_FW_INDICATOR_ADDRESS = FW_INDICATOR_ADDRESS,
	.d_FW_CPU_PLL_CONFIG = FW_CPU_PLL_CONFIG,
	.d_DRAM_BASE_ADDRESS = DRAM_BASE_ADDRESS,
	.d_SOC_CORE_BASE_ADDRESS = SOC_CORE_BASE_ADDRESS,
	.d_CORE_CTRL_ADDRESS = CORE_CTRL_ADDRESS,
	.d_CE_COUNT = CE_COUNT,
	.d_MSI_NUM_REQUEST = MSI_NUM_REQUEST,
	.d_MSI_ASSIGN_FW = MSI_ASSIGN_FW,
	.d_MSI_ASSIGN_CE_INITIAL = MSI_ASSIGN_CE_INITIAL,
	.d_PCIE_INTR_ENABLE_ADDRESS = PCIE_INTR_ENABLE_ADDRESS,
	.d_PCIE_INTR_CLR_ADDRESS = PCIE_INTR_CLR_ADDRESS,
	.d_PCIE_INTR_FIRMWARE_MASK = PCIE_INTR_FIRMWARE_MASK,
	.d_PCIE_INTR_CE_MASK_ALL = PCIE_INTR_CE_MASK_ALL,
	.d_CORE_CTRL_CPU_INTR_MASK = CORE_CTRL_CPU_INTR_MASK,
	.d_WIFICMN_PCIE_BAR_REG_ADDRESS = WIFICMN_PCIE_BAR_REG_ADDRESS,
	/* htt_rx.c */
	/* htt tx */
	.d_MSDU_LINK_EXT_3_TCP_OVER_IPV4_CHECKSUM_EN_MASK
		= MSDU_LINK_EXT_3_TCP_OVER_IPV4_CHECKSUM_EN_MASK,
	.d_MSDU_LINK_EXT_3_TCP_OVER_IPV6_CHECKSUM_EN_MASK
		= MSDU_LINK_EXT_3_TCP_OVER_IPV6_CHECKSUM_EN_MASK,
	.d_MSDU_LINK_EXT_3_UDP_OVER_IPV4_CHECKSUM_EN_MASK
		= MSDU_LINK_EXT_3_UDP_OVER_IPV4_CHECKSUM_EN_MASK,
	.d_MSDU_LINK_EXT_3_UDP_OVER_IPV6_CHECKSUM_EN_MASK
		= MSDU_LINK_EXT_3_UDP_OVER_IPV6_CHECKSUM_EN_MASK,
	.d_MSDU_LINK_EXT_3_TCP_OVER_IPV4_CHECKSUM_EN_LSB
		= MSDU_LINK_EXT_3_TCP_OVER_IPV4_CHECKSUM_EN_LSB,
	.d_MSDU_LINK_EXT_3_TCP_OVER_IPV6_CHECKSUM_EN_LSB
		= MSDU_LINK_EXT_3_TCP_OVER_IPV6_CHECKSUM_EN_LSB,
	.d_MSDU_LINK_EXT_3_UDP_OVER_IPV4_CHECKSUM_EN_LSB
		= MSDU_LINK_EXT_3_UDP_OVER_IPV4_CHECKSUM_EN_LSB,
	.d_MSDU_LINK_EXT_3_UDP_OVER_IPV6_CHECKSUM_EN_LSB
		= MSDU_LINK_EXT_3_UDP_OVER_IPV6_CHECKSUM_EN_LSB,
	/* copy_engine.c  */
	.d_SR_WR_INDEX_ADDRESS = SR_WR_INDEX_ADDRESS,
	.d_DST_WATERMARK_ADDRESS = DST_WATERMARK_ADDRESS,

	.d_PCIE_INTR_CAUSE_ADDRESS = PCIE_INTR_CAUSE_ADDRESS,
	.d_SOC_RESET_CONTROL_ADDRESS = SOC_RESET_CONTROL_ADDRESS,
	.d_SOC_RESET_CONTROL_CE_RST_MASK = SOC_RESET_CONTROL_CE_RST_MASK,
	.d_SOC_RESET_CONTROL_CPU_WARM_RST_MASK
		= SOC_RESET_CONTROL_CPU_WARM_RST_MASK,
	.d_CPU_INTR_ADDRESS = CPU_INTR_ADDRESS,
	.d_SOC_LF_TIMER_CONTROL0_ADDRESS = SOC_LF_TIMER_CONTROL0_ADDRESS,
	.d_SOC_LF_TIMER_CONTROL0_ENABLE_MASK
		= SOC_LF_TIMER_CONTROL0_ENABLE_MASK,
	.d_SI_CONFIG_ERR_INT_MASK = SI_CONFIG_ERR_INT_MASK,
	.d_SI_CONFIG_ERR_INT_LSB = SI_CONFIG_ERR_INT_LSB,
	.d_GPIO_ENABLE_W1TS_LOW_ADDRESS = GPIO_ENABLE_W1TS_LOW_ADDRESS,
	.d_GPIO_PIN0_CONFIG_LSB = GPIO_PIN0_CONFIG_LSB,
	.d_GPIO_PIN0_PAD_PULL_LSB = GPIO_PIN0_PAD_PULL_LSB,
	.d_GPIO_PIN0_PAD_PULL_MASK = GPIO_PIN0_PAD_PULL_MASK,
	.d_SOC_CHIP_ID_ADDRESS = SOC_CHIP_ID_ADDRESS,
	.d_SOC_CHIP_ID_REVISION_MASK = SOC_CHIP_ID_REVISION_MASK,
	.d_SOC_CHIP_ID_REVISION_LSB = SOC_CHIP_ID_REVISION_LSB,
	.d_SOC_CHIP_ID_REVISION_MSB = SOC_CHIP_ID_REVISION_MSB,
	.d_WIFICMN_PCIE_BAR_REG_ADDRESS = WIFICMN_PCIE_BAR_REG_ADDRESS,
	.d_FW_AXI_MSI_ADDR = FW_AXI_MSI_ADDR,
	.d_FW_AXI_MSI_DATA = FW_AXI_MSI_DATA,
	.d_WLAN_SUBSYSTEM_CORE_ID_ADDRESS = WLAN_SUBSYSTEM_CORE_ID_ADDRESS,
	.d_WIFICMN_INT_STATUS_ADDRESS = WIFICMN_INT_STATUS_ADDRESS,
};

struct targetdef_s *MY_TARGET_DEF = &my_target_def;
#else
#endif

#if defined(MY_CEREG_DEF)

#if !defined(CE_DDR_ADDRESS_FOR_RRI_LOW)
#define CE_DDR_ADDRESS_FOR_RRI_LOW  ATH_UNSUPPORTED_REG_OFFSET
#endif
#if !defined(CE_DDR_ADDRESS_FOR_RRI_HIGH)
#define CE_DDR_ADDRESS_FOR_RRI_HIGH ATH_UNSUPPORTED_REG_OFFSET
#endif
#if !defined(SR_BA_ADDRESS_HIGH)
#define SR_BA_ADDRESS_HIGH ATH_UNSUPPORTED_REG_OFFSET
#endif
#if !defined(DR_BA_ADDRESS_HIGH)
#define DR_BA_ADDRESS_HIGH ATH_UNSUPPORTED_REG_OFFSET
#endif
#if !defined(CE_CMD_REGISTER)
#define CE_CMD_REGISTER ATH_UNSUPPORTED_REG_OFFSET
#endif
#if !defined(CE_MSI_ADDRESS)
#define CE_MSI_ADDRESS ATH_UNSUPPORTED_REG_OFFSET
#endif
#if !defined(CE_MSI_ADDRESS_HIGH)
#define CE_MSI_ADDRESS_HIGH ATH_UNSUPPORTED_REG_OFFSET
#endif
#if !defined(CE_MSI_DATA)
#define CE_MSI_DATA ATH_UNSUPPORTED_REG_OFFSET
#endif
#if !defined(CE_MSI_ENABLE_BIT)
#define CE_MSI_ENABLE_BIT ATH_UNSUPPORTED_REG_OFFSET
#endif
#if !defined(CE_CTRL1_IDX_UPD_EN_MASK)
#define CE_CTRL1_IDX_UPD_EN_MASK ATH_UNSUPPORTED_REG_OFFSET
#endif
#if !defined(CE_WRAPPER_DEBUG_OFFSET)
#define CE_WRAPPER_DEBUG_OFFSET ATH_UNSUPPORTED_REG_OFFSET
#endif
#if !defined(CE_DEBUG_OFFSET)
#define CE_DEBUG_OFFSET ATH_UNSUPPORTED_REG_OFFSET
#endif
#if !defined(A_WIFI_APB_3_A_WCMN_APPS_CE_INTR_ENABLES)
#define A_WIFI_APB_3_A_WCMN_APPS_CE_INTR_ENABLES ATH_UNSUPPORTED_REG_OFFSET
#endif
#if !defined(A_WIFI_APB_3_A_WCMN_APPS_CE_INTR_STATUS)
#define A_WIFI_APB_3_A_WCMN_APPS_CE_INTR_STATUS ATH_UNSUPPORTED_REG_OFFSET
#endif
#if !defined(HOST_IE_ADDRESS_2)
#define HOST_IE_ADDRESS_2 ATH_UNSUPPORTED_REG_OFFSET
#endif
#if !defined(HOST_IE_ADDRESS_3)
#define HOST_IE_ADDRESS_3 ATH_UNSUPPORTED_REG_OFFSET
#endif
#if !defined(HOST_IE_REG1_CE_LSB)
#define HOST_IE_REG1_CE_LSB 0
#endif
#if !defined(HOST_IE_REG2_CE_LSB)
#define HOST_IE_REG2_CE_LSB 0
#endif
#if !defined(HOST_IE_REG3_CE_LSB)
#define HOST_IE_REG3_CE_LSB 0
#endif

static struct ce_reg_def my_ce_reg_def = {
	/* copy_engine.c */
	.d_DST_WR_INDEX_ADDRESS = DST_WR_INDEX_ADDRESS,
	.d_SRC_WATERMARK_ADDRESS = SRC_WATERMARK_ADDRESS,
	.d_SRC_WATERMARK_LOW_MASK = SRC_WATERMARK_LOW_MASK,
	.d_SRC_WATERMARK_HIGH_MASK = SRC_WATERMARK_HIGH_MASK,
	.d_DST_WATERMARK_LOW_MASK = DST_WATERMARK_LOW_MASK,
	.d_DST_WATERMARK_HIGH_MASK = DST_WATERMARK_HIGH_MASK,
	.d_CURRENT_SRRI_ADDRESS = CURRENT_SRRI_ADDRESS,
	.d_CURRENT_DRRI_ADDRESS = CURRENT_DRRI_ADDRESS,
	.d_HOST_IS_SRC_RING_HIGH_WATERMARK_MASK
		= HOST_IS_SRC_RING_HIGH_WATERMARK_MASK,
	.d_HOST_IS_SRC_RING_LOW_WATERMARK_MASK
		= HOST_IS_SRC_RING_LOW_WATERMARK_MASK,
	.d_HOST_IS_DST_RING_HIGH_WATERMARK_MASK
		= HOST_IS_DST_RING_HIGH_WATERMARK_MASK,
	.d_HOST_IS_DST_RING_LOW_WATERMARK_MASK
		= HOST_IS_DST_RING_LOW_WATERMARK_MASK,
	.d_HOST_IS_ADDRESS = HOST_IS_ADDRESS,
	.d_MISC_IS_ADDRESS = MISC_IS_ADDRESS,
	.d_HOST_IS_COPY_COMPLETE_MASK = HOST_IS_COPY_COMPLETE_MASK,
	.d_CE_WRAPPER_BASE_ADDRESS = CE_WRAPPER_BASE_ADDRESS,
	.d_CE_WRAPPER_INTERRUPT_SUMMARY_ADDRESS
		= CE_WRAPPER_INTERRUPT_SUMMARY_ADDRESS,
	.d_CE_DDR_ADDRESS_FOR_RRI_LOW = CE_DDR_ADDRESS_FOR_RRI_LOW,
	.d_CE_DDR_ADDRESS_FOR_RRI_HIGH = CE_DDR_ADDRESS_FOR_RRI_HIGH,
	.d_HOST_IE_ADDRESS = HOST_IE_ADDRESS,
	.d_HOST_IE_REG1_CE_LSB = HOST_IE_REG1_CE_LSB,
	.d_HOST_IE_ADDRESS_2 = HOST_IE_ADDRESS_2,
	.d_HOST_IE_REG2_CE_LSB = HOST_IE_REG2_CE_LSB,
	.d_HOST_IE_ADDRESS_3 = HOST_IE_ADDRESS_3,
	.d_HOST_IE_REG3_CE_LSB = HOST_IE_REG3_CE_LSB,
	.d_HOST_IE_COPY_COMPLETE_MASK = HOST_IE_COPY_COMPLETE_MASK,
	.d_SR_BA_ADDRESS = SR_BA_ADDRESS,
	.d_SR_BA_ADDRESS_HIGH = SR_BA_ADDRESS_HIGH,
	.d_SR_SIZE_ADDRESS = SR_SIZE_ADDRESS,
	.d_CE_CTRL1_ADDRESS = CE_CTRL1_ADDRESS,
	.d_CE_CTRL1_DMAX_LENGTH_MASK = CE_CTRL1_DMAX_LENGTH_MASK,
	.d_DR_BA_ADDRESS = DR_BA_ADDRESS,
	.d_DR_BA_ADDRESS_HIGH = DR_BA_ADDRESS_HIGH,
	.d_DR_SIZE_ADDRESS = DR_SIZE_ADDRESS,
	.d_CE_CMD_REGISTER = CE_CMD_REGISTER,
	.d_CE_MSI_ADDRESS = CE_MSI_ADDRESS,
	.d_CE_MSI_ADDRESS_HIGH = CE_MSI_ADDRESS_HIGH,
	.d_CE_MSI_DATA = CE_MSI_DATA,
	.d_CE_MSI_ENABLE_BIT = CE_MSI_ENABLE_BIT,
	.d_MISC_IE_ADDRESS = MISC_IE_ADDRESS,
	.d_MISC_IS_AXI_ERR_MASK = MISC_IS_AXI_ERR_MASK,
	.d_MISC_IS_DST_ADDR_ERR_MASK = MISC_IS_DST_ADDR_ERR_MASK,
	.d_MISC_IS_SRC_LEN_ERR_MASK = MISC_IS_SRC_LEN_ERR_MASK,
	.d_MISC_IS_DST_MAX_LEN_VIO_MASK = MISC_IS_DST_MAX_LEN_VIO_MASK,
	.d_MISC_IS_DST_RING_OVERFLOW_MASK = MISC_IS_DST_RING_OVERFLOW_MASK,
	.d_MISC_IS_SRC_RING_OVERFLOW_MASK = MISC_IS_SRC_RING_OVERFLOW_MASK,
	.d_SRC_WATERMARK_LOW_LSB = SRC_WATERMARK_LOW_LSB,
	.d_SRC_WATERMARK_HIGH_LSB = SRC_WATERMARK_HIGH_LSB,
	.d_DST_WATERMARK_LOW_LSB = DST_WATERMARK_LOW_LSB,
	.d_DST_WATERMARK_HIGH_LSB = DST_WATERMARK_HIGH_LSB,
	.d_CE_WRAPPER_INTERRUPT_SUMMARY_HOST_MSI_MASK
		= CE_WRAPPER_INTERRUPT_SUMMARY_HOST_MSI_MASK,
	.d_CE_WRAPPER_INTERRUPT_SUMMARY_HOST_MSI_LSB
		= CE_WRAPPER_INTERRUPT_SUMMARY_HOST_MSI_LSB,
	.d_CE_CTRL1_DMAX_LENGTH_LSB = CE_CTRL1_DMAX_LENGTH_LSB,
	.d_CE_CTRL1_SRC_RING_BYTE_SWAP_EN_MASK
		= CE_CTRL1_SRC_RING_BYTE_SWAP_EN_MASK,
	.d_CE_CTRL1_DST_RING_BYTE_SWAP_EN_MASK
		= CE_CTRL1_DST_RING_BYTE_SWAP_EN_MASK,
	.d_CE_CTRL1_SRC_RING_BYTE_SWAP_EN_LSB
		= CE_CTRL1_SRC_RING_BYTE_SWAP_EN_LSB,
	.d_CE_CTRL1_DST_RING_BYTE_SWAP_EN_LSB
		= CE_CTRL1_DST_RING_BYTE_SWAP_EN_LSB,
	.d_CE_CTRL1_IDX_UPD_EN_MASK = CE_CTRL1_IDX_UPD_EN_MASK,
	.d_CE_WRAPPER_DEBUG_OFFSET = CE_WRAPPER_DEBUG_OFFSET,
	.d_CE_WRAPPER_DEBUG_SEL_MSB = CE_WRAPPER_DEBUG_SEL_MSB,
	.d_CE_WRAPPER_DEBUG_SEL_LSB = CE_WRAPPER_DEBUG_SEL_LSB,
	.d_CE_WRAPPER_DEBUG_SEL_MASK = CE_WRAPPER_DEBUG_SEL_MASK,
	.d_CE_DEBUG_OFFSET = CE_DEBUG_OFFSET,
	.d_CE_DEBUG_SEL_MSB = CE_DEBUG_SEL_MSB,
	.d_CE_DEBUG_SEL_LSB = CE_DEBUG_SEL_LSB,
	.d_CE_DEBUG_SEL_MASK = CE_DEBUG_SEL_MASK,
	.d_CE0_BASE_ADDRESS = CE0_BASE_ADDRESS,
	.d_CE1_BASE_ADDRESS = CE1_BASE_ADDRESS,
	.d_A_WIFI_APB_3_A_WCMN_APPS_CE_INTR_ENABLES
		= A_WIFI_APB_3_A_WCMN_APPS_CE_INTR_ENABLES,
	.d_A_WIFI_APB_3_A_WCMN_APPS_CE_INTR_STATUS
		= A_WIFI_APB_3_A_WCMN_APPS_CE_INTR_STATUS
};

struct ce_reg_def *MY_CEREG_DEF = &my_ce_reg_def;

#else
#endif
#endif
