xref: /linux/Documentation/devicetree/bindings/iommu/samsung,sysmmu.yaml (revision abb4805e343a1b24706fe1ad21246ed5ecbdac74)
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:
72*abb4805eSKrzysztof 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
833b76f4e1SMaciej Falkowskiexamples:
843b76f4e1SMaciej Falkowski  - |
853b76f4e1SMaciej Falkowski    #include <dt-bindings/clock/exynos5250.h>
863b76f4e1SMaciej Falkowski
873b76f4e1SMaciej Falkowski    gsc_0: scaler@13e00000 {
883b76f4e1SMaciej Falkowski      compatible = "samsung,exynos5-gsc";
893b76f4e1SMaciej Falkowski      reg = <0x13e00000 0x1000>;
903b76f4e1SMaciej Falkowski      interrupts = <0 85 0>;
913b76f4e1SMaciej Falkowski      power-domains = <&pd_gsc>;
923b76f4e1SMaciej Falkowski      clocks = <&clock CLK_GSCL0>;
933b76f4e1SMaciej Falkowski      clock-names = "gscl";
943b76f4e1SMaciej Falkowski      iommus = <&sysmmu_gsc0>;
953b76f4e1SMaciej Falkowski    };
963b76f4e1SMaciej Falkowski
973b76f4e1SMaciej Falkowski    sysmmu_gsc0: iommu@13e80000 {
983b76f4e1SMaciej Falkowski      compatible = "samsung,exynos-sysmmu";
993b76f4e1SMaciej Falkowski      reg = <0x13E80000 0x1000>;
1003b76f4e1SMaciej Falkowski      interrupt-parent = <&combiner>;
1013b76f4e1SMaciej Falkowski      interrupts = <2 0>;
1023b76f4e1SMaciej Falkowski      clock-names = "sysmmu", "master";
1033b76f4e1SMaciej Falkowski      clocks = <&clock CLK_SMMU_GSCL0>,
1043b76f4e1SMaciej Falkowski               <&clock CLK_GSCL0>;
1053b76f4e1SMaciej Falkowski      power-domains = <&pd_gsc>;
1063b76f4e1SMaciej Falkowski      #iommu-cells = <0>;
1073b76f4e1SMaciej Falkowski    };
1083b76f4e1SMaciej Falkowski
109