Skip to content

Commit d1115de

Browse files
konradybciorobherring
authored andcommitted
dt-bindings: iommu: Convert QCOM IOMMU to YAML
Convert the Qualcomm IOMMU bindings to YAML. Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> Link: https://lore.kernel.org/r/20230406-topic-qciommu-v3-1-aa0e4f018191@linaro.org Signed-off-by: Rob Herring <robh@kernel.org>
1 parent a010840 commit d1115de

2 files changed

Lines changed: 113 additions & 122 deletions

File tree

Documentation/devicetree/bindings/iommu/qcom,iommu.txt

Lines changed: 0 additions & 122 deletions
This file was deleted.
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
# 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+
7+
title: Qualcomm Technologies legacy IOMMU implementations
8+
9+
maintainers:
10+
- Konrad Dybcio <konrad.dybcio@linaro.org>
11+
12+
description: |
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+
18+
properties:
19+
compatible:
20+
items:
21+
- enum:
22+
- qcom,msm8916-iommu
23+
- qcom,msm8953-iommu
24+
- const: qcom,msm-iommu-v1
25+
26+
clocks:
27+
items:
28+
- description: Clock required for IOMMU register group access
29+
- description: Clock required for underlying bus access
30+
31+
clock-names:
32+
items:
33+
- const: iface
34+
- const: bus
35+
36+
power-domains:
37+
maxItems: 1
38+
39+
reg:
40+
maxItems: 1
41+
42+
ranges: true
43+
44+
qcom,iommu-secure-id:
45+
$ref: /schemas/types.yaml#/definitions/uint32
46+
description:
47+
The SCM secure ID of the IOMMU instance.
48+
49+
'#address-cells':
50+
const: 1
51+
52+
'#size-cells':
53+
const: 1
54+
55+
'#iommu-cells':
56+
const: 1
57+
58+
patternProperties:
59+
"^iommu-ctx@[0-9a-f]+$":
60+
type: object
61+
additionalProperties: false
62+
properties:
63+
compatible:
64+
enum:
65+
- qcom,msm-iommu-v1-ns
66+
- qcom,msm-iommu-v1-sec
67+
68+
interrupts:
69+
maxItems: 1
70+
71+
reg:
72+
maxItems: 1
73+
74+
required:
75+
- compatible
76+
- interrupts
77+
- reg
78+
79+
required:
80+
- compatible
81+
- clocks
82+
- clock-names
83+
- ranges
84+
- '#address-cells'
85+
- '#size-cells'
86+
- '#iommu-cells'
87+
88+
additionalProperties: false
89+
90+
examples:
91+
- |
92+
#include <dt-bindings/clock/qcom,gcc-msm8916.h>
93+
#include <dt-bindings/interrupt-controller/arm-gic.h>
94+
95+
apps_iommu: iommu@1e20000 {
96+
compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
97+
reg = <0x01ef0000 0x3000>;
98+
clocks = <&gcc GCC_SMMU_CFG_CLK>,
99+
<&gcc GCC_APSS_TCU_CLK>;
100+
clock-names = "iface", "bus";
101+
qcom,iommu-secure-id = <17>;
102+
#address-cells = <1>;
103+
#size-cells = <1>;
104+
#iommu-cells = <1>;
105+
ranges = <0 0x01e20000 0x40000>;
106+
107+
/* mdp_0: */
108+
iommu-ctx@4000 {
109+
compatible = "qcom,msm-iommu-v1-ns";
110+
reg = <0x4000 0x1000>;
111+
interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
112+
};
113+
};

0 commit comments

Comments
 (0)