The headphone output at Huawei Matebook D15 is controlled by a separate GPIO than the speaker. So, the es8336 boards logic need to handle two events: one for the speaker switch and another one for the headphone.
Please notice that this is my first real incursion at SOC/SOF. While this is working fine, I'm still struggling with some troubles with pipewire, which I believe are due to UCM support, as, sometimes when pavucontrol starts, the playback stucks. Also, sometimes the mixers won't change when jack plug/unplug is detected.
So, more debug is needed, and probably the UCM will also need to be closer to the definitions that are used at ucm2/codecs/es8316/, as es8336 is a variant of it.
Anyway, let me submit this as as RFC, in order to get some feedback if this is going at the right way to support the headphone switch event.
Mauro Carvalho Chehab (2): ASoC: Intel: sof_es8336: support a separate gpio to control headphone ASoC: Intel: sof_es8336: Huawei Matebook D15 uses a headphone gpio
sound/soc/intel/boards/sof_es8336.c | 84 ++++++++++++++++++++++------- 1 file changed, 65 insertions(+), 19 deletions(-)