diff options
-rw-r--r-- | Documentation/devicetree/bindings/iommu/arm,smmu.txt | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu.txt b/Documentation/devicetree/bindings/iommu/arm,smmu.txt index 8a6ffce12af5..a6504b37cc21 100644 --- a/Documentation/devicetree/bindings/iommu/arm,smmu.txt +++ b/Documentation/devicetree/bindings/iommu/arm,smmu.txt | |||
@@ -17,10 +17,16 @@ conditions. | |||
17 | "arm,mmu-401" | 17 | "arm,mmu-401" |
18 | "arm,mmu-500" | 18 | "arm,mmu-500" |
19 | "cavium,smmu-v2" | 19 | "cavium,smmu-v2" |
20 | "qcom,smmu-v2" | ||
20 | 21 | ||
21 | depending on the particular implementation and/or the | 22 | depending on the particular implementation and/or the |
22 | version of the architecture implemented. | 23 | version of the architecture implemented. |
23 | 24 | ||
25 | Qcom SoCs must contain, as below, SoC-specific compatibles | ||
26 | along with "qcom,smmu-v2": | ||
27 | "qcom,msm8996-smmu-v2", "qcom,smmu-v2", | ||
28 | "qcom,sdm845-smmu-v2", "qcom,smmu-v2". | ||
29 | |||
24 | - reg : Base address and size of the SMMU. | 30 | - reg : Base address and size of the SMMU. |
25 | 31 | ||
26 | - #global-interrupts : The number of global interrupts exposed by the | 32 | - #global-interrupts : The number of global interrupts exposed by the |
@@ -71,6 +77,22 @@ conditions. | |||
71 | or using stream matching with #iommu-cells = <2>, and | 77 | or using stream matching with #iommu-cells = <2>, and |
72 | may be ignored if present in such cases. | 78 | may be ignored if present in such cases. |
73 | 79 | ||
80 | - clock-names: List of the names of clocks input to the device. The | ||
81 | required list depends on particular implementation and | ||
82 | is as follows: | ||
83 | - for "qcom,smmu-v2": | ||
84 | - "bus": clock required for downstream bus access and | ||
85 | for the smmu ptw, | ||
86 | - "iface": clock required to access smmu's registers | ||
87 | through the TCU's programming interface. | ||
88 | - unspecified for other implementations. | ||
89 | |||
90 | - clocks: Specifiers for all clocks listed in the clock-names property, | ||
91 | as per generic clock bindings. | ||
92 | |||
93 | - power-domains: Specifiers for power domains required to be powered on for | ||
94 | the SMMU to operate, as per generic power domain bindings. | ||
95 | |||
74 | ** Deprecated properties: | 96 | ** Deprecated properties: |
75 | 97 | ||
76 | - mmu-masters (deprecated in favour of the generic "iommus" binding) : | 98 | - mmu-masters (deprecated in favour of the generic "iommus" binding) : |
@@ -137,3 +159,20 @@ conditions. | |||
137 | iommu-map = <0 &smmu3 0 0x400>; | 159 | iommu-map = <0 &smmu3 0 0x400>; |
138 | ... | 160 | ... |
139 | }; | 161 | }; |
162 | |||
163 | /* Qcom's arm,smmu-v2 implementation */ | ||
164 | smmu4: iommu@d00000 { | ||
165 | compatible = "qcom,msm8996-smmu-v2", "qcom,smmu-v2"; | ||
166 | reg = <0xd00000 0x10000>; | ||
167 | |||
168 | #global-interrupts = <1>; | ||
169 | interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>, | ||
170 | <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>, | ||
171 | <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>; | ||
172 | #iommu-cells = <1>; | ||
173 | power-domains = <&mmcc MDSS_GDSC>; | ||
174 | |||
175 | clocks = <&mmcc SMMU_MDP_AXI_CLK>, | ||
176 | <&mmcc SMMU_MDP_AHB_CLK>; | ||
177 | clock-names = "bus", "iface"; | ||
178 | }; | ||