acp-dsp-offset.h 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  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. #ifndef _ACP_DSP_IP_OFFSET_H
  11. #define _ACP_DSP_IP_OFFSET_H
  12. /* Registers from ACP_DMA_0 block */
  13. #define ACP_DMA_CNTL_0 0x00
  14. #define ACP_DMA_DSCR_STRT_IDX_0 0x20
  15. #define ACP_DMA_DSCR_CNT_0 0x40
  16. #define ACP_DMA_PRIO_0 0x60
  17. #define ACP_DMA_CUR_DSCR_0 0x80
  18. #define ACP_DMA_ERR_STS_0 0xC0
  19. #define ACP_DMA_DESC_BASE_ADDR 0xE0
  20. #define ACP_DMA_DESC_MAX_NUM_DSCR 0xE4
  21. #define ACP_DMA_CH_STS 0xE8
  22. #define ACP_DMA_CH_GROUP 0xEC
  23. #define ACP_DMA_CH_RST_STS 0xF0
  24. #define ACP70_DMA_CNTL_0 0x00
  25. #define ACP70_DMA_DSCR_STRT_IDX_0 0x28
  26. #define ACP70_DMA_DSCR_CNT_0 0x50
  27. #define ACP70_DMA_PRIO_0 0x78
  28. #define ACP70_DMA_CUR_DSCR_0 0xA0
  29. #define ACP70_DMA_ERR_STS_0 0xF0
  30. #define ACP70_DMA_DESC_BASE_ADDR 0x118
  31. #define ACP70_DMA_DESC_MAX_NUM_DSCR 0x11C
  32. #define ACP70_DMA_CH_STS 0x120
  33. #define ACP70_DMA_CH_GROUP 0x124
  34. #define ACP70_DMA_CH_RST_STS 0x128
  35. /* Registers from ACP_DSP_0 block */
  36. #define ACP_DSP0_RUNSTALL 0x414
  37. /* Registers from ACP_AXI2AXIATU block */
  38. #define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_1 0xC00
  39. #define ACPAXI2AXI_ATU_BASE_ADDR_GRP_1 0xC04
  40. #define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_2 0xC08
  41. #define ACPAXI2AXI_ATU_BASE_ADDR_GRP_2 0xC0C
  42. #define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_3 0xC10
  43. #define ACPAXI2AXI_ATU_BASE_ADDR_GRP_3 0xC14
  44. #define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_4 0xC18
  45. #define ACPAXI2AXI_ATU_BASE_ADDR_GRP_4 0xC1C
  46. #define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_5 0xC20
  47. #define ACPAXI2AXI_ATU_BASE_ADDR_GRP_5 0xC24
  48. #define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_6 0xC28
  49. #define ACPAXI2AXI_ATU_BASE_ADDR_GRP_6 0xC2C
  50. #define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_7 0xC30
  51. #define ACPAXI2AXI_ATU_BASE_ADDR_GRP_7 0xC34
  52. #define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_8 0xC38
  53. #define ACPAXI2AXI_ATU_BASE_ADDR_GRP_8 0xC3C
  54. #define ACPAXI2AXI_ATU_CTRL 0xC40
  55. #define ACP_SOFT_RESET 0x1000
  56. #define ACP_CONTROL 0x1004
  57. #define ACP3X_I2S_PIN_CONFIG 0x1400
  58. #define ACP5X_I2S_PIN_CONFIG 0x1400
  59. #define ACP6X_I2S_PIN_CONFIG 0x1440
  60. /* Registers offsets from ACP_PGFSM block */
  61. #define ACP3X_PGFSM_BASE 0x141C
  62. #define ACP5X_PGFSM_BASE 0x1424
  63. #define ACP6X_PGFSM_BASE 0x1024
  64. #define ACP70_PGFSM_BASE ACP6X_PGFSM_BASE
  65. #define PGFSM_CONTROL_OFFSET 0x0
  66. #define PGFSM_STATUS_OFFSET 0x4
  67. #define ACP3X_CLKMUX_SEL 0x1424
  68. #define ACP5X_CLKMUX_SEL 0x142C
  69. #define ACP6X_CLKMUX_SEL 0x102C
  70. #define ACP70_CLKMUX_SEL ACP6X_CLKMUX_SEL
  71. /* Registers from ACP_INTR block */
  72. #define ACP3X_EXT_INTR_STAT 0x1808
  73. #define ACP5X_EXT_INTR_STAT 0x1808
  74. #define ACP6X_EXTERNAL_INTR_ENB 0x1A00
  75. #define ACP6X_EXTERNAL_INTR_CNTL 0x1A04
  76. #define ACP6X_EXT_INTR_STAT 0x1A0C
  77. #define ACP6X_EXT_INTR_STAT1 0x1A10
  78. #define ACP70_EXTERNAL_INTR_ENB ACP6X_EXTERNAL_INTR_ENB
  79. #define ACP70_EXTERNAL_INTR_CNTL ACP6X_EXTERNAL_INTR_CNTL
  80. #define ACP70_EXT_INTR_STAT ACP6X_EXT_INTR_STAT
  81. #define ACP70_EXT_INTR_STAT1 ACP6X_EXT_INTR_STAT1
  82. #define ACP3X_DSP_SW_INTR_BASE 0x1814
  83. #define ACP5X_DSP_SW_INTR_BASE 0x1814
  84. #define ACP6X_DSP_SW_INTR_BASE 0x1808
  85. #define ACP70_DSP_SW_INTR_BASE ACP6X_DSP_SW_INTR_BASE
  86. #define DSP_SW_INTR_CNTL_OFFSET 0x0
  87. #define DSP_SW_INTR_STAT_OFFSET 0x4
  88. #define DSP_SW_INTR_TRIG_OFFSET 0x8
  89. #define ACP3X_ERROR_STATUS 0x18C4
  90. #define ACP6X_ERROR_STATUS 0x1A4C
  91. #define ACP70_ERROR_STATUS ACP6X_ERROR_STATUS
  92. #define ACP3X_AXI2DAGB_SEM_0 0x1880
  93. #define ACP5X_AXI2DAGB_SEM_0 0x1884
  94. #define ACP6X_AXI2DAGB_SEM_0 0x1874
  95. #define ACP70_AXI2DAGB_SEM_0 ACP6X_AXI2DAGB_SEM_0
  96. /* ACP common registers to report errors related to I2S & SoundWire interfaces */
  97. #define ACP3X_SW_I2S_ERROR_REASON 0x18C8
  98. #define ACP6X_SW0_I2S_ERROR_REASON 0x18B4
  99. #define ACP7X_SW0_I2S_ERROR_REASON ACP6X_SW0_I2S_ERROR_REASON
  100. #define ACP_SW1_I2S_ERROR_REASON 0x1A50
  101. /* Registers from ACP_SHA block */
  102. #define ACP_SHA_DSP_FW_QUALIFIER 0x1C70
  103. #define ACP_SHA_DMA_CMD 0x1CB0
  104. #define ACP_SHA_MSG_LENGTH 0x1CB4
  105. #define ACP_SHA_DMA_STRT_ADDR 0x1CB8
  106. #define ACP_SHA_DMA_DESTINATION_ADDR 0x1CBC
  107. #define ACP_SHA_DMA_CMD_STS 0x1CC0
  108. #define ACP_SHA_DMA_ERR_STATUS 0x1CC4
  109. #define ACP_SHA_TRANSFER_BYTE_CNT 0x1CC8
  110. #define ACP_SHA_DMA_INCLUDE_HDR 0x1CCC
  111. #define ACP_SHA_PSP_ACK 0x1C74
  112. #define ACP_SCRATCH_REG_0 0x10000
  113. #define ACP6X_DSP_FUSION_RUNSTALL 0x0644
  114. #define ACP70_DSP_FUSION_RUNSTALL ACP6X_DSP_FUSION_RUNSTALL
  115. /* Cache window registers */
  116. #define ACP_DSP0_CACHE_OFFSET0 0x0420
  117. #define ACP_DSP0_CACHE_SIZE0 0x0424
  118. #define ACP_SW0_EN 0x3000
  119. #define ACP_SW1_EN 0x3C00
  120. #define ACP70_PME_EN 0x1400
  121. #define ACP70_EXTERNAL_INTR_CNTL1 0x1A08
  122. #define ACP70_SW0_WAKE_EN 0x1458
  123. #define ACP70_SW1_WAKE_EN 0x1460
  124. #define ACP70_SDW_HOST_WAKE_MASK 0x0C00000
  125. #define ACP70_SDW0_HOST_WAKE_STAT BIT(24)
  126. #define ACP70_SDW1_HOST_WAKE_STAT BIT(25)
  127. #define ACP70_SDW0_PME_STAT BIT(26)
  128. #define ACP70_SDW1_PME_STAT BIT(27)
  129. #endif