Commit a0cb2d43 authored by Hans de Goede's avatar Hans de Goede Committed by Mark Brown

ASoC: Intel: bytcr_rt5651: Add BYT_RT5651_JD_NOT_INV quirk

Add BYT_RT5651_JD_NOT_INV quirk for devices with an inverted
(active-high instead of the normal active-low) jack-detect switch.

And add a quirk for the Complet Electro Serv MY8307 tablet which has
an inverted jack-detect switch (and a mono-speaker).
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 8a68a509
...@@ -79,14 +79,15 @@ enum { ...@@ -79,14 +79,15 @@ enum {
#define BYT_RT5651_SSP0_AIF2 BIT(21) #define BYT_RT5651_SSP0_AIF2 BIT(21)
#define BYT_RT5651_HP_LR_SWAPPED BIT(22) #define BYT_RT5651_HP_LR_SWAPPED BIT(22)
#define BYT_RT5651_MONO_SPEAKER BIT(23) #define BYT_RT5651_MONO_SPEAKER BIT(23)
#define BYT_RT5651_JD_NOT_INV BIT(24)
#define BYT_RT5651_DEFAULT_QUIRKS (BYT_RT5651_MCLK_EN | \ #define BYT_RT5651_DEFAULT_QUIRKS (BYT_RT5651_MCLK_EN | \
BYT_RT5651_JD1_1 | \ BYT_RT5651_JD1_1 | \
BYT_RT5651_OVCD_TH_2000UA | \ BYT_RT5651_OVCD_TH_2000UA | \
BYT_RT5651_OVCD_SF_0P75) BYT_RT5651_OVCD_SF_0P75)
/* jack-detect-source + dmic-en + ovcd-th + -sf + terminating empty entry */ /* jack-detect-source + inv + dmic-en + ovcd-th + -sf + terminating entry */
#define MAX_NO_PROPS 5 #define MAX_NO_PROPS 6
struct byt_rt5651_private { struct byt_rt5651_private {
struct clk *mclk; struct clk *mclk;
...@@ -137,6 +138,8 @@ static void log_quirks(struct device *dev) ...@@ -137,6 +138,8 @@ static void log_quirks(struct device *dev)
dev_info(dev, "quirk SSP0_AIF2 enabled\n"); dev_info(dev, "quirk SSP0_AIF2 enabled\n");
if (byt_rt5651_quirk & BYT_RT5651_MONO_SPEAKER) if (byt_rt5651_quirk & BYT_RT5651_MONO_SPEAKER)
dev_info(dev, "quirk MONO_SPEAKER enabled\n"); dev_info(dev, "quirk MONO_SPEAKER enabled\n");
if (byt_rt5651_quirk & BYT_RT5651_JD_NOT_INV)
dev_info(dev, "quirk JD_NOT_INV enabled\n");
} }
#define BYT_CODEC_DAI1 "rt5651-aif1" #define BYT_CODEC_DAI1 "rt5651-aif1"
...@@ -414,6 +417,18 @@ static const struct dmi_system_id byt_rt5651_quirk_table[] = { ...@@ -414,6 +417,18 @@ static const struct dmi_system_id byt_rt5651_quirk_table[] = {
BYT_RT5651_HP_LR_SWAPPED | BYT_RT5651_HP_LR_SWAPPED |
BYT_RT5651_MONO_SPEAKER), BYT_RT5651_MONO_SPEAKER),
}, },
{
/* Complet Electro Serv MY8307 */
.callback = byt_rt5651_quirk_cb,
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Complet Electro Serv"),
DMI_MATCH(DMI_PRODUCT_NAME, "MY8307"),
},
.driver_data = (void *)(BYT_RT5651_DEFAULT_QUIRKS |
BYT_RT5651_IN2_MAP |
BYT_RT5651_MONO_SPEAKER |
BYT_RT5651_JD_NOT_INV),
},
{ {
/* I.T.Works TW701, Ployer Momo7w and Trekstor ST70416-6 /* I.T.Works TW701, Ployer Momo7w and Trekstor ST70416-6
* (these all use the same mainboard) */ * (these all use the same mainboard) */
...@@ -525,6 +540,9 @@ static int byt_rt5651_add_codec_device_props(struct device *i2c_dev) ...@@ -525,6 +540,9 @@ static int byt_rt5651_add_codec_device_props(struct device *i2c_dev)
if (byt_rt5651_quirk & BYT_RT5651_DMIC_EN) if (byt_rt5651_quirk & BYT_RT5651_DMIC_EN)
props[cnt++] = PROPERTY_ENTRY_BOOL("realtek,dmic-en"); props[cnt++] = PROPERTY_ENTRY_BOOL("realtek,dmic-en");
if (byt_rt5651_quirk & BYT_RT5651_JD_NOT_INV)
props[cnt++] = PROPERTY_ENTRY_BOOL("realtek,jack-detect-not-inverted");
return device_add_properties(i2c_dev, props); return device_add_properties(i2c_dev, props);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment