ALSA config from PicoCOM1 in PicoCOM4

  • Hi @all

    for a long time we are using the PicoCOM1 with audio applications developed around the ALSA controls for the AIC23B codec

    stereo output = "Headphone"
    stereo input = "Input"
    and "Input Mute"

    Now I'm testing a PicoCOM4 with the same audio codec but all the ALSA controls are different and looks like a Multi channel configuration.

    Where are this configurations done and how to change what to get the old interface with Headphone and Input.

    Thanks for tips and hints

  • The audio hardware and audio access as provided by the System-On-Chip (SOC) is often very different from one manufacturer to another. Therefore it is often easier to port some implementation that was done for a specific SOC to a new board even if it is different to a previous implementation for the same Codec on another board. I guess this is what happened here. There was an existing TLV320 implementation available for Samsung S3C24xx SOC. As the PicoCOM4 also uses this SOC, we used this one. It only required minor changes to get it running on the PicoCOM4. And we did not use the older TLV320 implementation for the Atmel SOC that is used on PicoCOM1 as this was quite different and would have required many more changes. And there the controls were named differently.

    And of course the ALSA infrastructure also had developed further between Linux Kernel 2.6.25 on the PicoCOM1 and 2.6.38 on the PicoCOM4. So it did make sense to use the newer implementation.

    Maybe you can have a look at file sound/soc/samsung/s3c24xx_picocom4_tlv320aic23.c. There the names of the ALSA controls are defined.

    You have to note that the names of these controls are rather arbitrary. So it would always be a good idea not to hard-code them in the application but to determine them at runtime by checking the function or at least by providing them in a configuration file that can be changed at any time. For example if you will switch again to another PicoCOM, then even the Audio Codec may be a different one. For example on our newer boards we use the SGTL5000 codec. So there the controls again have completely different names, and there may be even fewer or more controls. Like all multimedia accesses, the sound access is highly hardware dependent and all controls are generated at runtime. So if you plug in additional hardware (e.g. via USB), additional controls will appear, even while the system is running. So it is necessary to program the sound access of an application in a rather flexible way that can handle this dynamic situation.

    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.