File Index
Files and directories
Sign in
FILE

acp-dsp-offset.h

File preview with syntax highlighting.

linux-6.19.14/sound/soc/sof/amd/acp-dsp-offset.h C
  1/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
  2/*
  3 * This file is provided under a dual BSD/GPLv2 license. When using or
  4 * redistributing this file, you may do so under either license.
  5 *
  6 * Copyright(c) 2021, 2023, 2024 Advanced Micro Devices, Inc. All rights reserved.
  7 *
  8 * Author: Ajit Kumar Pandey <AjitKumar.Pandey@amd.com>
  9 */
 10
 11#ifndef _ACP_DSP_IP_OFFSET_H
 12#define _ACP_DSP_IP_OFFSET_H
 13
 14/* Registers from ACP_DMA_0 block */
 15#define ACP_DMA_CNTL_0				0x00
 16#define ACP_DMA_DSCR_STRT_IDX_0			0x20
 17#define ACP_DMA_DSCR_CNT_0			0x40
 18#define ACP_DMA_PRIO_0				0x60
 19#define ACP_DMA_CUR_DSCR_0			0x80
 20#define ACP_DMA_ERR_STS_0			0xC0
 21#define ACP_DMA_DESC_BASE_ADDR			0xE0
 22#define ACP_DMA_DESC_MAX_NUM_DSCR		0xE4
 23#define ACP_DMA_CH_STS				0xE8
 24#define ACP_DMA_CH_GROUP			0xEC
 25#define ACP_DMA_CH_RST_STS			0xF0
 26#define ACP70_DMA_CNTL_0			0x00
 27#define ACP70_DMA_DSCR_STRT_IDX_0		0x28
 28#define ACP70_DMA_DSCR_CNT_0			0x50
 29#define ACP70_DMA_PRIO_0			0x78
 30#define ACP70_DMA_CUR_DSCR_0			0xA0
 31#define ACP70_DMA_ERR_STS_0			0xF0
 32#define ACP70_DMA_DESC_BASE_ADDR		0x118
 33#define ACP70_DMA_DESC_MAX_NUM_DSCR		0x11C
 34#define ACP70_DMA_CH_STS			0x120
 35#define ACP70_DMA_CH_GROUP			0x124
 36#define ACP70_DMA_CH_RST_STS			0x128
 37
 38/* Registers from ACP_DSP_0 block */
 39#define ACP_DSP0_RUNSTALL			0x414
 40
 41/* Registers from ACP_AXI2AXIATU block */
 42#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_1		0xC00
 43#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_1		0xC04
 44#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_2		0xC08
 45#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_2		0xC0C
 46#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_3		0xC10
 47#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_3		0xC14
 48#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_4		0xC18
 49#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_4		0xC1C
 50#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_5		0xC20
 51#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_5		0xC24
 52#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_6		0xC28
 53#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_6		0xC2C
 54#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_7		0xC30
 55#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_7		0xC34
 56#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_8		0xC38
 57#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_8		0xC3C
 58#define ACPAXI2AXI_ATU_CTRL			0xC40
 59#define ACP_SOFT_RESET				0x1000
 60#define ACP_CONTROL				0x1004
 61
 62#define ACP3X_I2S_PIN_CONFIG			0x1400
 63#define ACP5X_I2S_PIN_CONFIG			0x1400
 64#define ACP6X_I2S_PIN_CONFIG			0x1440
 65
 66/* Registers offsets from ACP_PGFSM block */
 67#define ACP3X_PGFSM_BASE			0x141C
 68#define ACP5X_PGFSM_BASE			0x1424
 69#define ACP6X_PGFSM_BASE                        0x1024
 70#define ACP70_PGFSM_BASE                        ACP6X_PGFSM_BASE
 71#define PGFSM_CONTROL_OFFSET			0x0
 72#define PGFSM_STATUS_OFFSET			0x4
 73#define ACP3X_CLKMUX_SEL			0x1424
 74#define ACP5X_CLKMUX_SEL			0x142C
 75#define ACP6X_CLKMUX_SEL			0x102C
 76#define ACP70_CLKMUX_SEL			ACP6X_CLKMUX_SEL
 77
 78/* Registers from ACP_INTR block */
 79#define ACP3X_EXT_INTR_STAT			0x1808
 80#define ACP5X_EXT_INTR_STAT			0x1808
 81#define ACP6X_EXTERNAL_INTR_ENB			0x1A00
 82#define ACP6X_EXTERNAL_INTR_CNTL		0x1A04
 83#define ACP6X_EXT_INTR_STAT                     0x1A0C
 84#define ACP6X_EXT_INTR_STAT1			0x1A10
 85#define ACP70_EXTERNAL_INTR_ENB			ACP6X_EXTERNAL_INTR_ENB
 86#define ACP70_EXTERNAL_INTR_CNTL		ACP6X_EXTERNAL_INTR_CNTL
 87#define ACP70_EXT_INTR_STAT			ACP6X_EXT_INTR_STAT
 88#define ACP70_EXT_INTR_STAT1			ACP6X_EXT_INTR_STAT1
 89
 90#define ACP3X_DSP_SW_INTR_BASE			0x1814
 91#define ACP5X_DSP_SW_INTR_BASE			0x1814
 92#define ACP6X_DSP_SW_INTR_BASE                  0x1808
 93#define ACP70_DSP_SW_INTR_BASE			ACP6X_DSP_SW_INTR_BASE
 94#define DSP_SW_INTR_CNTL_OFFSET			0x0
 95#define DSP_SW_INTR_STAT_OFFSET			0x4
 96#define DSP_SW_INTR_TRIG_OFFSET			0x8
 97#define ACP3X_ERROR_STATUS			0x18C4
 98#define ACP6X_ERROR_STATUS			0x1A4C
 99#define ACP70_ERROR_STATUS			ACP6X_ERROR_STATUS
