When multiple I2S controller instances created,
i2s_instance parameter refers to i2s controller instance value.

Signed-off-by: Vijendar Mukunda <vijendar.muku...@amd.com>
Reviewed-by: Alex Deucher <alexander.deuc...@amd.com>
---
 include/sound/designware_i2s.h | 6 ++++++
 sound/soc/dwc/dwc-i2s.c        | 1 +
 sound/soc/dwc/local.h          | 1 +
 3 files changed, 8 insertions(+)

diff --git a/include/sound/designware_i2s.h b/include/sound/designware_i2s.h
index 830f5ca..8113759 100644
--- a/include/sound/designware_i2s.h
+++ b/include/sound/designware_i2s.h
@@ -44,6 +44,10 @@ struct i2s_platform_data {
        int channel;
        u32 snd_fmts;
        u32 snd_rates;
+       /* i2s_instance parameter returns I2S controller instance value
+        * when multiple I2S controllers instantiated
+        */
+       u32 i2s_instance;
 
        #define DW_I2S_QUIRK_COMP_REG_OFFSET    (1 << 0)
        #define DW_I2S_QUIRK_COMP_PARAM1        (1 << 1)
@@ -74,5 +78,7 @@ struct i2s_dma_data {
 #define FOUR_CHANNEL_SUPPORT   4       /* up to 3.1 */
 #define SIX_CHANNEL_SUPPORT    6       /* up to 5.1 */
 #define EIGHT_CHANNEL_SUPPORT  8       /* up to 7.1 */
+#define I2S_SP_INSTANCE                1
+#define I2S_BT_INSTANCE                2
 
 #endif /*  __SOUND_DESIGNWARE_I2S_H */
diff --git a/sound/soc/dwc/dwc-i2s.c b/sound/soc/dwc/dwc-i2s.c
index 65112b9..58f81a4 100644
--- a/sound/soc/dwc/dwc-i2s.c
+++ b/sound/soc/dwc/dwc-i2s.c
@@ -553,6 +553,7 @@ static int dw_configure_dai_by_pd(struct dw_i2s_dev *dev,
 
        if (dev->quirks & DW_I2S_QUIRK_16BIT_IDX_OVERRIDE)
                idx = 1;
+       dev->i2s_instance = pdata->i2s_instance;
        /* Set DMA slaves info */
        dev->play_dma_data.pd.data = pdata->play_dma_data;
        dev->capture_dma_data.pd.data = pdata->capture_dma_data;
diff --git a/sound/soc/dwc/local.h b/sound/soc/dwc/local.h
index 91dc70a..e89e464 100644
--- a/sound/soc/dwc/local.h
+++ b/sound/soc/dwc/local.h
@@ -98,6 +98,7 @@ struct dw_i2s_dev {
        u32 ccr;
        u32 xfer_resolution;
        u32 fifo_th;
+       u32 i2s_instance;
 
        /* data related to DMA transfers b/w i2s and DMAC */
        union dw_i2s_snd_dma_data play_dma_data;
-- 
2.7.4

Reply via email to