• Green Wan's avatar
    dmaengine: sf-pdma: add platform DMA support for HiFive Unleashed A00 · 6973886a
    Green Wan authored
    Add PDMA driver, sf-pdma, to enable DMA engine on HiFive Unleashed
    Rev A00 board.
    
     - Implement dmaengine APIs, support MEM_TO_MEM async copy.
     - Tested by DMA Test client
     - Supports 4 channels DMA, each channel has 1 done and 1 err
       interrupt connected to platform-level interrupt controller (PLIC).
     - Depends on DMA_ENGINE and DMA_VIRTUAL_CHANNELS
    
    The datasheet is here:
    
      https://static.dev.sifive.com/FU540-C000-v1.0.pdf
    
    Follow the DMAengine controller doc,
    "./Documentation/driver-api/dmaengine/provider.rst" to implement DMA
    engine. And use the dma test client in doc,
    "./Documentation/driver-api/dmaengine/dmatest.rst", to test.
    
    Each DMA channel has separate HW regs and support done and error ISRs.
    4 channels share 1 done and 1 err ISRs. There's no expander/arbitrator
    in DMA HW.
    
       ------               ------
       |    |--< done 23 >--|ch 0|
       |    |--< err  24 >--|    |     (dma0chan0)
       |    |               ------
       |    |               ------
       |    |--< done 25 >--|ch 1|
       |    |--< err  26 >--|    |     (dma0chan1)
       |PLIC|               ------
       |    |               ------
       |    |--< done 27 >--|ch 2|
       |    |--< err  28 >--|    |     (dma0chan2)
       |    |               ------
       |    |               ------
       |    |--< done 29 >--|ch 3|
       |    |--< err  30 >--|    |     (dma0chan3)
       ------               ------
    Signed-off-by: default avatarGreen Wan <green.wan@sifive.com>
    Link: https://lore.kernel.org/r/20191107084955.7580-4-green.wan@sifive.comSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
    6973886a
Kconfig 150 Bytes