This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Multiple McASP for Audio

Hi,

We are making modifications to use McASP0 for input (I2S Rx) and McASP2 for output (I2S Tx), both w.r.t. Netra. We have followed the steps mentioned in TI81xx PSP Porting Guide and also, changed the DMA address of McASP0 as per this document. McASP2 is running as I2S Master whereas McASP0 as I2S Slave. With these changes when we check /proc/asound/devices, we see both playback and capture devices listed. However, only playback is working fine but capture seems to have hung at poll_wait(...) call. We have probed the data and clock lines of both Tx and Rx, and we see valid signals.

Any pointers to debug this further?

Thanks,

Atmaram

  • By default the McASP driver operates in the slave mode. I assume you have modified the driver since McASP2 is working in master mode?

    If you just use McASP0 i.e. don't include McASP2 support does Rx work?

    Regards,

    Vaibhav

  • Yes, all changes w.r.t. McASP2 master mode are done and the playback application works fine.

    We are trying to run McASP0 Rx mode alone but that is also resulting in the same behaviour.

    Regards,

    Atmaram

  • I am not sure if you can have both master and slave mode without hacking about the ALSA code. But since you don't have McASP Rx working there's something basic being missed. I would suggest that you compare the changes with what is available in the PSP releases and sort this out first. Once Rx is working you can look at having both master and slave modes in the driver.

    Regards,

    Vaibhav

  • We are trying to run Rx alone now. The difference is that Rx uses McASP0 instead of McASP2 when compared to EVM board. For this we have made changes to the EVM code as given below:

    - arch/arm/mach-omap2/board-ti8168evm.c
        .tx_dma_offset and .rx_dma_offset fields of ti8168_evm_snd_data have been changed to 0x46000000 (originally 0x46800000)

    - arch/arm/mach-omap2/devices.c
        .start and .end of all 3 sections of ti81xx_mcasp2_resource[ ]  have been changed to *ASP0_* (originally *ASP2_*)
        .id of ti81xx_mcasp2_device is set to 0 (originally 2)

    But these changes don't seem to be working for us. Are these changes correct? Also, is there something else which we are missing?

    Regards,
    Atmaram

  • Have you verified the clocklng and the pin-muxing for the McASP?

    Regards,

    Vaibhav