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
compatibilityproperty. 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,descandrespin 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, sorespregister does not exist. Moreover, the read data fromrespare 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_registeris not used), so no device could point to its node at DeviceTree viadmasproperty.
Could somebody explain these points to me?
Thanks in advance for any response or just idea.
Jan Konečný.