AM625: ALSA McASP TDM Linux Driver

Part Number: AM625

Tool/software:

This is perhaps more of a general TI McASP ALSA Linux driver issue.  We are using the McASP in TDM mode with 16 time slots.  ALSA always wants to have a codec associated with any stereo device.  Well this is not a stereo device but rather regarded as a 16 channel audio device.  Is there a NULL ALSA codec device that we can link to?  Right now, we patch the ALSA driver kernel code to neuter its configuration over I2C.  What is the best way to handle this without lobotomizing the ALSA driver?

  • Hi Victor,

    Have you tried to add a dummy codec and see if you are able to test.

    Please refer to the below thread for more details on how to enable dummy codec.

     RE: AM623: How to create dummy sound card on AM62x? 

    Hope this helps

    Best Regards,

    Suren

  • Hi Suren,

    This was a good lead but it still not quite complete.  We were looking for a solution that does not need a patch.  Adding the ".compatible" line to the driver is simple but our customer wants to avoid all kernel patching if possible.  Thus we looked at the latest 6.16 kernel where the dummy device is somehow a faux_device.  Do you know how a DTS file can reference a faux?

    Thanks,

    Victor

  • Hi Victor, 

    The approach i gave you is how you test the simple-audio-card using dummy codec and is for testing purposes only. 

    Has you customer not decided on what codec they would be interfacing AM62x SoC MCASP pins?

    Were you able to register the dummy codec as the soundcard on your setup with the above changes and play using aplay or gstreamer? 

    You can also reach out to ALSA community for other ways to test your scenario.

    Best Regards,

    Suren

  • Hi Suren,

    We really do need an audio device without a codec so this platform dummy device can work well for us.  We were just hoping to have something that did not need any patch.  I think we can convince our customer that this should be acceptable (for Linux 6.12).

    Now for the latest Linux, 6.16, the platform device has been converted to a faux device.  It is unclear how a faux device can be utilized by a custom DTS file.  There seems to be something missing.  Do you know anything more about how this should be done in 6.16?  Otherwise we are back to adding our own custom driver code to the kernel (which we would rather avoid).

    Thanks,

    Victor