xref: /linux/Documentation/devicetree/bindings/iommu/apple,dart.yaml (revision a08bd8df97b7549fe0edc53d087322314a0c4dfe)
19d9cafb4SSven Peter# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
29d9cafb4SSven Peter%YAML 1.2
39d9cafb4SSven Peter---
49d9cafb4SSven Peter$id: http://devicetree.org/schemas/iommu/apple,dart.yaml#
59d9cafb4SSven Peter$schema: http://devicetree.org/meta-schemas/core.yaml#
69d9cafb4SSven Peter
79d9cafb4SSven Petertitle: Apple DART IOMMU
89d9cafb4SSven Peter
99d9cafb4SSven Petermaintainers:
109d9cafb4SSven Peter  - Sven Peter <sven@svenpeter.dev>
119d9cafb4SSven Peter
129d9cafb4SSven Peterdescription: |+
139d9cafb4SSven Peter  Apple SoCs may contain an implementation of their Device Address
149d9cafb4SSven Peter  Resolution Table which provides a mandatory layer of address
159d9cafb4SSven Peter  translations for various masters.
169d9cafb4SSven Peter
179d9cafb4SSven Peter  Each DART instance is capable of handling up to 16 different streams
189d9cafb4SSven Peter  with individual pagetables and page-level read/write protection flags.
199d9cafb4SSven Peter
209d9cafb4SSven Peter  This DART IOMMU also raises interrupts in response to various
219d9cafb4SSven Peter  fault conditions.
229d9cafb4SSven Peter
239d9cafb4SSven Peterproperties:
249d9cafb4SSven Peter  compatible:
258cc8bdceSSven Peter    enum:
268cc8bdceSSven Peter      - apple,t8103-dart
27*a08bd8dfSSven Peter      - apple,t8103-usb4-dart
28659bf8e5SHector Martin      - apple,t8110-dart
298cc8bdceSSven Peter      - apple,t6000-dart
309d9cafb4SSven Peter
319d9cafb4SSven Peter  reg:
329d9cafb4SSven Peter    maxItems: 1
339d9cafb4SSven Peter
349d9cafb4SSven Peter  interrupts:
359d9cafb4SSven Peter    maxItems: 1
369d9cafb4SSven Peter
379d9cafb4SSven Peter  clocks:
389d9cafb4SSven Peter    description:
399d9cafb4SSven Peter      Reference to the gate clock phandle if required for this IOMMU.
409d9cafb4SSven Peter      Optional since not all IOMMUs are attached to a clock gate.
419d9cafb4SSven Peter
429d9cafb4SSven Peter  '#iommu-cells':
439d9cafb4SSven Peter    const: 1
449d9cafb4SSven Peter    description:
459d9cafb4SSven Peter      Has to be one. The single cell describes the stream id emitted by
469d9cafb4SSven Peter      a master to the IOMMU.
479d9cafb4SSven Peter
4836460912SHector Martin  power-domains:
4936460912SHector Martin    maxItems: 1
5036460912SHector Martin
519d9cafb4SSven Peterrequired:
529d9cafb4SSven Peter  - compatible
539d9cafb4SSven Peter  - reg
549d9cafb4SSven Peter  - '#iommu-cells'
559d9cafb4SSven Peter  - interrupts
569d9cafb4SSven Peter
579d9cafb4SSven PeteradditionalProperties: false
589d9cafb4SSven Peter
599d9cafb4SSven Peterexamples:
609d9cafb4SSven Peter  - |+
619d9cafb4SSven Peter    dart1: iommu@82f80000 {
629d9cafb4SSven Peter      compatible = "apple,t8103-dart";
639d9cafb4SSven Peter      reg = <0x82f80000 0x4000>;
649d9cafb4SSven Peter      interrupts = <1 781 4>;
659d9cafb4SSven Peter      #iommu-cells = <1>;
669d9cafb4SSven Peter    };
679d9cafb4SSven Peter
689d9cafb4SSven Peter    master1 {
699d9cafb4SSven Peter      iommus = <&dart1 0>;
709d9cafb4SSven Peter    };
719d9cafb4SSven Peter
729d9cafb4SSven Peter  - |+
739d9cafb4SSven Peter    dart2a: iommu@82f00000 {
749d9cafb4SSven Peter      compatible = "apple,t8103-dart";
759d9cafb4SSven Peter      reg = <0x82f00000 0x4000>;
769d9cafb4SSven Peter      interrupts = <1 781 4>;
779d9cafb4SSven Peter      #iommu-cells = <1>;
789d9cafb4SSven Peter    };
799d9cafb4SSven Peter    dart2b: iommu@82f80000 {
809d9cafb4SSven Peter      compatible = "apple,t8103-dart";
819d9cafb4SSven Peter      reg = <0x82f80000 0x4000>;
829d9cafb4SSven Peter      interrupts = <1 781 4>;
839d9cafb4SSven Peter      #iommu-cells = <1>;
849d9cafb4SSven Peter    };
859d9cafb4SSven Peter
869d9cafb4SSven Peter    master2 {
879d9cafb4SSven Peter      iommus = <&dart2a 0>, <&dart2b 1>;
889d9cafb4SSven Peter    };
89