On 10/31/2013 12:02 PM, Will Deacon wrote:
On Thu, Oct 31, 2013 at 05:40:29PM +0000, Mark Rutland wrote:
quoted
For the ARM SMMU binding, each device has a #stream-id-cells property
describing how many IDs it has, and then the SMMU node has a phandle+args
linkage to each of the devices attached to it, describing their stream IDs.
While this does have some limitations (a device can't be plugged into multiple
SMMUs with a different number of IDs), it seems generally sane.
If a device masters through two separate SMMUs, I think you need to describe
it as two devices. Even if you could describe the thing in DT, the Linux
driver/iommu model will quickly fall over.
Isn't that an internal Linux driver model issue? If there's a single
logical HW block, it seems like it should have a single DT node. The
fact that the DT node then somehow needs to instantiate two struct
device objects within Linux seems like it shouldn't influence the DT design.