2021-08-03 05:16:50 -07:00
|
|
|
# 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:
|
2022-09-16 02:41:48 -07:00
|
|
|
enum:
|
|
|
|
- apple,t8103-dart
|
2023-11-26 08:16:59 -07:00
|
|
|
- apple,t8103-usb4-dart
|
2023-01-13 03:50:24 -07:00
|
|
|
- apple,t8110-dart
|
2022-09-16 02:41:48 -07:00
|
|
|
- apple,t6000-dart
|
2021-08-03 05:16:50 -07:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2021-11-23 23:13:15 -07:00
|
|
|
power-domains:
|
|
|
|
maxItems: 1
|
|
|
|
|
2021-08-03 05:16:50 -07:00
|
|
|
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>;
|
|
|
|
};
|