162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/media/samsung,s5p-mfc.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Samsung Exynos Multi Format Codec (MFC) 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Marek Szyprowski <m.szyprowski@samsung.com> 1162306a36Sopenharmony_ci - Aakarsh Jain <aakarsh.jain@samsung.com> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cidescription: 1462306a36Sopenharmony_ci Multi Format Codec (MFC) is the IP present in Samsung SoCs which 1562306a36Sopenharmony_ci supports high resolution decoding and encoding functionalities. 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ciproperties: 1862306a36Sopenharmony_ci compatible: 1962306a36Sopenharmony_ci oneOf: 2062306a36Sopenharmony_ci - enum: 2162306a36Sopenharmony_ci - samsung,exynos5433-mfc # Exynos5433 2262306a36Sopenharmony_ci - samsung,mfc-v5 # Exynos4 2362306a36Sopenharmony_ci - samsung,mfc-v6 # Exynos5 2462306a36Sopenharmony_ci - samsung,mfc-v7 # Exynos5420 2562306a36Sopenharmony_ci - samsung,mfc-v8 # Exynos5800 2662306a36Sopenharmony_ci - samsung,mfc-v10 # Exynos7880 2762306a36Sopenharmony_ci - items: 2862306a36Sopenharmony_ci - enum: 2962306a36Sopenharmony_ci - samsung,exynos3250-mfc # Exynos3250 3062306a36Sopenharmony_ci - const: samsung,mfc-v7 # Fall back for Exynos3250 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci reg: 3362306a36Sopenharmony_ci maxItems: 1 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci clocks: 3662306a36Sopenharmony_ci minItems: 1 3762306a36Sopenharmony_ci maxItems: 3 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci clock-names: 4062306a36Sopenharmony_ci minItems: 1 4162306a36Sopenharmony_ci maxItems: 3 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci interrupts: 4462306a36Sopenharmony_ci maxItems: 1 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci iommus: 4762306a36Sopenharmony_ci minItems: 1 4862306a36Sopenharmony_ci maxItems: 2 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci iommu-names: 5162306a36Sopenharmony_ci minItems: 1 5262306a36Sopenharmony_ci maxItems: 2 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci power-domains: 5562306a36Sopenharmony_ci maxItems: 1 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci memory-region: 5862306a36Sopenharmony_ci minItems: 1 5962306a36Sopenharmony_ci maxItems: 2 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_cirequired: 6262306a36Sopenharmony_ci - compatible 6362306a36Sopenharmony_ci - reg 6462306a36Sopenharmony_ci - clocks 6562306a36Sopenharmony_ci - clock-names 6662306a36Sopenharmony_ci - interrupts 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ciadditionalProperties: false 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ciallOf: 7162306a36Sopenharmony_ci - if: 7262306a36Sopenharmony_ci properties: 7362306a36Sopenharmony_ci compatible: 7462306a36Sopenharmony_ci contains: 7562306a36Sopenharmony_ci enum: 7662306a36Sopenharmony_ci - samsung,exynos3250-mfc 7762306a36Sopenharmony_ci then: 7862306a36Sopenharmony_ci properties: 7962306a36Sopenharmony_ci clocks: 8062306a36Sopenharmony_ci maxItems: 2 8162306a36Sopenharmony_ci clock-names: 8262306a36Sopenharmony_ci items: 8362306a36Sopenharmony_ci - const: mfc 8462306a36Sopenharmony_ci - const: sclk_mfc 8562306a36Sopenharmony_ci iommus: 8662306a36Sopenharmony_ci maxItems: 1 8762306a36Sopenharmony_ci iommus-names: false 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci - if: 9062306a36Sopenharmony_ci properties: 9162306a36Sopenharmony_ci compatible: 9262306a36Sopenharmony_ci contains: 9362306a36Sopenharmony_ci enum: 9462306a36Sopenharmony_ci - samsung,exynos5433-mfc 9562306a36Sopenharmony_ci then: 9662306a36Sopenharmony_ci properties: 9762306a36Sopenharmony_ci clocks: 9862306a36Sopenharmony_ci maxItems: 3 9962306a36Sopenharmony_ci clock-names: 10062306a36Sopenharmony_ci items: 10162306a36Sopenharmony_ci - const: pclk 10262306a36Sopenharmony_ci - const: aclk 10362306a36Sopenharmony_ci - const: aclk_xiu 10462306a36Sopenharmony_ci iommus: 10562306a36Sopenharmony_ci maxItems: 2 10662306a36Sopenharmony_ci iommus-names: 10762306a36Sopenharmony_ci items: 10862306a36Sopenharmony_ci - const: left 10962306a36Sopenharmony_ci - const: right 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_ci - if: 11262306a36Sopenharmony_ci properties: 11362306a36Sopenharmony_ci compatible: 11462306a36Sopenharmony_ci contains: 11562306a36Sopenharmony_ci enum: 11662306a36Sopenharmony_ci - samsung,mfc-v5 11762306a36Sopenharmony_ci then: 11862306a36Sopenharmony_ci properties: 11962306a36Sopenharmony_ci clocks: 12062306a36Sopenharmony_ci maxItems: 2 12162306a36Sopenharmony_ci clock-names: 12262306a36Sopenharmony_ci items: 12362306a36Sopenharmony_ci - const: mfc 12462306a36Sopenharmony_ci - const: sclk_mfc 12562306a36Sopenharmony_ci iommus: 12662306a36Sopenharmony_ci maxItems: 2 12762306a36Sopenharmony_ci iommus-names: 12862306a36Sopenharmony_ci items: 12962306a36Sopenharmony_ci - const: left 13062306a36Sopenharmony_ci - const: right 13162306a36Sopenharmony_ci 13262306a36Sopenharmony_ci - if: 13362306a36Sopenharmony_ci properties: 13462306a36Sopenharmony_ci compatible: 13562306a36Sopenharmony_ci contains: 13662306a36Sopenharmony_ci enum: 13762306a36Sopenharmony_ci - samsung,mfc-v6 13862306a36Sopenharmony_ci - samsung,mfc-v8 13962306a36Sopenharmony_ci then: 14062306a36Sopenharmony_ci properties: 14162306a36Sopenharmony_ci clocks: 14262306a36Sopenharmony_ci maxItems: 1 14362306a36Sopenharmony_ci clock-names: 14462306a36Sopenharmony_ci items: 14562306a36Sopenharmony_ci - const: mfc 14662306a36Sopenharmony_ci iommus: 14762306a36Sopenharmony_ci maxItems: 2 14862306a36Sopenharmony_ci iommus-names: 14962306a36Sopenharmony_ci items: 15062306a36Sopenharmony_ci - const: left 15162306a36Sopenharmony_ci - const: right 15262306a36Sopenharmony_ci 15362306a36Sopenharmony_ci - if: 15462306a36Sopenharmony_ci properties: 15562306a36Sopenharmony_ci compatible: 15662306a36Sopenharmony_ci contains: 15762306a36Sopenharmony_ci enum: 15862306a36Sopenharmony_ci - samsung,mfc-v7 15962306a36Sopenharmony_ci then: 16062306a36Sopenharmony_ci properties: 16162306a36Sopenharmony_ci clocks: 16262306a36Sopenharmony_ci minItems: 1 16362306a36Sopenharmony_ci maxItems: 2 16462306a36Sopenharmony_ci iommus: 16562306a36Sopenharmony_ci minItems: 1 16662306a36Sopenharmony_ci maxItems: 2 16762306a36Sopenharmony_ci 16862306a36Sopenharmony_ciexamples: 16962306a36Sopenharmony_ci - | 17062306a36Sopenharmony_ci #include <dt-bindings/clock/exynos4.h> 17162306a36Sopenharmony_ci #include <dt-bindings/clock/exynos-audss-clk.h> 17262306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 17362306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ci codec@13400000 { 17662306a36Sopenharmony_ci compatible = "samsung,mfc-v5"; 17762306a36Sopenharmony_ci reg = <0x13400000 0x10000>; 17862306a36Sopenharmony_ci interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; 17962306a36Sopenharmony_ci power-domains = <&pd_mfc>; 18062306a36Sopenharmony_ci clocks = <&clock CLK_MFC>, <&clock CLK_SCLK_MFC>; 18162306a36Sopenharmony_ci clock-names = "mfc", "sclk_mfc"; 18262306a36Sopenharmony_ci iommus = <&sysmmu_mfc_l>, <&sysmmu_mfc_r>; 18362306a36Sopenharmony_ci iommu-names = "left", "right"; 18462306a36Sopenharmony_ci }; 185