• Lars-Peter Clausen's avatar
    dmaengine: axi-dmac: Sanity check memory mapped interface support · b5d89905
    Lars-Peter Clausen authored
    The AXI-DMAC supports different types of interface for the data source and
    destination ports. Typically one of those ports is a memory-mapped
    interface while the other is some kind of streaming interface.
    
    The information about which kind of interface is used for each port is
    encoded in the devicetree.
    
    It is also possible in the driver to detect whether a port supports
    memory-mapped transfers or not. For streaming interfaces the address
    register is read-only and will always return 0. So in order to check if a
    port supports memory-mapped transfers write a non-zero value to the
    corresponding address register and check that the value read-back is still
    non zero.
    
    This allows to detect mismatches between the devicetree description and the
    actual hardware configuration.
    
    Unfortunately it is not possible to autodetect the interface types since
    there is no method to distinguish between the different streaming ports. So
    the best thing that can be done is to error out when a memory mapped port
    is described in the devicetree but none is detected in the hardware.
    Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: default avatarAlexandru Ardelean <alexandru.ardelean@analog.com>
    Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
    b5d89905
dma-axi-dmac.c 21 KB