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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Jan 2023 10:59:16 +0000 (11:59 +0100)
[ Upstream commit a1dec9d70b6ad97087b60b81d2492134a84208c6 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/intel/boards/bytcr_rt5640.c

index f9c82eb..888e04c 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"),