linux/sound/soc/intel
Tagir Garaev 6b641122d3
ASoC: Intel: sof_es8336: Add DMI quirk for Huawei BOD-WXX9
Add DMI entry for Huawei Matebook D (BOD-WXX9) with HEADPHONE_GPIO
and DMIC quirks.

This device has ES8336 codec with:
- GPIO 16 (headphone-enable) for headphone amplifier control
- GPIO 17 (speakers-enable) for speaker amplifier control
- GPIO 269 for jack detection IRQ
- 2-channel DMIC

Hardware investigation shows that both GPIO 16 and 17 are required
for proper audio routing, as headphones and speakers share the same
physical output (HPOL/HPOR) and are separated only via amplifier
enable signals.

RFC: Seeking advice on GPIO control issue:

GPIO values change in driver (gpiod_get_value() shows logical value
changes) but not physically (debugfs gpio shows no change). The same
gpiod_set_value_cansleep() calls work correctly in probe context with
msleep(), but fail when called from DAPM event callbacks.

Context information from diagnostics:
- in_atomic=0, in_interrupt=0, irqs_disabled=0
- Process context: pipewire
- GPIO 17 (speakers): changes in driver, no physical change
- GPIO 16 (headphone): changes in driver, no physical change

In Windows, audio switching works without visible GPIO changes,
suggesting possible ACPI/firmware involvement.

Any suggestions on how to properly control these GPIOs from DAPM
events would be appreciated.

Signed-off-by: Tagir Garaev <tgaraev653@gmail.com>
Link: https://patch.msgid.link/20260201121728.16597-1-tgaraev653@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
History 2026-02-02 12:09:25 +00:00
..
atom ASoC: intel: atom: sst-atom-controls: convert to snd_soc_dapm_xxx() 2025-11-17 00:17:21 +00:00
avs ASoC: Intel: avs: Replace snprintf() with scnprintf() 2025-11-21 16:25:02 +00:00
boards ASoC: Intel: sof_es8336: Add DMI quirk for Huawei BOD-WXX9 2026-02-02 12:09:25 +00:00
catpt ASoC: Intel: catpt: Do not block the system from suspending 2025-11-27 11:41:17 +00:00
common ASoC: soc-acpi-intel-ptl-match: fix name_prefix of rt1320-2 2026-01-26 11:26:35 +00:00
keembay ASoC: Use of_property_present() for non-boolean properties 2025-01-09 18:50:14 +00:00
Kconfig ASoC: intel: Standardize ASoC menu 2025-06-24 01:01:26 +01:00
Makefile ASoC: Intel: Remove skylake driver 2024-08-19 13:10:55 +01:00