162306a36Sopenharmony_ci/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * This file is provided under a dual BSD/GPLv2 license. When using or
462306a36Sopenharmony_ci * redistributing this file, you may do so under either license.
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci * Copyright(c) 2021, 2023 Advanced Micro Devices, Inc. All rights reserved.
762306a36Sopenharmony_ci *
862306a36Sopenharmony_ci * Author: Ajit Kumar Pandey <AjitKumar.Pandey@amd.com>
962306a36Sopenharmony_ci */
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#ifndef _ACP_DSP_IP_OFFSET_H
1262306a36Sopenharmony_ci#define _ACP_DSP_IP_OFFSET_H
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci/* Registers from ACP_DMA_0 block */
1562306a36Sopenharmony_ci#define ACP_DMA_CNTL_0				0x00
1662306a36Sopenharmony_ci#define ACP_DMA_DSCR_STRT_IDX_0			0x20
1762306a36Sopenharmony_ci#define ACP_DMA_DSCR_CNT_0			0x40
1862306a36Sopenharmony_ci#define ACP_DMA_PRIO_0				0x60
1962306a36Sopenharmony_ci#define ACP_DMA_CUR_DSCR_0			0x80
2062306a36Sopenharmony_ci#define ACP_DMA_ERR_STS_0			0xC0
2162306a36Sopenharmony_ci#define ACP_DMA_DESC_BASE_ADDR			0xE0
2262306a36Sopenharmony_ci#define ACP_DMA_DESC_MAX_NUM_DSCR		0xE4
2362306a36Sopenharmony_ci#define ACP_DMA_CH_STS				0xE8
2462306a36Sopenharmony_ci#define ACP_DMA_CH_GROUP			0xEC
2562306a36Sopenharmony_ci#define ACP_DMA_CH_RST_STS			0xF0
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci/* Registers from ACP_DSP_0 block */
2862306a36Sopenharmony_ci#define ACP_DSP0_RUNSTALL			0x414
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci/* Registers from ACP_AXI2AXIATU block */
3162306a36Sopenharmony_ci#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_1		0xC00
3262306a36Sopenharmony_ci#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_1		0xC04
3362306a36Sopenharmony_ci#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_2		0xC08
3462306a36Sopenharmony_ci#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_2		0xC0C
3562306a36Sopenharmony_ci#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_3		0xC10
3662306a36Sopenharmony_ci#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_3		0xC14
3762306a36Sopenharmony_ci#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_4		0xC18
3862306a36Sopenharmony_ci#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_4		0xC1C
3962306a36Sopenharmony_ci#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_5		0xC20
4062306a36Sopenharmony_ci#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_5		0xC24
4162306a36Sopenharmony_ci#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_6		0xC28
4262306a36Sopenharmony_ci#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_6		0xC2C
4362306a36Sopenharmony_ci#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_7		0xC30
4462306a36Sopenharmony_ci#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_7		0xC34
4562306a36Sopenharmony_ci#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_8		0xC38
4662306a36Sopenharmony_ci#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_8		0xC3C
4762306a36Sopenharmony_ci#define ACPAXI2AXI_ATU_CTRL			0xC40
4862306a36Sopenharmony_ci#define ACP_SOFT_RESET				0x1000
4962306a36Sopenharmony_ci#define ACP_CONTROL				0x1004
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci#define ACP3X_I2S_PIN_CONFIG			0x1400
5262306a36Sopenharmony_ci#define ACP5X_I2S_PIN_CONFIG			0x1400
5362306a36Sopenharmony_ci#define ACP6X_I2S_PIN_CONFIG			0x1440
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci/* Registers offsets from ACP_PGFSM block */
5662306a36Sopenharmony_ci#define ACP3X_PGFSM_BASE			0x141C
5762306a36Sopenharmony_ci#define ACP5X_PGFSM_BASE			0x1424
5862306a36Sopenharmony_ci#define ACP6X_PGFSM_BASE                        0x1024
5962306a36Sopenharmony_ci#define PGFSM_CONTROL_OFFSET			0x0
6062306a36Sopenharmony_ci#define PGFSM_STATUS_OFFSET			0x4
6162306a36Sopenharmony_ci#define ACP3X_CLKMUX_SEL			0x1424
6262306a36Sopenharmony_ci#define ACP5X_CLKMUX_SEL			0x142C
6362306a36Sopenharmony_ci#define ACP6X_CLKMUX_SEL			0x102C
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci/* Registers from ACP_INTR block */
6662306a36Sopenharmony_ci#define ACP3X_EXT_INTR_STAT			0x1808
6762306a36Sopenharmony_ci#define ACP5X_EXT_INTR_STAT			0x1808
6862306a36Sopenharmony_ci#define ACP6X_EXT_INTR_STAT                     0x1A0C
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci#define ACP3X_DSP_SW_INTR_BASE			0x1814
7162306a36Sopenharmony_ci#define ACP5X_DSP_SW_INTR_BASE			0x1814
7262306a36Sopenharmony_ci#define ACP6X_DSP_SW_INTR_BASE                  0x1808
7362306a36Sopenharmony_ci#define DSP_SW_INTR_CNTL_OFFSET			0x0
7462306a36Sopenharmony_ci#define DSP_SW_INTR_STAT_OFFSET			0x4
7562306a36Sopenharmony_ci#define DSP_SW_INTR_TRIG_OFFSET			0x8
7662306a36Sopenharmony_ci#define ACP_ERROR_STATUS			0x18C4
7762306a36Sopenharmony_ci#define ACP3X_AXI2DAGB_SEM_0			0x1880
7862306a36Sopenharmony_ci#define ACP5X_AXI2DAGB_SEM_0			0x1884
7962306a36Sopenharmony_ci#define ACP6X_AXI2DAGB_SEM_0			0x1874
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci/* Registers from ACP_SHA block */
8262306a36Sopenharmony_ci#define ACP_SHA_DSP_FW_QUALIFIER		0x1C70
8362306a36Sopenharmony_ci#define ACP_SHA_DMA_CMD				0x1CB0
8462306a36Sopenharmony_ci#define ACP_SHA_MSG_LENGTH			0x1CB4
8562306a36Sopenharmony_ci#define ACP_SHA_DMA_STRT_ADDR			0x1CB8
8662306a36Sopenharmony_ci#define ACP_SHA_DMA_DESTINATION_ADDR		0x1CBC
8762306a36Sopenharmony_ci#define ACP_SHA_DMA_CMD_STS			0x1CC0
8862306a36Sopenharmony_ci#define ACP_SHA_DMA_ERR_STATUS			0x1CC4
8962306a36Sopenharmony_ci#define ACP_SHA_TRANSFER_BYTE_CNT		0x1CC8
9062306a36Sopenharmony_ci#define ACP_SHA_DMA_INCLUDE_HDR         0x1CCC
9162306a36Sopenharmony_ci#define ACP_SHA_PSP_ACK                         0x1C74
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci#define ACP_SCRATCH_REG_0			0x10000
9462306a36Sopenharmony_ci#define ACP6X_DSP_FUSION_RUNSTALL		0x0644
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci/* Cache window registers */
9762306a36Sopenharmony_ci#define ACP_DSP0_CACHE_OFFSET0			0x0420
9862306a36Sopenharmony_ci#define ACP_DSP0_CACHE_SIZE0			0x0424
9962306a36Sopenharmony_ci#endif
100