Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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 };