arm64: dts: stratix10: Add Stratix10 SMMU support
authorThor Thayer <thor.thayer@linux.intel.com>
Fri, 4 Jan 2019 19:23:46 +0000 (13:23 -0600)
committerDinh Nguyen <dinguyen@kernel.org>
Mon, 7 Jan 2019 15:26:01 +0000 (09:26 -0600)
Now there are device tree clocks for the ARM64 SMMU,
add SMMU support to the Stratix10 Device Tree which
includes adding the SMMU node and adding IOMMU stream
ids to the SMMU peripherals.

Signed-off-by: Thor Thayer <thor.thayer@linux.intel.com>
Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi

index b2c9bb664595f54b7ad976ef26e2f7c823286d64..e3f5eaa3657d9d2b854e29304e2ffe50107a2cab 100644 (file)
                        tx-fifo-depth = <16384>;
                        rx-fifo-depth = <16384>;
                        snps,multicast-filter-bins = <256>;
+                       iommus = <&smmu 1>;
                        status = "disabled";
                };
 
                        tx-fifo-depth = <16384>;
                        rx-fifo-depth = <16384>;
                        snps,multicast-filter-bins = <256>;
+                       iommus = <&smmu 2>;
                        status = "disabled";
                };
 
                        tx-fifo-depth = <16384>;
                        rx-fifo-depth = <16384>;
                        snps,multicast-filter-bins = <256>;
+                       iommus = <&smmu 3>;
                        status = "disabled";
                };
 
                        clocks = <&clkmgr STRATIX10_L4_MP_CLK>,
                                 <&clkmgr STRATIX10_SDMMC_CLK>;
                        clock-names = "biu", "ciu";
+                       iommus = <&smmu 5>;
                        status = "disabled";
                };
 
                        reg = <0xffd11000 0x1000>;
                };
 
+               smmu: iommu@fa000000 {
+                       compatible = "arm,mmu-500", "arm,smmu-v2";
+                       reg = <0xfa000000 0x40000>;
+                       #global-interrupts = <2>;
+                       #iommu-cells = <1>;
+                       clocks = <&clkmgr STRATIX10_L4_MAIN_CLK>;
+                       clock-names = "iommu";
+                       interrupt-parent = <&intc>;
+                       interrupts = <0 128 4>, /* Global Secure Fault */
+                               <0 129 4>, /* Global Non-secure Fault */
+                               /* Non-secure Context Interrupts (32) */
+                               <0 138 4>, <0 139 4>, <0 140 4>, <0 141 4>,
+                               <0 142 4>, <0 143 4>, <0 144 4>, <0 145 4>,
+                               <0 146 4>, <0 147 4>, <0 148 4>, <0 149 4>,
+                               <0 150 4>, <0 151 4>, <0 152 4>, <0 153 4>,
+                               <0 154 4>, <0 155 4>, <0 156 4>, <0 157 4>,
+                               <0 158 4>, <0 159 4>, <0 160 4>, <0 161 4>,
+                               <0 162 4>, <0 163 4>, <0 164 4>, <0 165 4>,
+                               <0 166 4>, <0 167 4>, <0 168 4>, <0 169 4>;
+                       stream-match-mask = <0x7ff0>;
+                       status = "disabled";
+               };
+
                spi0: spi@ffda4000 {
                        compatible = "snps,dw-apb-ssi";
                        #address-cells = <1>;
                        resets = <&rst USB0_RESET>, <&rst USB0_OCP_RESET>;
                        reset-names = "dwc2", "dwc2-ecc";
                        clocks = <&clkmgr STRATIX10_USB_CLK>;
+                       iommus = <&smmu 6>;
                        status = "disabled";
                };
 
                        resets = <&rst USB1_RESET>, <&rst USB1_OCP_RESET>;
                        reset-names = "dwc2", "dwc2-ecc";
                        clocks = <&clkmgr STRATIX10_USB_CLK>;
+                       iommus = <&smmu 7>;
                        status = "disabled";
                };