sdrobertw: have you looked at the mixer file?
*** that is the “default” 8916/sbc mixer file, BUT, not the same as the one that you get with the actual device.
Also can be found as a patch within this archive;
In particular, notice that speaker-mic and handset-mic are both (default) set to adc1 (analog-to-digital converter #1). headset-mic is set to adc2. There are THREE microphones, also adc3.
Note that MIC1, which probably corresponds to adc1, is just a point on the BACK side of the board. So if you select speaker-mic or handset-mic, it will NOT connect to mic2 or mic3 points on the audio header.
I think that to connect to adc2 (which is the pre-biased microphone connection), or to the stereo headset outputs, you need to trigger headset detect. Alternatively, you can remap around it such that speaker-mic and/or handset-mic refer to adc2.
To put this speaker/handset/headset stuff into context;
speaker = speakerphone. I.e., a voice call when a cellphone is held AWAY from your head.
handset = regular cellphone handset, i.e. hold a cellphone against your head.
headset = earphones+microphone plugged into a cellphone via a wire.
headphones = ??? Ok, on OUR mixer file, this appears to be sort-of like headset. This appears to be sending sound out to the headset outputs on the audio header AND the i2s on the low speed port (i.e., not the HDMI).
Also note that in that file, some of the RX/TX is a bit counterintuitive. From “our” point of view, you might assume RX = sound into the phone/sbc and TX = sound out from the phone/sbc. This is not always the case, since we might be looking at RX and TX from the point of view of the SoC receiving from and transmitting to the DSP (sound chip, which in this case is built into the PMIC)
Notice in that file that the path named “speaker” for THIS board, does not match the one on the CAF git server.
<ctl name=“RX3 MIX1 INP1” value=“RX1” />
<ctl name=“SPK DAC Switch” value=“1” />
<ctl name=“MI2S_RX Channels” value=“Two” />
What that means: The “speaker” output (RX!!!) on DB410c is actually being sent out as stereo i2s. In fact, it is being sent out to the adv7533’s input so that it can be added to the HDMI. Possibly also being sent out to the i2s pins on the low speed header.
Yep, I fully agree that these mixer files are a total nightmare.