162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/iommu/apple,sart.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Apple SART DMA address filter
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Sven Peter <sven@svenpeter.dev>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription:
1362306a36Sopenharmony_ci  Apple SART is a simple address filter for DMA transactions. Regions of
1462306a36Sopenharmony_ci  physical memory must be added to the SART's allow list before any
1562306a36Sopenharmony_ci  DMA can target these. Unlike a proper IOMMU no remapping can be done and
1662306a36Sopenharmony_ci  special support in the consumer driver is required since not all DMA
1762306a36Sopenharmony_ci  transactions of a single device are subject to SART filtering.
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci  SART1 has first been used since at least the A11 (iPhone 8 and iPhone X)
2062306a36Sopenharmony_ci  and allows 36 bit of physical address space and filter entries with sizes
2162306a36Sopenharmony_ci  up to 24 bit.
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci  SART2, first seen in A14 and M1, allows 36 bit of physical address space
2462306a36Sopenharmony_ci  and filter entry size up to 36 bit.
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci  SART3, first seen in M1 Pro/Max, extends both the address space and filter
2762306a36Sopenharmony_ci  entry size to 42 bit.
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciproperties:
3062306a36Sopenharmony_ci  compatible:
3162306a36Sopenharmony_ci    oneOf:
3262306a36Sopenharmony_ci      - items:
3362306a36Sopenharmony_ci          - const: apple,t8112-sart
3462306a36Sopenharmony_ci          - const: apple,t6000-sart
3562306a36Sopenharmony_ci      - enum:
3662306a36Sopenharmony_ci          - apple,t6000-sart
3762306a36Sopenharmony_ci          - apple,t8103-sart
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci  reg:
4062306a36Sopenharmony_ci    maxItems: 1
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci  power-domains:
4362306a36Sopenharmony_ci    maxItems: 1
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_cirequired:
4662306a36Sopenharmony_ci  - compatible
4762306a36Sopenharmony_ci  - reg
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ciadditionalProperties: false
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ciexamples:
5262306a36Sopenharmony_ci  - |
5362306a36Sopenharmony_ci    iommu@7bc50000 {
5462306a36Sopenharmony_ci      compatible = "apple,t8103-sart";
5562306a36Sopenharmony_ci      reg = <0x7bc50000 0x4000>;
5662306a36Sopenharmony_ci    };
57