Commit 9d9cafb4 authored by Sven Peter's avatar Sven Peter Committed by Joerg Roedel
Browse files

dt-bindings: iommu: add DART iommu bindings



DART (Device Address Resolution Table) is the iommu found on Apple
ARM SoCs such as the M1.

Reviewed-by: default avatarRob Herring <robh@kernel.org>
Reviewed-by: default avatarAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Signed-off-by: default avatarSven Peter <sven@svenpeter.dev>
Link: https://lore.kernel.org/r/20210803121651.61594-3-sven@svenpeter.dev


Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
parent 892384cd
Loading
Loading
Loading
Loading
+81 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/iommu/apple,dart.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Apple DART IOMMU

maintainers:
  - Sven Peter <sven@svenpeter.dev>

description: |+
  Apple SoCs may contain an implementation of their Device Address
  Resolution Table which provides a mandatory layer of address
  translations for various masters.

  Each DART instance is capable of handling up to 16 different streams
  with individual pagetables and page-level read/write protection flags.

  This DART IOMMU also raises interrupts in response to various
  fault conditions.

properties:
  compatible:
    const: apple,t8103-dart

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    description:
      Reference to the gate clock phandle if required for this IOMMU.
      Optional since not all IOMMUs are attached to a clock gate.

  '#iommu-cells':
    const: 1
    description:
      Has to be one. The single cell describes the stream id emitted by
      a master to the IOMMU.

required:
  - compatible
  - reg
  - '#iommu-cells'
  - interrupts

additionalProperties: false

examples:
  - |+
    dart1: iommu@82f80000 {
      compatible = "apple,t8103-dart";
      reg = <0x82f80000 0x4000>;
      interrupts = <1 781 4>;
      #iommu-cells = <1>;
    };

    master1 {
      iommus = <&dart1 0>;
    };

  - |+
    dart2a: iommu@82f00000 {
      compatible = "apple,t8103-dart";
      reg = <0x82f00000 0x4000>;
      interrupts = <1 781 4>;
      #iommu-cells = <1>;
    };
    dart2b: iommu@82f80000 {
      compatible = "apple,t8103-dart";
      reg = <0x82f80000 0x4000>;
      interrupts = <1 781 4>;
      #iommu-cells = <1>;
    };

    master2 {
      iommus = <&dart2a 0>, <&dart2b 1>;
    };
+6 −0
Original line number Diff line number Diff line
@@ -1262,6 +1262,12 @@ L: linux-input@vger.kernel.org
S:	Odd fixes
F:	drivers/input/mouse/bcm5974.c
APPLE DART IOMMU DRIVER
M:	Sven Peter <sven@svenpeter.dev>
L:	iommu@lists.linux-foundation.org
S:	Maintained
F:	Documentation/devicetree/bindings/iommu/apple,dart.yaml
APPLE SMC DRIVER
M:	Henrik Rydberg <rydberg@bitmath.org>
L:	linux-hwmon@vger.kernel.org