.late_probe = skl_hda_card_late_probe,
 };
 
+static char hda_soc_components[30];
+
 #define IDISP_DAI_COUNT                3
 #define HDAC_DAI_COUNT         2
 #define DMIC_DAI_COUNT         2
        hda_soc_card.dev = &pdev->dev;
        snd_soc_card_set_drvdata(&hda_soc_card, ctx);
 
+       if (mach->mach_params.dmic_num > 0) {
+               snprintf(hda_soc_components, sizeof(hda_soc_components),
+                               "cfg-dmics:%d", mach->mach_params.dmic_num);
+               hda_soc_card.components = hda_soc_components;
+       }
+
        return devm_snd_soc_register_card(&pdev->dev, &hda_soc_card);
 }
 
 
        const char *tplg_filename;
        const char *idisp_str;
        const char *dmic_str;
-       int dmic_num;
+       int dmic_num = 0;
        int codec_num = 0;
        int i;
 #endif
                mach_params->codec_mask = bus->codec_mask;
                mach_params->platform = dev_name(sdev->dev);
                mach_params->common_hdmi_codec_drv = hda_codec_use_common_hdmi;
+               mach_params->dmic_num = dmic_num;
        }
 
        /* create codec instances */