From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.1 From: nickel@altlinux.org To: devel-kernel@lists.altlinux.org Date: Thu, 7 Apr 2022 14:15:10 +0300 Message-Id: <20220407111517.1567092-2-nickel@altlinux.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220407111517.1567092-1-nickel@altlinux.org> References: <09f9c941-2dba-e80a-163a-fa72bc307d66@basealt.ru> <20220407111517.1567092-1-nickel@altlinux.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Cc: Vasily Vinogradov Subject: [d-kernel] [PATCH v2 2/9] ASoC: Intel: sof_es8336: Add quirk for inverted jack detect X-BeenThere: devel-kernel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux kernel packages development List-Id: ALT Linux kernel packages development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Apr 2022 11:15:56 -0000 Archived-At: List-Archive: List-Post: From: Vasily Vinogradov Backport from 5.17 Based on upstream commit 8e5db49182415b8bfce3b5843fc87e49c83c02aa Link: https://lore.kernel.org/r/20220308192610.392950-18-pierre-louis.bossart@linux.intel.com Signed-off-by: Vasily Vinogradov Signed-off-by: Nikolai Kostrigin --- sound/soc/intel/boards/sof_es8336.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/sound/soc/intel/boards/sof_es8336.c b/sound/soc/intel/boards/sof_es8336.c index 20d577eaab6d..7966a61b22c8 100644 --- a/sound/soc/intel/boards/sof_es8336.c +++ b/sound/soc/intel/boards/sof_es8336.c @@ -26,6 +26,7 @@ #define SOF_ES8336_TGL_GPIO_QUIRK BIT(4) #define SOF_ES8336_ENABLE_DMIC BIT(5) +#define SOF_ES8336_JD_INVERTED BIT(6) static unsigned long quirk; @@ -33,6 +34,9 @@ static int quirk_override = -1; module_param_named(quirk, quirk_override, int, 0444); MODULE_PARM_DESC(quirk, "Board-specific quirk override"); +/* jd-inv + terminating entry */ +#define SOF_ES8336_PROPS_MAX 2 + struct sof_es8336_private { struct device *codec_dev; struct gpio_desc *gpio_pa; @@ -64,6 +68,8 @@ static const struct acpi_gpio_mapping *gpio_mapping = acpi_es8336_gpios; static void log_quirks(struct device *dev) { dev_info(dev, "quirk SSP%ld", SOF_ES8336_SSP_CODEC(quirk)); + dev_info(dev, "quirk JD_INVERTED %s\n", + (quirk & SOF_ES8336_JD_INVERTED) ? "enabled" : "disabled"); } static int sof_es8316_speaker_power_event(struct snd_soc_dapm_widget *w, @@ -459,6 +465,8 @@ static int sof_es8336_probe(struct platform_device *pdev) struct acpi_device *adev; struct snd_soc_dai_link *dai_links; struct device *codec_dev; + struct property_entry props[SOF_ES8336_PROPS_MAX] = {}; + unsigned int cnt = 0; int dmic_be_num = 0; int hdmi_num = 3; int ret; @@ -511,6 +519,18 @@ static int sof_es8336_probe(struct platform_device *pdev) if (!codec_dev) return -EPROBE_DEFER; + if (quirk & SOF_ES8336_JD_INVERTED) + props[cnt++] = PROPERTY_ENTRY_BOOL("everest,jack-detect-inverted"); + + if (cnt) { + ret = device_add_properties(codec_dev, props); + if (ret) { + dev_err(codec_dev, "%s, could not add properties: %d\n", + __func__, ret); + goto err; + } + } + ret = devm_acpi_dev_add_driver_gpios(codec_dev, gpio_mapping); if (ret) dev_warn(codec_dev, "unable to add GPIO mapping table\n"); -- 2.33.0