xnux.eu - site map - news

Audio on TBS A711

Hardware

Audio is handled by the AC100 codec that's copac­kaged 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 au­dio.

Linux kernel

The current (2020–02–11) status is that the codec is fully supported out of tree by my and smaeul's pat­ches. 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.