1*9d9cafb4SSven Peter# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*9d9cafb4SSven Peter%YAML 1.2 3*9d9cafb4SSven Peter--- 4*9d9cafb4SSven Peter$id: http://devicetree.org/schemas/iommu/apple,dart.yaml# 5*9d9cafb4SSven Peter$schema: http://devicetree.org/meta-schemas/core.yaml# 6*9d9cafb4SSven Peter 7*9d9cafb4SSven Petertitle: Apple DART IOMMU 8*9d9cafb4SSven Peter 9*9d9cafb4SSven Petermaintainers: 10*9d9cafb4SSven Peter - Sven Peter <sven@svenpeter.dev> 11*9d9cafb4SSven Peter 12*9d9cafb4SSven Peterdescription: |+ 13*9d9cafb4SSven Peter Apple SoCs may contain an implementation of their Device Address 14*9d9cafb4SSven Peter Resolution Table which provides a mandatory layer of address 15*9d9cafb4SSven Peter translations for various masters. 16*9d9cafb4SSven Peter 17*9d9cafb4SSven Peter Each DART instance is capable of handling up to 16 different streams 18*9d9cafb4SSven Peter with individual pagetables and page-level read/write protection flags. 19*9d9cafb4SSven Peter 20*9d9cafb4SSven Peter This DART IOMMU also raises interrupts in response to various 21*9d9cafb4SSven Peter fault conditions. 22*9d9cafb4SSven Peter 23*9d9cafb4SSven Peterproperties: 24*9d9cafb4SSven Peter compatible: 25*9d9cafb4SSven Peter const: apple,t8103-dart 26*9d9cafb4SSven Peter 27*9d9cafb4SSven Peter reg: 28*9d9cafb4SSven Peter maxItems: 1 29*9d9cafb4SSven Peter 30*9d9cafb4SSven Peter interrupts: 31*9d9cafb4SSven Peter maxItems: 1 32*9d9cafb4SSven Peter 33*9d9cafb4SSven Peter clocks: 34*9d9cafb4SSven Peter description: 35*9d9cafb4SSven Peter Reference to the gate clock phandle if required for this IOMMU. 36*9d9cafb4SSven Peter Optional since not all IOMMUs are attached to a clock gate. 37*9d9cafb4SSven Peter 38*9d9cafb4SSven Peter '#iommu-cells': 39*9d9cafb4SSven Peter const: 1 40*9d9cafb4SSven Peter description: 41*9d9cafb4SSven Peter Has to be one. The single cell describes the stream id emitted by 42*9d9cafb4SSven Peter a master to the IOMMU. 43*9d9cafb4SSven Peter 44*9d9cafb4SSven Peterrequired: 45*9d9cafb4SSven Peter - compatible 46*9d9cafb4SSven Peter - reg 47*9d9cafb4SSven Peter - '#iommu-cells' 48*9d9cafb4SSven Peter - interrupts 49*9d9cafb4SSven Peter 50*9d9cafb4SSven PeteradditionalProperties: false 51*9d9cafb4SSven Peter 52*9d9cafb4SSven Peterexamples: 53*9d9cafb4SSven Peter - |+ 54*9d9cafb4SSven Peter dart1: iommu@82f80000 { 55*9d9cafb4SSven Peter compatible = "apple,t8103-dart"; 56*9d9cafb4SSven Peter reg = <0x82f80000 0x4000>; 57*9d9cafb4SSven Peter interrupts = <1 781 4>; 58*9d9cafb4SSven Peter #iommu-cells = <1>; 59*9d9cafb4SSven Peter }; 60*9d9cafb4SSven Peter 61*9d9cafb4SSven Peter master1 { 62*9d9cafb4SSven Peter iommus = <&dart1 0>; 63*9d9cafb4SSven Peter }; 64*9d9cafb4SSven Peter 65*9d9cafb4SSven Peter - |+ 66*9d9cafb4SSven Peter dart2a: iommu@82f00000 { 67*9d9cafb4SSven Peter compatible = "apple,t8103-dart"; 68*9d9cafb4SSven Peter reg = <0x82f00000 0x4000>; 69*9d9cafb4SSven Peter interrupts = <1 781 4>; 70*9d9cafb4SSven Peter #iommu-cells = <1>; 71*9d9cafb4SSven Peter }; 72*9d9cafb4SSven Peter dart2b: iommu@82f80000 { 73*9d9cafb4SSven Peter compatible = "apple,t8103-dart"; 74*9d9cafb4SSven Peter reg = <0x82f80000 0x4000>; 75*9d9cafb4SSven Peter interrupts = <1 781 4>; 76*9d9cafb4SSven Peter #iommu-cells = <1>; 77*9d9cafb4SSven Peter }; 78*9d9cafb4SSven Peter 79*9d9cafb4SSven Peter master2 { 80*9d9cafb4SSven Peter iommus = <&dart2a 0>, <&dart2b 1>; 81*9d9cafb4SSven Peter }; 82