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.

PROCESSOR-SDK-AM437X: I2C DMA support

Part Number: PROCESSOR-SDK-AM437X

Hello support,

We are using TI-processor-sdk-linux SDK for AM437x-based device. Recently we want DMA mode for the I2C interface.

In drivers/i2c/busses/i2c-omap.c, I did not see DMA enabled though there does have "OMAP_I2C_BUF_RDMA_EN" and "OMAP_I2C_BUF_XDMA_EN" defined.

Then in another post https://e2e.ti.com/support/legacy_forums/embedded/starterware/f/790/t/589680, TI replied that "we don't have I2C with DMA support yet on AM437x". But clearly AM437x TRM did say I2C has "Two DMA channels".

Could you please clarify again if AM437x CPU support DMA on I2C bus? If yes, do you have any sample I could refer to?

Thanks

  • Hello,

    To clarify Garrett's answer on your linked post:

    1) The Technical Reference Manual (TRM) tells you that the I2C hardware has two DMA channels. However, that does not mean that the TI Software has been written to work with that hardware feature.

    2) Garrett was commenting on our RTOS I2C driver. You are asking about the Linux I2C driver, right?

    Our Linux I2C documentation does not mention DMA, but the Processor Linux SDK 6.1 bindings documentation for I2C at Documentation/devicetree/bindings/i2c/i2c-omap.txt imply that DMA might be supported. Let me check with the developers. Feel free to ping me if I have not responded within a couple of days.

    Regards,

    Nick

  • Hello,

    Ok, the I2C bindings documentation in SDK 6.1 has a typo in it. The Linux I2C driver does not support DMA. We will fix the documentation going forward.

    Regards,

    Nick

  • Hi Nick,

    Thank you for quick answer.

    I already knew the Linux I2C driver does not support DMA before asking this question.

    I am wondering if AM437x hardware supports I2C DMA. If yes, we may try to enable it by ourselves to see how it performs. Otherwise, we will give up now. You said "DMA might be supported" which is still not clear.

    Regards

    Bernie

  • Hello,

    Going through old threads and realized that this one got dropped. I apologize for that.

    Yes, the I2C hardware supports DMA as per the TRM. However, the TI software drivers that have been written do not make use of the DMA capabilities that are in the hardware.

    Regards,

    Nick