
Intel has no specific requirement, we just follow what the Google 4-button description says [1]
That said, I can't recall why half of the machine drivers follow one pattern and the other half a different one.
Same as spec: sof_da7219_max98373.c: snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); sof_da7219_max98373.c- snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOLUMEUP); sof_da7219_max98373.c- snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEDOWN); sof_da7219_max98373.c- snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOICECOMMAND);
sof_cs42l42.c: snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); sof_cs42l42.c- snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOLUMEUP); sof_cs42l42.c- snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEDOWN); sof_cs42l42.c- snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOICECOMMAND);
swap wrt. spec: sof_sdw_rt711.c: snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); sof_sdw_rt711.c- snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); sof_sdw_rt711.c- snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); sof_sdw_rt711.c- snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN);
kbl_rt5663_max98927.c: snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); kbl_rt5663_max98927.c- snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); kbl_rt5663_max98927.c- snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); kbl_rt5663_max98927.c- snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN);
Brent, Curtis, Jimmy, can you comment on the order?
[1] https://source.android.com/devices/accessories/headset/plug-headset- spec#control-function_mapping
Hi Pierre,
I just shared the link [1] with ODM and codec vendor to double check the mapping is following the requirement.
Regards, Brent