blob: 7adb1de455a5b38dfb6c76303f11c8f95395e0dd [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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 enum:
26 - apple,t8103-dart
Tom Rini93743d22024-04-01 09:08:13 -040027 - apple,t8103-usb4-dart
Tom Rini53633a82024-02-29 12:33:36 -050028 - apple,t8110-dart
29 - apple,t6000-dart
30
31 reg:
32 maxItems: 1
33
34 interrupts:
35 maxItems: 1
36
37 clocks:
38 description:
39 Reference to the gate clock phandle if required for this IOMMU.
40 Optional since not all IOMMUs are attached to a clock gate.
41
42 '#iommu-cells':
43 const: 1
44 description:
45 Has to be one. The single cell describes the stream id emitted by
46 a master to the IOMMU.
47
48 power-domains:
49 maxItems: 1
50
51required:
52 - compatible
53 - reg
54 - '#iommu-cells'
55 - interrupts
56
57additionalProperties: false
58
59examples:
60 - |+
61 dart1: iommu@82f80000 {
62 compatible = "apple,t8103-dart";
63 reg = <0x82f80000 0x4000>;
64 interrupts = <1 781 4>;
65 #iommu-cells = <1>;
66 };
67
68 master1 {
69 iommus = <&dart1 0>;
70 };
71
72 - |+
73 dart2a: iommu@82f00000 {
74 compatible = "apple,t8103-dart";
75 reg = <0x82f00000 0x4000>;
76 interrupts = <1 781 4>;
77 #iommu-cells = <1>;
78 };
79 dart2b: iommu@82f80000 {
80 compatible = "apple,t8103-dart";
81 reg = <0x82f80000 0x4000>;
82 interrupts = <1 781 4>;
83 #iommu-cells = <1>;
84 };
85
86 master2 {
87 iommus = <&dart2a 0>, <&dart2b 1>;
88 };