5 Replies Latest reply on Nov 22, 2016 12:20 PM by Intel Corporation

    how to change the "audio_codec=dummy"



      Does anyone know how to change the "audio_codec = dummy"?

      According Intel's audio setup guide, if I want to add a new ASOC machine driver, I need to change this setting.

      I had change the aduio_codec="dummy" in the platform_mrfld_aduio.c and make a new image, but it seems is not working.

      Does anyone know how to change it? Please tell me, thank you!



        • 1. Re: how to change the "audio_codec=dummy"



          Have you already seen section 6 of http://www.intel.com/content/www/us/en/support/boards-and-kits/000005983.html ? This guide explains how to setup the codec. How are you trying to change it, are you following another guide?

          What steps are you following to change the audio codec and make the new image? Do you see any errors in the build or is the final image not working as it should?



          • 2. Re: how to change the "audio_codec=dummy"

            Dear @Intel_Alvarado,

                Yes, I have seen it. I have read the Edison's source code and I think I already know how the sst audio works. So I try to add a new codec(tlv320adc3101) to edison.

                I want to use 'sst-platfrom' device as the asoc platform device, use 'tlv320adc3101-codec' as the asoc codec device  and add a new asoc machine driver to edison.

                But at first setup I need to change "dummy" codec to "tlv320adc3101".


                In 'platform_mrfld_audio.c' code, I have add some new information like as below:

            * To add a new codec, add a "else if" statement with
            * its name and its specific implementation.
                else if (!strcmp(audio_codec, "tlv320adc3101")) {
                    pdev = platform_device_register_simple("tlv320adc3101",
                                        0, NULL, 0);
                    if (!pdev) {
                        pr_err("failed to register merr_dpcm_dummy platform device\n");
                        return NULL;



            static char* audio_codec = "tlv320adc3101";


                 Then I make a new image , but it seems does not work becuase under '/sys/bus/platform/devices' there is no 'tlv320adc3101' device.


                In the audio setup guide, it says I could change "   "audio_codec=dummy". Set it to "wm8958" if you have a wm8958 codec    ",so I think if I want to use a new codec, I also need to change it to audio_codec = tlv320adc3101. But I do not know how to set it.

                Thank you.





            • 3. Re: how to change the "audio_codec=dummy"

              Dear all,

                   I have slove it. I need to do the below steps:


                   boot > setenv audio_codec_name audio_codec=tlv320adc3101

                   boot > saveenv

                   boot > boot


                   Now I can find "merr_dpcm_tlv320adc3101" device at /sys/bus/platform/devices


                   In future, I need to add asoc codec driver and machine driver and maybe tlv320adc3101 can be used.



              • 4. Re: how to change the "audio_codec=dummy"

                Hi all,


                I need to record audio using INMP441 I2S microphone.

                From my understanding I have to add:

                - the machine driver, based on merr_dpcm_dummy.c

                - the codec driver, based on platform_mrfld_audio.c


                Probably the last one is only additional code as per Cer1991 example.

                Then the u-boot environment has to be set accordingly.


                Is my understanding correct?

                Do I have to add other platform drivers (I see platform_wm8994.c)?





                • 5. Re: how to change the "audio_codec=dummy"
                  Intel Corporation
                  This message was posted on behalf of Intel Corporation

                  Hi francescoaru,

                  I’d suggest you to take a look at https://communities.intel.com/thread/76515 and https://communities.intel.com/thread/75433 . These threads contain lots of information about I2S configuration on the Edison as well as guides you might find useful. I haven’t tried to use I2S using a INMP441 so it’d be better if you also post your question in the previous link to see if other users can provide assistance as well.