Audio on TBS A711
Hardware
Audio is handled by the AC100 codec that's copackaged with PMIC. Not sure who thought that's a good idea.
The AC100 codec is connected via I2S to the SoC's I2S controller on one side and to AIF1 on the codec side.
The tablet has one
internal microphone (Mic1
), one internal speaker (left
Speaker
output, it's mono), and a headset jack wired to headset
microphone and headphones (Mic2
and Headphone
controls).
Also the tablet has analog paths wired to the modem for audio calls and to bluetooth for wireless audio.
Linux kernel
The current (2020–02–11) status is that the codec is fully supported out of tree by my and smaeul's patches. I have them all integrated into my tree in audio-5.5 and tbs-5.5 branches.
Userspace
Sound card in Linux has a lot of controls
accessible via /dev/snd/controlC0
and a PCM interfaces for
streaming data in/out of the card (via /dev/snd/pcmC0D0c
and
/dev/pcmC0D0p
).
The controls are basically just of two types
in case of PP: integer
, enum
(the rest, like
boolean
reduces to integer
internally).
These controls control how the codec sets up analog and digital audio paths within itself. That is, where the audio signal will be enabled to go along multiple fixed paths, and how it will be mixed with other signals and amplified.
AC100 audio codec controls diagram
See the larger image here
To have these controls you need to use the above patches.