blob: f8cebc9e8cd9d46b449cd297153dbebe5c84bf3f [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/iommu/qcom,iommu.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm Technologies legacy IOMMU implementations
8
9maintainers:
Tom Rini6b642ac2024-10-01 12:20:28 -060010 - Konrad Dybcio <konradybcio@kernel.org>
Tom Rini53633a82024-02-29 12:33:36 -050011
12description: |
13 Qualcomm "B" family devices which are not compatible with arm-smmu have
14 a similar looking IOMMU, but without access to the global register space
15 and optionally requiring additional configuration to route context IRQs
16 to non-secure vs secure interrupt line.
17
18properties:
19 compatible:
20 oneOf:
21 - items:
22 - enum:
23 - qcom,msm8916-iommu
24 - qcom,msm8953-iommu
25 - const: qcom,msm-iommu-v1
26 - items:
27 - enum:
Tom Rini6b642ac2024-10-01 12:20:28 -060028 - qcom,msm8953-iommu
Tom Rini53633a82024-02-29 12:33:36 -050029 - qcom,msm8976-iommu
30 - const: qcom,msm-iommu-v2
31
32 clocks:
33 items:
34 - description: Clock required for IOMMU register group access
35 - description: Clock required for underlying bus access
36
37 clock-names:
38 items:
39 - const: iface
40 - const: bus
41
42 power-domains:
43 maxItems: 1
44
45 reg:
46 maxItems: 1
47
48 ranges: true
49
50 qcom,iommu-secure-id:
51 $ref: /schemas/types.yaml#/definitions/uint32
52 description:
53 The SCM secure ID of the IOMMU instance.
54
55 '#address-cells':
56 const: 1
57
58 '#size-cells':
59 const: 1
60
61 '#iommu-cells':
62 const: 1
63
64patternProperties:
65 "^iommu-ctx@[0-9a-f]+$":
66 type: object
67 additionalProperties: false
68 properties:
69 compatible:
70 enum:
71 - qcom,msm-iommu-v1-ns
72 - qcom,msm-iommu-v1-sec
73 - qcom,msm-iommu-v2-ns
74 - qcom,msm-iommu-v2-sec
75
76 interrupts:
77 maxItems: 1
78
79 reg:
80 maxItems: 1
81
82 qcom,ctx-asid:
83 $ref: /schemas/types.yaml#/definitions/uint32
84 description:
85 The ASID number associated to the context bank.
86
87 required:
88 - compatible
89 - interrupts
90 - reg
91
92required:
93 - compatible
94 - clocks
95 - clock-names
96 - ranges
97 - '#address-cells'
98 - '#size-cells'
99 - '#iommu-cells'
100
101additionalProperties: false
102
103examples:
104 - |
105 #include <dt-bindings/clock/qcom,gcc-msm8916.h>
106 #include <dt-bindings/interrupt-controller/arm-gic.h>
107
108 apps_iommu: iommu@1e20000 {
109 compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
110 reg = <0x01ef0000 0x3000>;
111 clocks = <&gcc GCC_SMMU_CFG_CLK>,
112 <&gcc GCC_APSS_TCU_CLK>;
113 clock-names = "iface", "bus";
114 qcom,iommu-secure-id = <17>;
115 #address-cells = <1>;
116 #size-cells = <1>;
117 #iommu-cells = <1>;
118 ranges = <0 0x01e20000 0x40000>;
119
120 /* mdp_0: */
121 iommu-ctx@4000 {
122 compatible = "qcom,msm-iommu-v1-ns";
123 reg = <0x4000 0x1000>;
124 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
125 };
126 };