ASoC: Intel: bytcr_rt5640: log quirks
[sfrench/cifs-2.6.git] / sound / soc / intel / boards / bytcr_rt5640.c
index 11e11c6caa89b31a00c2053e12d18a17d778efcd..09ec3d718357671417a8275c349608cbdd7bbd98 100644 (file)
@@ -61,6 +61,35 @@ static unsigned long byt_rt5640_quirk = BYT_RT5640_DMIC1_MAP |
                                        BYT_RT5640_DMIC_EN |
                                        BYT_RT5640_MCLK_EN;
 
+static void log_quirks(struct device *dev)
+{
+       if (BYT_RT5640_MAP(byt_rt5640_quirk) == BYT_RT5640_DMIC1_MAP)
+               dev_info(dev, "quirk DMIC1_MAP enabled");
+       if (BYT_RT5640_MAP(byt_rt5640_quirk) == BYT_RT5640_DMIC2_MAP)
+               dev_info(dev, "quirk DMIC2_MAP enabled");
+       if (BYT_RT5640_MAP(byt_rt5640_quirk) == BYT_RT5640_IN1_MAP)
+               dev_info(dev, "quirk IN1_MAP enabled");
+       if (BYT_RT5640_MAP(byt_rt5640_quirk) == BYT_RT5640_IN3_MAP)
+               dev_info(dev, "quirk IN3_MAP enabled");
+       if (byt_rt5640_quirk & BYT_RT5640_DMIC_EN)
+               dev_info(dev, "quirk DMIC enabled");
+       if (byt_rt5640_quirk & BYT_RT5640_MONO_SPEAKER)
+               dev_info(dev, "quirk MONO_SPEAKER enabled");
+       if (byt_rt5640_quirk & BYT_RT5640_DIFF_MIC)
+               dev_info(dev, "quirk DIFF_MIC enabled");
+       if (byt_rt5640_quirk & BYT_RT5640_SSP2_AIF2)
+               dev_info(dev, "quirk SSP2_AIF2 enabled");
+       if (byt_rt5640_quirk & BYT_RT5640_SSP0_AIF1)
+               dev_info(dev, "quirk SSP0_AIF1 enabled");
+       if (byt_rt5640_quirk & BYT_RT5640_SSP0_AIF2)
+               dev_info(dev, "quirk SSP0_AIF2 enabled");
+       if (byt_rt5640_quirk & BYT_RT5640_MCLK_EN)
+               dev_info(dev, "quirk MCLK_EN enabled");
+       if (byt_rt5640_quirk & BYT_RT5640_MCLK_25MHZ)
+               dev_info(dev, "quirk MCLK_25MHZ enabled");
+}
+
+
 #define BYT_CODEC_DAI1 "rt5640-aif1"
 #define BYT_CODEC_DAI2 "rt5640-aif2"
 
@@ -330,6 +359,25 @@ static const struct dmi_system_id byt_rt5640_quirk_table[] = {
                .driver_data = (unsigned long *)(BYT_RT5640_IN1_MAP |
                                                 BYT_RT5640_MCLK_EN),
        },
+       {
+               .callback = byt_rt5640_quirk_cb,
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "Circuitco"),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "Minnowboard Max B3 PLATFORM"),
+               },
+               .driver_data = (unsigned long *)(BYT_RT5640_DMIC1_MAP |
+                                                BYT_RT5640_DMIC_EN),
+       },
+       {
+               .callback = byt_rt5640_quirk_cb,
+               .matches = {
+                       DMI_MATCH(DMI_BOARD_VENDOR, "TECLAST"),
+                       DMI_MATCH(DMI_BOARD_NAME, "tPAD"),
+               },
+               .driver_data = (unsigned long *)(BYT_RT5640_IN3_MAP |
+                                               BYT_RT5640_MCLK_EN |
+                                               BYT_RT5640_SSP0_AIF1),
+       },
        {}
 };
 
@@ -683,6 +731,7 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev)
 
        /* check quirks before creating card */
        dmi_check_system(byt_rt5640_quirk_table);
+       log_quirks(&pdev->dev);
 
        if ((byt_rt5640_quirk & BYT_RT5640_SSP2_AIF2) ||
            (byt_rt5640_quirk & BYT_RT5640_SSP0_AIF2)) {