[PATCH V3 1/2] of: Add generic device tree DMA helpers
From: Jassi Brar <hidden>
Date: 2012-05-18 17:12:52
Also in:
linux-devicetree, linux-omap
On 18 May 2012 01:02, Stephen Warren [off-list ref] wrote:
Now, the DMA node for an on-SoC DMAC would be in soc.dtsi. Typically, the DMAC is connected to many on-SoC devices, and hence soc.dtsi would need to specify the routing information for all those devices to avoid duplicating it in every board.dts. Now, if you have some DMA requests that go off-SoC, the board.dts file might want to add to the routing table to indicate what clients connect to those DMA requests. However, there's no way in the device tree compiler right now to add to a property; you can only completely replace it. That would entail duplicating the entire routing information from soc.dtsi into each board.dts that wanted to add to it - a bad situation. Splitting the routing information into chunks in the client nodes avoids this issue entirely.
As already noted by Russell, the dma setup is different than irq or gpio which deliberately lend to off-SoC attachments. Without fpga'ing, I find it hard to imagine request-signals going off-SoC. I only see the issue of different boards sporting a different sub-sets of clients i.e, a map entry may or may exist for a board but it would be same for two boards that have it. Maybe we could somehow separate out the chan-map and private-data into board.dts ? Even if it has to stay in soc.dts, we still have the benefit of having dmac agnostic client nodes. cheers!