xref: /freebsd/sys/contrib/device-tree/Bindings/iommu/apple,dart.yaml (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
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:
258bab661aSEmmanuel Vadot    enum:
268bab661aSEmmanuel Vadot      - apple,t8103-dart
27*8d13bc63SEmmanuel Vadot      - apple,t8103-usb4-dart
28cb7aa33aSEmmanuel Vadot      - apple,t8110-dart
298bab661aSEmmanuel Vadot      - apple,t6000-dart
30354d7675SEmmanuel Vadot
31354d7675SEmmanuel Vadot  reg:
32354d7675SEmmanuel Vadot    maxItems: 1
33354d7675SEmmanuel Vadot
34354d7675SEmmanuel Vadot  interrupts:
35354d7675SEmmanuel Vadot    maxItems: 1
36354d7675SEmmanuel Vadot
37354d7675SEmmanuel Vadot  clocks:
38354d7675SEmmanuel Vadot    description:
39354d7675SEmmanuel Vadot      Reference to the gate clock phandle if required for this IOMMU.
40354d7675SEmmanuel Vadot      Optional since not all IOMMUs are attached to a clock gate.
41354d7675SEmmanuel Vadot
42354d7675SEmmanuel Vadot  '#iommu-cells':
43354d7675SEmmanuel Vadot    const: 1
44354d7675SEmmanuel Vadot    description:
45354d7675SEmmanuel Vadot      Has to be one. The single cell describes the stream id emitted by
46354d7675SEmmanuel Vadot      a master to the IOMMU.
47354d7675SEmmanuel Vadot
48e67e8565SEmmanuel Vadot  power-domains:
49e67e8565SEmmanuel Vadot    maxItems: 1
50e67e8565SEmmanuel Vadot
51354d7675SEmmanuel Vadotrequired:
52354d7675SEmmanuel Vadot  - compatible
53354d7675SEmmanuel Vadot  - reg
54354d7675SEmmanuel Vadot  - '#iommu-cells'
55354d7675SEmmanuel Vadot  - interrupts
56354d7675SEmmanuel Vadot
57354d7675SEmmanuel VadotadditionalProperties: false
58354d7675SEmmanuel Vadot
59354d7675SEmmanuel Vadotexamples:
60354d7675SEmmanuel Vadot  - |+
61354d7675SEmmanuel Vadot    dart1: iommu@82f80000 {
62354d7675SEmmanuel Vadot      compatible = "apple,t8103-dart";
63354d7675SEmmanuel Vadot      reg = <0x82f80000 0x4000>;
64354d7675SEmmanuel Vadot      interrupts = <1 781 4>;
65354d7675SEmmanuel Vadot      #iommu-cells = <1>;
66354d7675SEmmanuel Vadot    };
67354d7675SEmmanuel Vadot
68354d7675SEmmanuel Vadot    master1 {
69354d7675SEmmanuel Vadot      iommus = <&dart1 0>;
70354d7675SEmmanuel Vadot    };
71354d7675SEmmanuel Vadot
72354d7675SEmmanuel Vadot  - |+
73354d7675SEmmanuel Vadot    dart2a: iommu@82f00000 {
74354d7675SEmmanuel Vadot      compatible = "apple,t8103-dart";
75354d7675SEmmanuel Vadot      reg = <0x82f00000 0x4000>;
76354d7675SEmmanuel Vadot      interrupts = <1 781 4>;
77354d7675SEmmanuel Vadot      #iommu-cells = <1>;
78354d7675SEmmanuel Vadot    };
79354d7675SEmmanuel Vadot    dart2b: iommu@82f80000 {
80354d7675SEmmanuel Vadot      compatible = "apple,t8103-dart";
81354d7675SEmmanuel Vadot      reg = <0x82f80000 0x4000>;
82354d7675SEmmanuel Vadot      interrupts = <1 781 4>;
83354d7675SEmmanuel Vadot      #iommu-cells = <1>;
84354d7675SEmmanuel Vadot    };
85354d7675SEmmanuel Vadot
86354d7675SEmmanuel Vadot    master2 {
87354d7675SEmmanuel Vadot      iommus = <&dart2a 0>, <&dart2b 1>;
88354d7675SEmmanuel Vadot    };
89