13b76f4e1SMaciej Falkowski# SPDX-License-Identifier: GPL-2.0 23b76f4e1SMaciej Falkowski%YAML 1.2 33b76f4e1SMaciej Falkowski--- 43b76f4e1SMaciej Falkowski$id: http://devicetree.org/schemas/iommu/samsung,sysmmu.yaml# 53b76f4e1SMaciej Falkowski$schema: http://devicetree.org/meta-schemas/core.yaml# 63b76f4e1SMaciej Falkowski 73b76f4e1SMaciej Falkowskititle: Samsung Exynos IOMMU H/W, System MMU (System Memory Management Unit) 83b76f4e1SMaciej Falkowski 93b76f4e1SMaciej Falkowskimaintainers: 103b76f4e1SMaciej Falkowski - Marek Szyprowski <m.szyprowski@samsung.com> 113b76f4e1SMaciej Falkowski 123b76f4e1SMaciej Falkowskidescription: |+ 133b76f4e1SMaciej Falkowski Samsung's Exynos architecture contains System MMUs that enables scattered 143b76f4e1SMaciej Falkowski physical memory chunks visible as a contiguous region to DMA-capable peripheral 153b76f4e1SMaciej Falkowski devices like MFC, FIMC, FIMD, GScaler, FIMC-IS and so forth. 163b76f4e1SMaciej Falkowski 173b76f4e1SMaciej Falkowski System MMU is an IOMMU and supports identical translation table format to 183b76f4e1SMaciej Falkowski ARMv7 translation tables with minimum set of page properties including access 193b76f4e1SMaciej Falkowski permissions, shareability and security protection. In addition, System MMU has 203b76f4e1SMaciej Falkowski another capabilities like L2 TLB or block-fetch buffers to minimize translation 213b76f4e1SMaciej Falkowski latency. 223b76f4e1SMaciej Falkowski 233b76f4e1SMaciej Falkowski System MMUs are in many to one relation with peripheral devices, i.e. single 243b76f4e1SMaciej Falkowski peripheral device might have multiple System MMUs (usually one for each bus 253b76f4e1SMaciej Falkowski master), but one System MMU can handle transactions from only one peripheral 263b76f4e1SMaciej Falkowski device. The relation between a System MMU and the peripheral device needs to be 273b76f4e1SMaciej Falkowski defined in device node of the peripheral device. 283b76f4e1SMaciej Falkowski 293b76f4e1SMaciej Falkowski MFC in all Exynos SoCs and FIMD, M2M Scalers and G2D in Exynos5420 has 2 System 303b76f4e1SMaciej Falkowski MMUs. 313b76f4e1SMaciej Falkowski * MFC has one System MMU on its left and right bus. 323b76f4e1SMaciej Falkowski * FIMD in Exynos5420 has one System MMU for window 0 and 4, the other system MMU 333b76f4e1SMaciej Falkowski for window 1, 2 and 3. 343b76f4e1SMaciej Falkowski * M2M Scalers and G2D in Exynos5420 has one System MMU on the read channel and 353b76f4e1SMaciej Falkowski the other System MMU on the write channel. 363b76f4e1SMaciej Falkowski 373b76f4e1SMaciej Falkowski For information on assigning System MMU controller to its peripheral devices, 383b76f4e1SMaciej Falkowski see generic IOMMU bindings. 393b76f4e1SMaciej Falkowski 403b76f4e1SMaciej Falkowskiproperties: 413b76f4e1SMaciej Falkowski compatible: 423b76f4e1SMaciej Falkowski const: samsung,exynos-sysmmu 433b76f4e1SMaciej Falkowski 443b76f4e1SMaciej Falkowski reg: 453b76f4e1SMaciej Falkowski maxItems: 1 463b76f4e1SMaciej Falkowski 473b76f4e1SMaciej Falkowski interrupts: 483b76f4e1SMaciej Falkowski maxItems: 1 493b76f4e1SMaciej Falkowski 503b76f4e1SMaciej Falkowski clocks: 513b76f4e1SMaciej Falkowski minItems: 1 523b76f4e1SMaciej Falkowski maxItems: 2 533b76f4e1SMaciej Falkowski 543b76f4e1SMaciej Falkowski clock-names: 553b76f4e1SMaciej Falkowski oneOf: 563b76f4e1SMaciej Falkowski - items: 573b76f4e1SMaciej Falkowski - const: sysmmu 583b76f4e1SMaciej Falkowski - items: 593b76f4e1SMaciej Falkowski - const: sysmmu 603b76f4e1SMaciej Falkowski - const: master 613b76f4e1SMaciej Falkowski - items: 623b76f4e1SMaciej Falkowski - const: aclk 633b76f4e1SMaciej Falkowski - const: pclk 643b76f4e1SMaciej Falkowski 653b76f4e1SMaciej Falkowski "#iommu-cells": 663b76f4e1SMaciej Falkowski const: 0 673b76f4e1SMaciej Falkowski 683b76f4e1SMaciej Falkowski power-domains: 693b76f4e1SMaciej Falkowski description: | 703b76f4e1SMaciej Falkowski Required if the System MMU is needed to gate its power. 713b76f4e1SMaciej Falkowski Please refer to the following document: 72abb4805eSKrzysztof Kozlowski Documentation/devicetree/bindings/power/pd-samsung.yaml 733b76f4e1SMaciej Falkowski maxItems: 1 743b76f4e1SMaciej Falkowski 753b76f4e1SMaciej Falkowskirequired: 763b76f4e1SMaciej Falkowski - compatible 773b76f4e1SMaciej Falkowski - reg 783b76f4e1SMaciej Falkowski - interrupts 793b76f4e1SMaciej Falkowski - clocks 803b76f4e1SMaciej Falkowski - clock-names 813b76f4e1SMaciej Falkowski - "#iommu-cells" 823b76f4e1SMaciej Falkowski 83*7f464532SRob HerringadditionalProperties: false 84*7f464532SRob Herring 853b76f4e1SMaciej Falkowskiexamples: 863b76f4e1SMaciej Falkowski - | 873b76f4e1SMaciej Falkowski #include <dt-bindings/clock/exynos5250.h> 883b76f4e1SMaciej Falkowski 893b76f4e1SMaciej Falkowski sysmmu_gsc0: iommu@13e80000 { 903b76f4e1SMaciej Falkowski compatible = "samsung,exynos-sysmmu"; 913b76f4e1SMaciej Falkowski reg = <0x13E80000 0x1000>; 923b76f4e1SMaciej Falkowski interrupt-parent = <&combiner>; 933b76f4e1SMaciej Falkowski interrupts = <2 0>; 943b76f4e1SMaciej Falkowski clock-names = "sysmmu", "master"; 953b76f4e1SMaciej Falkowski clocks = <&clock CLK_SMMU_GSCL0>, 963b76f4e1SMaciej Falkowski <&clock CLK_GSCL0>; 973b76f4e1SMaciej Falkowski power-domains = <&pd_gsc>; 983b76f4e1SMaciej Falkowski #iommu-cells = <0>; 993b76f4e1SMaciej Falkowski }; 100