xref: /freebsd/sys/contrib/device-tree/Bindings/iommu/apple,dart.yaml (revision e67e85659c0de33e617e5fbf1028c6e8b49eee53)
1354d7675SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2354d7675SEmmanuel Vadot%YAML 1.2
3354d7675SEmmanuel Vadot---
4354d7675SEmmanuel Vadot$id: http://devicetree.org/schemas/iommu/apple,dart.yaml#
5354d7675SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6354d7675SEmmanuel Vadot
7354d7675SEmmanuel Vadottitle: Apple DART IOMMU
8354d7675SEmmanuel Vadot
9354d7675SEmmanuel Vadotmaintainers:
10354d7675SEmmanuel Vadot  - Sven Peter <sven@svenpeter.dev>
11354d7675SEmmanuel Vadot
12354d7675SEmmanuel Vadotdescription: |+
13354d7675SEmmanuel Vadot  Apple SoCs may contain an implementation of their Device Address
14354d7675SEmmanuel Vadot  Resolution Table which provides a mandatory layer of address
15354d7675SEmmanuel Vadot  translations for various masters.
16354d7675SEmmanuel Vadot
17354d7675SEmmanuel Vadot  Each DART instance is capable of handling up to 16 different streams
18354d7675SEmmanuel Vadot  with individual pagetables and page-level read/write protection flags.
19354d7675SEmmanuel Vadot
20354d7675SEmmanuel Vadot  This DART IOMMU also raises interrupts in response to various
21354d7675SEmmanuel Vadot  fault conditions.
22354d7675SEmmanuel Vadot
23354d7675SEmmanuel Vadotproperties:
24354d7675SEmmanuel Vadot  compatible:
25354d7675SEmmanuel Vadot    const: apple,t8103-dart
26354d7675SEmmanuel Vadot
27354d7675SEmmanuel Vadot  reg:
28354d7675SEmmanuel Vadot    maxItems: 1
29354d7675SEmmanuel Vadot
30354d7675SEmmanuel Vadot  interrupts:
31354d7675SEmmanuel Vadot    maxItems: 1
32354d7675SEmmanuel Vadot
33354d7675SEmmanuel Vadot  clocks:
34354d7675SEmmanuel Vadot    description:
35354d7675SEmmanuel Vadot      Reference to the gate clock phandle if required for this IOMMU.
36354d7675SEmmanuel Vadot      Optional since not all IOMMUs are attached to a clock gate.
37354d7675SEmmanuel Vadot
38354d7675SEmmanuel Vadot  '#iommu-cells':
39354d7675SEmmanuel Vadot    const: 1
40354d7675SEmmanuel Vadot    description:
41354d7675SEmmanuel Vadot      Has to be one. The single cell describes the stream id emitted by
42354d7675SEmmanuel Vadot      a master to the IOMMU.
43354d7675SEmmanuel Vadot
44*e67e8565SEmmanuel Vadot  power-domains:
45*e67e8565SEmmanuel Vadot    maxItems: 1
46*e67e8565SEmmanuel Vadot
47354d7675SEmmanuel Vadotrequired:
48354d7675SEmmanuel Vadot  - compatible
49354d7675SEmmanuel Vadot  - reg
50354d7675SEmmanuel Vadot  - '#iommu-cells'
51354d7675SEmmanuel Vadot  - interrupts
52354d7675SEmmanuel Vadot
53354d7675SEmmanuel VadotadditionalProperties: false
54354d7675SEmmanuel Vadot
55354d7675SEmmanuel Vadotexamples:
56354d7675SEmmanuel Vadot  - |+
57354d7675SEmmanuel Vadot    dart1: iommu@82f80000 {
58354d7675SEmmanuel Vadot      compatible = "apple,t8103-dart";
59354d7675SEmmanuel Vadot      reg = <0x82f80000 0x4000>;
60354d7675SEmmanuel Vadot      interrupts = <1 781 4>;
61354d7675SEmmanuel Vadot      #iommu-cells = <1>;
62354d7675SEmmanuel Vadot    };
63354d7675SEmmanuel Vadot
64354d7675SEmmanuel Vadot    master1 {
65354d7675SEmmanuel Vadot      iommus = <&dart1 0>;
66354d7675SEmmanuel Vadot    };
67354d7675SEmmanuel Vadot
68354d7675SEmmanuel Vadot  - |+
69354d7675SEmmanuel Vadot    dart2a: iommu@82f00000 {
70354d7675SEmmanuel Vadot      compatible = "apple,t8103-dart";
71354d7675SEmmanuel Vadot      reg = <0x82f00000 0x4000>;
72354d7675SEmmanuel Vadot      interrupts = <1 781 4>;
73354d7675SEmmanuel Vadot      #iommu-cells = <1>;
74354d7675SEmmanuel Vadot    };
75354d7675SEmmanuel Vadot    dart2b: iommu@82f80000 {
76354d7675SEmmanuel Vadot      compatible = "apple,t8103-dart";
77354d7675SEmmanuel Vadot      reg = <0x82f80000 0x4000>;
78354d7675SEmmanuel Vadot      interrupts = <1 781 4>;
79354d7675SEmmanuel Vadot      #iommu-cells = <1>;
80354d7675SEmmanuel Vadot    };
81354d7675SEmmanuel Vadot
82354d7675SEmmanuel Vadot    master2 {
83354d7675SEmmanuel Vadot      iommus = <&dart2a 0>, <&dart2b 1>;
84354d7675SEmmanuel Vadot    };
85