Skip to content

Commit 83cd8d8

Browse files
balakishorepatilgirdwood
authored andcommitted
dai: support for amd specific dai id's
Add AMD supported dai's for usecases. Signed-off-by: Basavaraj Hiregoudar <basavaraj.hiregoudar@amd.com> Signed-off-by: Anup Kulkarni <anup.kulkarni@amd.com> Signed-off-by: balapati <balakishore.pati@amd.com>
1 parent 7453e3d commit 83cd8d8

3 files changed

Lines changed: 30 additions & 0 deletions

File tree

src/include/ipc/dai.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ enum sof_ipc_dai_type {
6868
SOF_DAI_INTEL_ALH, /**< Intel ALH */
6969
SOF_DAI_IMX_SAI, /**< i.MX SAI */
7070
SOF_DAI_IMX_ESAI, /**< i.MX ESAI */
71+
SOF_DAI_AMD_BT, /**< Amd BT */
72+
SOF_DAI_AMD_SP, /**< Amd SP */
73+
SOF_DAI_AMD_DMIC /**< Amd DMIC */
7174
};
7275

7376
/* general purpose DAI configuration */

src/include/sof/lib/dma.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ struct comp_buffer;
4747
#define DMA_CAP_HDA BIT(0) /**< HDA DMA */
4848
#define DMA_CAP_GP_LP BIT(1) /**< GP LP DMA */
4949
#define DMA_CAP_GP_HP BIT(2) /**< GP HP DMA */
50+
#define DMA_CAP_BT BIT(3) /**< DMA I2S */
51+
#define DMA_CAP_SP BIT(4) /**< SP DMA */
52+
#define DMA_CAP_DMIC BIT(5) /**< ACP DMA DMIC > */
5053

5154
/* DMA dev type bitmasks used to define the type of DMA */
5255

@@ -58,6 +61,8 @@ struct comp_buffer;
5861
#define DMA_DEV_ALH BIT(5) /**< connectable to ALH link */
5962
#define DMA_DEV_SAI BIT(6) /**< connectable to SAI fifo */
6063
#define DMA_DEV_ESAI BIT(7) /**< connectable to ESAI fifo */
64+
#define DMA_DEV_BT BIT(8) /**< connectable to ACP BT I2S */
65+
#define DMA_DEV_SP BIT(9) /**< connectable to ACP SP I2S */
6166

6267
/* DMA access privilege flag */
6368
#define DMA_ACCESS_EXCLUSIVE 1

src/ipc/ipc3/dai.c

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,18 @@ int dai_config_dma_channel(struct comp_dev *dev, void *spec_config)
5757
dd->stream_id);
5858
channel = EDMA_HS_GET_CHAN(handshake);
5959
break;
60+
case SOF_DAI_AMD_BT:
61+
channel = dai_get_handshake(dd->dai, dai->direction,
62+
dd->stream_id);
63+
break;
64+
case SOF_DAI_AMD_SP:
65+
channel = dai_get_handshake(dd->dai, dai->direction,
66+
dd->stream_id);
67+
break;
68+
case SOF_DAI_AMD_DMIC:
69+
channel = dai_get_handshake(dd->dai, dai->direction,
70+
dd->stream_id);
71+
break;
6072
default:
6173
/* other types of DAIs not handled for now */
6274
comp_err(dev, "dai_config_dma_channel(): Unknown dai type %d",
@@ -133,6 +145,16 @@ int ipc_dai_data_config(struct comp_dev *dev)
133145
dd->config.burst_elems =
134146
dd->dai->plat_data.fifo[dai->direction].depth;
135147
break;
148+
case SOF_DAI_AMD_BT:
149+
dev->ipc_config.frame_fmt = SOF_IPC_FRAME_S16_LE;
150+
break;
151+
case SOF_DAI_AMD_SP:
152+
dev->ipc_config.frame_fmt = SOF_IPC_FRAME_S16_LE;
153+
break;
154+
case SOF_DAI_AMD_DMIC:
155+
dev->ipc_config.frame_fmt = SOF_IPC_FRAME_S32_LE;
156+
dd->dma_buffer->stream.frame_fmt = dev->ipc_config.frame_fmt;
157+
break;
136158
default:
137159
/* other types of DAIs not handled for now */
138160
comp_warn(dev, "dai_data_config(): Unknown dai type %d",

0 commit comments

Comments
 (0)