Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/iommu/samsung,sysmmu.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Samsung Exynos IOMMU H/W, System MMU (System Memory Management Unit)
0008 
0009 maintainers:
0010   - Marek Szyprowski <m.szyprowski@samsung.com>
0011 
0012 description: |+
0013   Samsung's Exynos architecture contains System MMUs that enables scattered
0014   physical memory chunks visible as a contiguous region to DMA-capable peripheral
0015   devices like MFC, FIMC, FIMD, GScaler, FIMC-IS and so forth.
0016 
0017   System MMU is an IOMMU and supports identical translation table format to
0018   ARMv7 translation tables with minimum set of page properties including access
0019   permissions, shareability and security protection. In addition, System MMU has
0020   another capabilities like L2 TLB or block-fetch buffers to minimize translation
0021   latency.
0022 
0023   System MMUs are in many to one relation with peripheral devices, i.e. single
0024   peripheral device might have multiple System MMUs (usually one for each bus
0025   master), but one System MMU can handle transactions from only one peripheral
0026   device. The relation between a System MMU and the peripheral device needs to be
0027   defined in device node of the peripheral device.
0028 
0029   MFC in all Exynos SoCs and FIMD, M2M Scalers and G2D in Exynos5420 has 2 System
0030   MMUs.
0031   * MFC has one System MMU on its left and right bus.
0032   * FIMD in Exynos5420 has one System MMU for window 0 and 4, the other system MMU
0033     for window 1, 2 and 3.
0034   * M2M Scalers and G2D in Exynos5420 has one System MMU on the read channel and
0035     the other System MMU on the write channel.
0036 
0037   For information on assigning System MMU controller to its peripheral devices,
0038   see generic IOMMU bindings.
0039 
0040 properties:
0041   compatible:
0042     const: samsung,exynos-sysmmu
0043 
0044   reg:
0045     maxItems: 1
0046 
0047   interrupts:
0048     maxItems: 1
0049 
0050   clocks:
0051     minItems: 1
0052     maxItems: 2
0053 
0054   clock-names:
0055     oneOf:
0056       - items:
0057           - const: sysmmu
0058       - items:
0059           - const: sysmmu
0060           - const: master
0061       - items:
0062           - const: aclk
0063           - const: pclk
0064 
0065   "#iommu-cells":
0066     const: 0
0067 
0068   power-domains:
0069     description: |
0070       Required if the System MMU is needed to gate its power.
0071       Please refer to the following document:
0072       Documentation/devicetree/bindings/power/pd-samsung.yaml
0073     maxItems: 1
0074 
0075 required:
0076   - compatible
0077   - reg
0078   - interrupts
0079   - clocks
0080   - clock-names
0081   - "#iommu-cells"
0082 
0083 additionalProperties: false
0084 
0085 examples:
0086   - |
0087     #include <dt-bindings/clock/exynos5250.h>
0088 
0089     sysmmu_gsc0: iommu@13e80000 {
0090       compatible = "samsung,exynos-sysmmu";
0091       reg = <0x13E80000 0x1000>;
0092       interrupt-parent = <&combiner>;
0093       interrupts = <2 0>;
0094       clock-names = "sysmmu", "master";
0095       clocks = <&clock CLK_SMMU_GSCL0>,
0096                <&clock CLK_GSCL0>;
0097       power-domains = <&pd_gsc>;
0098       #iommu-cells = <0>;
0099     };