Hi everybody,
I would like to ask if somebody has used a Linux driver for Intel (Altera) IP for modular Scatter-Gather Direct Memory Access Controller? The source code could be found at https://github.com/altera-opensource/linux-socfpga/blob/813835028e9ae1f18cd11bb0ec591d0f0577d96a/drivers/dma/altera-msgdma.c.
I have been studing and trying to use it with Linux DMA Engine for some weeks but I am not successful. It seem me to be a quite non-standard driver which is not meant for general usage. I am asking in case I do not understand something basic and important.
Following things seem me strange:
- The driver is a platform driver, but there is no
compatibility
property. So the driver could not co-operate with DeviceTree. I am able to probe it only in case I add the compatibility string to it. - Three registres are needed named
csr
,desc
andresp
in DeviceTree according to the driver code. However, if the mSGDMA IP is configured to have a streaming input or output, it has not the response port, soresp
register does not exist. Moreover, the read data fromresp
are always droped (according to functionmsgdma_tasklet
). - The sopc2dtc tool creates a node with different register names at DeviceTree.
- There is no documentation for this driver at Linux kernel source code nor for its DeviceTree binding.
- The device is not registered as dma-controller (function
of_dma_controller_register
is not used), so no device could point to its node at DeviceTree viadmas
property.
Could somebody explain these points to me?
Thanks in advance for any response or just idea.
Jan Konečný.