diff --git a/src/platform/apollolake/include/platform/platform.h b/src/platform/apollolake/include/platform/platform.h index aa78732eb2e0..145821390618 100644 --- a/src/platform/apollolake/include/platform/platform.h +++ b/src/platform/apollolake/include/platform/platform.h @@ -115,6 +115,9 @@ struct sof; /* number of SSP ports in platform */ #define PLATFORM_NUM_SSP 6 +/* number of SSP ports in platform */ +#define PLATFORM_NUM_DMIC 2 + /* DSP default delay in cycles */ #define PLATFORM_DEFAULT_DELAY 12 diff --git a/src/platform/apollolake/platform.c b/src/platform/apollolake/platform.c index 684cc74ec3a4..e2d3e18cf3d8 100644 --- a/src/platform/apollolake/platform.c +++ b/src/platform/apollolake/platform.c @@ -197,7 +197,7 @@ static void platform_memory_windows_init(void) int platform_init(struct sof *sof) { struct dai *ssp; - struct dai *dmic0; + struct dai *dmic; int i, ret; platform_interrupt_init(); @@ -271,11 +271,12 @@ int platform_init(struct sof *sof) * supported max. those are available in platform are handled by dmic0. */ trace_point(TRACE_BOOT_PLATFORM_DMIC); - dmic0 = dai_get(SOF_DAI_INTEL_DMIC, 0); - if (!dmic0) - return -ENODEV; - - dai_probe(dmic0); + for (i = 0; i < PLATFORM_NUM_DMIC; i++) { + dmic = dai_get(SOF_DAI_INTEL_DMIC, i); + if (!dmic) + return -ENODEV; + dai_probe(dmic); + } /* Initialize DMA for Trace*/ dma_trace_init_complete(sof->dmat); diff --git a/src/platform/cannonlake/include/platform/platform.h b/src/platform/cannonlake/include/platform/platform.h index 67566b26593e..d53d2d595339 100644 --- a/src/platform/cannonlake/include/platform/platform.h +++ b/src/platform/cannonlake/include/platform/platform.h @@ -44,7 +44,12 @@ struct sof; #define PLATFORM_WAITI_DELAY 1 -#define PLATFORM_SSP_COUNT 3 +/* number of SSP ports in platform */ +#define PLATFORM_NUM_SSP 3 + +/* number of SSP ports in platform */ +#define PLATFORM_NUM_DMIC 2 + #define MAX_GPDMA_COUNT 2 /* Host page size */ diff --git a/src/platform/cannonlake/platform.c b/src/platform/cannonlake/platform.c index 6e5a020e4f70..83019fe7ae0a 100644 --- a/src/platform/cannonlake/platform.c +++ b/src/platform/cannonlake/platform.c @@ -219,7 +219,7 @@ static struct timer platform_ext_timer = { int platform_init(struct sof *sof) { struct dai *ssp; - struct dai *dmic0; + struct dai *dmic; int i, ret; trace_point(TRACE_BOOT_PLATFORM_ENTRY); @@ -276,7 +276,7 @@ int platform_init(struct sof *sof) /* init SSP ports */ trace_point(TRACE_BOOT_PLATFORM_SSP); - for(i = 0; i < PLATFORM_SSP_COUNT; i++) { + for (i = 0; i < PLATFORM_NUM_SSP; i++) { ssp = dai_get(SOF_DAI_INTEL_SSP, i); if (ssp == NULL) return -ENODEV; @@ -287,11 +287,12 @@ int platform_init(struct sof *sof) * supported max. those are available in platform are handled by dmic0. */ trace_point(TRACE_BOOT_PLATFORM_DMIC); - dmic0 = dai_get(SOF_DAI_INTEL_DMIC, 0); - if (!dmic0) - return -ENODEV; - - dai_probe(dmic0); + for (i = 0; i < PLATFORM_NUM_DMIC; i++) { + dmic = dai_get(SOF_DAI_INTEL_DMIC, i); + if (!dmic) + return -ENODEV; + dai_probe(dmic); + } /* Initialize DMA for Trace*/ dma_trace_init_complete(sof->dmat);