Merge remote-tracking branches 'asoc/topic/ac97', 'asoc/topic/ac97-mfd', 'asoc/topic...
[muen/linux.git] / sound / soc / amd / acp.h
index 330832ef4e5e57e8c66114d6cc2c4773e64f7b53..ecb458935d1e82607f907c9105ccaac20411f8ce 100644 (file)
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #ifndef __ACP_HW_H
 #define __ACP_HW_H
 
@@ -19,6 +20,7 @@
 
 /* Capture SRAM address (as a source in dma descriptor) */
 #define ACP_SHARED_RAM_BANK_5_ADDRESS          0x400A000
+#define ACP_SHARED_RAM_BANK_3_ADDRESS          0x4006000
 
 #define ACP_DMA_RESET_TIME                     10000
 #define ACP_CLOCK_EN_TIME_OUT_VALUE            0x000000FF
@@ -67,6 +69,7 @@
 #define CAPTURE_START_DMA_DESCR_CH15 6
 #define CAPTURE_END_DMA_DESCR_CH15 7
 
+#define mmACP_I2S_16BIT_RESOLUTION_EN       0x5209
 enum acp_dma_priority_level {
        /* 0x0 Specifies the DMA channel is given normal priority */
        ACP_DMA_PRIORITY_LEVEL_NORMAL = 0x0,
@@ -81,9 +84,26 @@ struct audio_substream_data {
        u16 num_of_pages;
        u16 direction;
        uint64_t size;
+       u64 renderbytescount;
+       u64 capturebytescount;
        void __iomem *acp_mmio;
 };
 
+struct audio_drv_data {
+       struct snd_pcm_substream *play_stream;
+       struct snd_pcm_substream *capture_stream;
+       void __iomem *acp_mmio;
+       u32 asic_type;
+};
+
+union acp_dma_count {
+       struct {
+       u32 low;
+       u32 high;
+       } bcount;
+       u64 bytescount;
+};
+
 enum {
        ACP_TILE_P1 = 0,
        ACP_TILE_P2,