clock-names = "apb_pclk";
        };
 
+       smmu_pcie: iommu@2b500000 {
+               compatible = "arm,mmu-401", "arm,smmu-v1";
+               reg = <0x0 0x2b500000 0x0 0x10000>;
+               interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
+               #iommu-cells = <1>;
+               #global-interrupts = <1>;
+               dma-coherent;
+               status = "disabled";
+       };
+
+       smmu_etr: iommu@2b600000 {
+               compatible = "arm,mmu-401", "arm,smmu-v1";
+               reg = <0x0 0x2b600000 0x0 0x10000>;
+               interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
+               #iommu-cells = <1>;
+               #global-interrupts = <1>;
+               dma-coherent;
+               status = "disabled";
+       };
+
        gic: interrupt-controller@2c010000 {
                compatible = "arm,gic-400", "arm,cortex-a15-gic";
                reg = <0x0 0x2c010000 0 0x1000>,
        etr@20070000 {
                compatible = "arm,coresight-tmc", "arm,primecell";
                reg = <0 0x20070000 0 0x1000>;
+               iommus = <&smmu_etr 0>;
 
                clocks = <&soc_smc50mhz>;
                clock-names = "apb_pclk";
                                <0 0 0 4 &gic 0 0 0 139 4>;
                msi-parent = <&v2m_0>;
                status = "disabled";
+               iommu-map-mask = <0x0>; /* RC has no means to output PCI RID */
+               iommu-map = <0x0 &smmu_pcie 0x0 0x1>;
        };
 
        scpi {
 
        /include/ "juno-clocks.dtsi"
 
+       smmu_dma: iommu@7fb00000 {
+               compatible = "arm,mmu-401", "arm,smmu-v1";
+               reg = <0x0 0x7fb00000 0x0 0x10000>;
+               interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
+               #iommu-cells = <1>;
+               #global-interrupts = <1>;
+               dma-coherent;
+               status = "disabled";
+       };
+
+       smmu_hdlcd1: iommu@7fb10000 {
+               compatible = "arm,mmu-401", "arm,smmu-v1";
+               reg = <0x0 0x7fb10000 0x0 0x10000>;
+               interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
+               #iommu-cells = <1>;
+               #global-interrupts = <1>;
+               status = "disabled";
+       };
+
+       smmu_hdlcd0: iommu@7fb20000 {
+               compatible = "arm,mmu-401", "arm,smmu-v1";
+               reg = <0x0 0x7fb20000 0x0 0x10000>;
+               interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
+               #iommu-cells = <1>;
+               #global-interrupts = <1>;
+               status = "disabled";
+       };
+
+       smmu_usb: iommu@7fb30000 {
+               compatible = "arm,mmu-401", "arm,smmu-v1";
+               reg = <0x0 0x7fb30000 0x0 0x10000>;
+               interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
+               #iommu-cells = <1>;
+               #global-interrupts = <1>;
+               dma-coherent;
+               status = "disabled";
+       };
+
        dma@7ff00000 {
                compatible = "arm,pl330", "arm,primecell";
                reg = <0x0 0x7ff00000 0 0x1000>;
                             <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
+               iommus = <&smmu_dma 0>,
+                        <&smmu_dma 1>,
+                        <&smmu_dma 2>,
+                        <&smmu_dma 3>,
+                        <&smmu_dma 4>,
+                        <&smmu_dma 5>,
+                        <&smmu_dma 6>,
+                        <&smmu_dma 7>,
+                        <&smmu_dma 8>;
                clocks = <&soc_faxiclk>;
                clock-names = "apb_pclk";
        };
                compatible = "arm,hdlcd";
                reg = <0 0x7ff50000 0 0x1000>;
                interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
+               iommus = <&smmu_hdlcd1 0>;
                clocks = <&scpi_clk 3>;
                clock-names = "pxlclk";
 
                compatible = "arm,hdlcd";
                reg = <0 0x7ff60000 0 0x1000>;
                interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+               iommus = <&smmu_hdlcd0 0>;
                clocks = <&scpi_clk 3>;
                clock-names = "pxlclk";
 
                compatible = "generic-ohci";
                reg = <0x0 0x7ffb0000 0x0 0x10000>;
                interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
+               iommus = <&smmu_usb 0>;
                clocks = <&soc_usb48mhz>;
        };
 
                compatible = "generic-ehci";
                reg = <0x0 0x7ffc0000 0x0 0x10000>;
                interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
+               iommus = <&smmu_usb 0>;
                clocks = <&soc_usb48mhz>;
        };