1# SPDX-License-Identifier: GPL-2.0 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/iommu/samsung,sysmmu.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Samsung Exynos IOMMU H/W, System MMU (System Memory Management Unit) 8 9maintainers: 10 - Marek Szyprowski <m.szyprowski@samsung.com> 11 12description: |+ 13 Samsung's Exynos architecture contains System MMUs that enables scattered 14 physical memory chunks visible as a contiguous region to DMA-capable peripheral 15 devices like MFC, FIMC, FIMD, GScaler, FIMC-IS and so forth. 16 17 System MMU is an IOMMU and supports identical translation table format to 18 ARMv7 translation tables with minimum set of page properties including access 19 permissions, shareability and security protection. In addition, System MMU has 20 another capabilities like L2 TLB or block-fetch buffers to minimize translation 21 latency. 22 23 System MMUs are in many to one relation with peripheral devices, i.e. single 24 peripheral device might have multiple System MMUs (usually one for each bus 25 master), but one System MMU can handle transactions from only one peripheral 26 device. The relation between a System MMU and the peripheral device needs to be 27 defined in device node of the peripheral device. 28 29 MFC in all Exynos SoCs and FIMD, M2M Scalers and G2D in Exynos5420 has 2 System 30 MMUs. 31 * MFC has one System MMU on its left and right bus. 32 * FIMD in Exynos5420 has one System MMU for window 0 and 4, the other system MMU 33 for window 1, 2 and 3. 34 * M2M Scalers and G2D in Exynos5420 has one System MMU on the read channel and 35 the other System MMU on the write channel. 36 37 For information on assigning System MMU controller to its peripheral devices, 38 see generic IOMMU bindings. 39 40properties: 41 compatible: 42 const: samsung,exynos-sysmmu 43 44 reg: 45 maxItems: 1 46 47 interrupts: 48 maxItems: 1 49 50 clocks: 51 minItems: 1 52 maxItems: 2 53 54 clock-names: 55 oneOf: 56 - items: 57 - const: sysmmu 58 - items: 59 - const: sysmmu 60 - const: master 61 - items: 62 - const: aclk 63 - const: pclk 64 65 "#iommu-cells": 66 const: 0 67 68 power-domains: 69 description: | 70 Required if the System MMU is needed to gate its power. 71 Please refer to the following document: 72 Documentation/devicetree/bindings/power/pd-samsung.yaml 73 maxItems: 1 74 75required: 76 - compatible 77 - reg 78 - interrupts 79 - clocks 80 - clock-names 81 - "#iommu-cells" 82 83additionalProperties: false 84 85examples: 86 - | 87 #include <dt-bindings/clock/exynos5250.h> 88 89 gsc_0: scaler@13e00000 { 90 compatible = "samsung,exynos5-gsc"; 91 reg = <0x13e00000 0x1000>; 92 interrupts = <0 85 0>; 93 power-domains = <&pd_gsc>; 94 clocks = <&clock CLK_GSCL0>; 95 clock-names = "gscl"; 96 iommus = <&sysmmu_gsc0>; 97 }; 98 99 sysmmu_gsc0: iommu@13e80000 { 100 compatible = "samsung,exynos-sysmmu"; 101 reg = <0x13E80000 0x1000>; 102 interrupt-parent = <&combiner>; 103 interrupts = <2 0>; 104 clock-names = "sysmmu", "master"; 105 clocks = <&clock CLK_SMMU_GSCL0>, 106 <&clock CLK_GSCL0>; 107 power-domains = <&pd_gsc>; 108 #iommu-cells = <0>; 109 }; 110 111