xref: /linux/Documentation/devicetree/bindings/iommu/apple,dart.yaml (revision 55a42f78ffd386e01a5404419f8c5ded7db70a21)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/iommu/apple,dart.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Apple DART IOMMU
8
9maintainers:
10  - Sven Peter <sven@svenpeter.dev>
11
12description: |+
13  Apple SoCs may contain an implementation of their Device Address
14  Resolution Table which provides a mandatory layer of address
15  translations for various masters.
16
17  Each DART instance is capable of handling up to 16 different streams
18  with individual pagetables and page-level read/write protection flags.
19
20  This DART IOMMU also raises interrupts in response to various
21  fault conditions.
22
23properties:
24  compatible:
25    oneOf:
26      - enum:
27          - apple,t8103-dart
28          - apple,t8103-usb4-dart
29          - apple,t8110-dart
30          - apple,t6000-dart
31      - items:
32          - const: apple,t6020-dart
33          - const: apple,t8110-dart
34
35  reg:
36    maxItems: 1
37
38  interrupts:
39    maxItems: 1
40
41  clocks:
42    description:
43      Reference to the gate clock phandle if required for this IOMMU.
44      Optional since not all IOMMUs are attached to a clock gate.
45
46  '#iommu-cells':
47    const: 1
48    description:
49      Has to be one. The single cell describes the stream id emitted by
50      a master to the IOMMU.
51
52  power-domains:
53    maxItems: 1
54
55required:
56  - compatible
57  - reg
58  - '#iommu-cells'
59  - interrupts
60
61additionalProperties: false
62
63examples:
64  - |+
65    dart1: iommu@82f80000 {
66      compatible = "apple,t8103-dart";
67      reg = <0x82f80000 0x4000>;
68      interrupts = <1 781 4>;
69      #iommu-cells = <1>;
70    };
71
72    master1 {
73      iommus = <&dart1 0>;
74    };
75
76  - |+
77    dart2a: iommu@82f00000 {
78      compatible = "apple,t8103-dart";
79      reg = <0x82f00000 0x4000>;
80      interrupts = <1 781 4>;
81      #iommu-cells = <1>;
82    };
83    dart2b: iommu@82f80000 {
84      compatible = "apple,t8103-dart";
85      reg = <0x82f80000 0x4000>;
86      interrupts = <1 781 4>;
87      #iommu-cells = <1>;
88    };
89
90    master2 {
91      iommus = <&dart2a 0>, <&dart2b 1>;
92    };
93