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