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.

[参考译文] DM8148 mcspi Xbar 事件配置

Guru**** 2551110 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/616173/dm8148-mcspi-xbar-event-configuration

大家好、我遇到了同样的问题!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Jensen、

    这是分割问题还是 SPI 问题?  我们会将其拆分为新主题、请提供有关您的设计遇到的问题的详细信息。

    此致、

    ~Leonard  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 LeonardEllis 的回复。
    使用 Documentation/SPI/spidev_test.c 的 PIO 模式正好适合这种情况

    #define USE_DMA 0
    if (use_dma ||(m->is _dma_mapped || t->len >= dma_min_Bytes))
    计数= OMAP2_mcspi_txrx_dma (SPI、t);
    其他

    /* RX_ONLY 模式需要 TX reg 中的虚拟数据*/
    if (t->TX_Buf == NULL)
    _raW_writel (0、cs->base + OMAP2_MCSPI_TX0);
    计数= OMAP2_mcspi_txrx_Pio (SPI、t);


    ,但当我在 SPI 中使用 DMA 模式时,程序(spidev_test)被阻止。
    #define USE_DMA 1.
    (笑声)
    ----------------------------------------
    if (Rx!= NULL){
    EDMA_start (mcspi_dma->dma_rx_channel);
    OMAP2_mcspi_set_dma_req (SPI、1、1);

    if (TX!= NULL || Rx!= NULL){
    Wait_for_Completion (&mcspi_dma->dma_TX_Completion);//!!! 被封锁了!!!!
    dma_unmap_single (NULL、xfer->TX_DMA、temp_count、dma_to_device);
    /*对于 TX_ONLY 模式、请确保所有字已移出*/
    if (Rx == NULL){
    if (mcspi_wait_for_reg_bit)(chstat_reg、
    OMAP2_MCSPI_CHSTAT_TXS)< 0)
    DEV_ERR(&SPI->DEV、"TXS timed out\n");
    如果(mcspi_wait_for_reg_bit)(chstat_reg、
    OMAP2_MCSPI_CHSTAT_EOT)< 0)
    DEV_ERR(&SPI->DEV,"EOT 超时\n";




    ------------------------------
    1.我使用 IPNC RDK 3.8 (DM8127)
    2.我测试 SPI3.0,SPI 驱动程序有效,并找到/dev/spi3.0
    3.以下是我的选项代码

    静态结构资源 OMAP2_mcspi3_resources[]={

    .start= OMAP2_MCSPI3_base、
    .end= OMAP2_MCSPI3_base + 0xff、
    flags= IORESOURCE_MEM、
    }、
    {//SPI2XEVT0:SPI2发送0
    .start = 16、
    .end = 16、
    flags = IORESOURCE_DMA、
    }、
    {//SPI2REVT0:SPI2接收0
    .start = 17、
    .end = 17、
    flags = IORESOURCE_DMA、
    }、
    {//SPI2XEVT1:SPI2发送1
    .start = 18、
    .end = 18、
    flags = IORESOURCE_DMA、
    }、
    {//SPI2REVT1:SPI2接收1
    .start = 19、
    .end = 19、
    flags = IORESOURCE_DMA、
    }、
    };
    静态结构 event_to_channel_map ti814x_Xbar_event_mapping []={
    /*{Xbar event no、Channel}*/
    (笑声)
    {11、-1}、
    {12、-1}、
    {13、-1}、
    {14、-1}、
    {15、-1}、
    {16、52}、 // SPI3.0传输
    {17、53}、// SPI3.0接收器
    {18、-1}、
    {19、-1}、
    (笑声)
    {-1、-1}
    };
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Jensen:

    请检查以下 e2e 主题:

    e2e.ti.com/.../482934

    此致、
    帕维尔