OSDN Git Service

ASoC: Intel: bytcr_rt5640: Add quirk for the Advantech MICA-071 tablet
authorHans de Goede <hdegoede@redhat.com>
Tue, 13 Dec 2022 12:32:46 +0000 (13:32 +0100)
committerMark Brown <broonie@kernel.org>
Tue, 13 Dec 2022 18:16:30 +0000 (18:16 +0000)
The Advantech MICA-071 tablet deviates from the defaults for
a non CR Bay Trail based tablet in several ways:

1. It uses an analog MIC on IN3 rather then using DMIC1
2. It only has 1 speaker
3. It needs the OVCD current threshold to be set to 1500uA instead of
   the default 2000uA to reliable differentiate between headphones vs
   headsets

Add a quirk with these settings for this tablet.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20221213123246.11226-1-hdegoede@redhat.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/bytcr_rt5640.c

index 6db07b2..44e6a0f 100644 (file)
@@ -571,6 +571,21 @@ static const struct dmi_system_id byt_rt5640_quirk_table[] = {
                                        BYT_RT5640_MCLK_EN),
        },
        {
+               /* Advantech MICA-071 */
+               .matches = {
+                       DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Advantech"),
+                       DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "MICA-071"),
+               },
+               /* OVCD Th = 1500uA to reliable detect head-phones vs -set */
+               .driver_data = (void *)(BYT_RT5640_IN3_MAP |
+                                       BYT_RT5640_JD_SRC_JD2_IN4N |
+                                       BYT_RT5640_OVCD_TH_1500UA |
+                                       BYT_RT5640_OVCD_SF_0P75 |
+                                       BYT_RT5640_MONO_SPEAKER |
+                                       BYT_RT5640_DIFF_MIC |
+                                       BYT_RT5640_MCLK_EN),
+       },
+       {
                .matches = {
                        DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ARCHOS"),
                        DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "ARCHOS 80 Cesium"),