100#define ACP3X_AXI2DAGB_SEM_0			0x1880
101#define ACP5X_AXI2DAGB_SEM_0			0x1884
102#define ACP6X_AXI2DAGB_SEM_0			0x1874
103#define ACP70_AXI2DAGB_SEM_0			ACP6X_AXI2DAGB_SEM_0
104
105/* ACP common registers to report errors related to I2S & SoundWire interfaces */
106#define ACP3X_SW_I2S_ERROR_REASON		0x18C8
107#define ACP6X_SW0_I2S_ERROR_REASON		0x18B4
108#define ACP7X_SW0_I2S_ERROR_REASON		ACP6X_SW0_I2S_ERROR_REASON
109#define ACP_SW1_I2S_ERROR_REASON		0x1A50
110
111/* Registers from ACP_SHA block */
112#define ACP_SHA_DSP_FW_QUALIFIER		0x1C70
113#define ACP_SHA_DMA_CMD				0x1CB0
114#define ACP_SHA_MSG_LENGTH			0x1CB4
115#define ACP_SHA_DMA_STRT_ADDR			0x1CB8
116#define ACP_SHA_DMA_DESTINATION_ADDR		0x1CBC
117#define ACP_SHA_DMA_CMD_STS			0x1CC0
118#define ACP_SHA_DMA_ERR_STATUS			0x1CC4
119#define ACP_SHA_TRANSFER_BYTE_CNT		0x1CC8
120#define ACP_SHA_DMA_INCLUDE_HDR         0x1CCC
121#define ACP_SHA_PSP_ACK                         0x1C74
122
123#define ACP_SCRATCH_REG_0			0x10000
124#define ACP6X_DSP_FUSION_RUNSTALL		0x0644
125#define ACP70_DSP_FUSION_RUNSTALL		ACP6X_DSP_FUSION_RUNSTALL
126
127/* Cache window registers */
128#define ACP_DSP0_CACHE_OFFSET0			0x0420
129#define ACP_DSP0_CACHE_SIZE0			0x0424
130
131#define ACP_SW0_EN				0x3000
132#define ACP_SW1_EN				0x3C00
133#define ACP70_PME_EN				0x1400
134#define ACP70_EXTERNAL_INTR_CNTL1		0x1A08
135#define ACP70_SW0_WAKE_EN			0x1458
136#define ACP70_SW1_WAKE_EN			0x1460
137#define ACP70_SDW_HOST_WAKE_MASK		0x0C00000
138#define ACP70_SDW0_HOST_WAKE_STAT		BIT(24)
139#define ACP70_SDW1_HOST_WAKE_STAT		BIT(25)
140#define ACP70_SDW0_PME_STAT			BIT(26)
141#define ACP70_SDW1_PME_STAT			BIT(27)
142
143#endif
~/ Read-only file preview.