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 b2c9bb6..e3f5eaa 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";
                };