* ARM SMMUv3 Architecture Implementation

The SMMUv3 architecture is a significant deparature from previous
revisions, replacing the MMIO register interface with in-memory command
and event queues and adding support for the ATS and PRI components of
the PCIe specification.

** SMMUv3 required properties:

- compatible        : Should include:

                      * "arm,smmu-v3" for any SMMUv3 compliant
                        implementation. This entry should be last in the
                        compatible list.

- reg               : Base address and size of the SMMU.

- interrupts        : Non-secure interrupt list describing the wired
                      interrupt sources corresponding to entries in
                      interrupt-names. If no wired interrupts are
                      present then this property may be omitted.

- interrupt-names   : When the interrupts property is present, should
                      include the following:
                      * "eventq"    - Event Queue not empty
                      * "priq"      - PRI Queue not empty
                      * "cmdq-sync" - CMD_SYNC complete
                      * "gerror"    - Global Error activated

** SMMUv3 optional properties:

- dma-coherent      : Present if DMA operations made by the SMMU (page
                      table walks, stream table accesses etc) are cache
                      coherent with the CPU.

                      NOTE: this only applies to the SMMU itself, not
                      masters connected upstream of the SMMU.

- hisilicon,broken-prefetch-cmd
                    : Avoid sending CMD_PREFETCH_* commands to the SMMU.
