Restrictions and Recommendations#

This section describes the restrictions and recommendations for error-free operation of audio.

Restrictions#

Sample Rates Support#

The audio drivers support sample rates that are integer multiples of either 8 kHz or 11.025 kHz, but not both simultaneously. This limitation is because the I2S clock is derived from the PLLA1_OUT1 clock source and must be an integer divisor of it, which prevents the system from supporting viable clock rates that are multiples of both base frequencies at the same time. This restriction applies system-wide across all I2S interfaces, regardless of which interface is used. To switch between these two sample rate families, you must modify the Device Tree (DT) configuration. By default, the system is configured to support sample rates that are integer multiples of 8 kHz.

For example, to support the sampling rate of 44.1 kHz, on BPMP DT, the PLLA1_OUT1 clock rate may be set as 45158400 (integer multiple of 44.1 kHz) and the sampling rate for I2S on Audio Server DT may be modified accordingly. Refer to BPMP Firmware Power Management Services for more information.

Configuration via Mixer Controls#

All required audio paths and module parameters, such as input/output audio formats, should be set before running the use case. Runtime change of parameters via mixer controls is not supported.

ALSA Configuration File#

Audio configuration using the ALSA Configuration file is currently not supported by the audio drivers, and all required audio parameters must be set from devicetree and mixer controls.

Audio Sample Formats Support#

Using audio formats other than S16_LE or S32_LE may result in errors or incorrect data capture/playback, because the audio drivers only support S16_LE and S32_LE sample formats for audio.

A2B Configuration Privileges#

On the Ferrix board, only the VM with access to I2C16 can program the A2B chips, because all three A2B chips on the Ferrix board are connected to the I2C16 interface.

Playback / Capture Formats#

During audio playback and capture operations through any AHUB module, the audio format (channels, sample format, and sampling rate) needs to match the configuration specified for that module in the Audio Server device tree. This is because the AHUB module drivers (except ADMAIF) take the audio format information from the Audio Server device tree, and while the driver may not explicitly fail when running a different format through the module than it is configured for, the received or transmitted audio may not be proper.

Recommendations#

Verification of Amixer Control Values#

After configuring amixer controls for an audio path or module, users must read back the control values (in case read for that control is supported) to verify that the changes were applied successfully, because the setting will silently fail and not take effect in the hardware if the VM does not have access to the particular module parameters being modified.

Resetting the Path Between Use Cases#

When switching between use cases that share modules but use different audio paths, it is recommended to reset the previously configured paths after completing the current use case. This is because a single AHUB module can feed into multiple modules simultaneously, and if one of the recipient AHUB modules is not properly configured to accept the audio (due to mismatched channel count, missing master clock and so on), the audio usecase may fail or become corrupted.