# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/samsung,s5p-mfc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Samsung Exynos Multi Format Codec (MFC)
maintainers:
- Marek Szyprowski <[email protected]>
- Aakarsh Jain <[email protected]>
description:
Multi Format Codec (MFC) is the IP present in Samsung SoCs which
supports high resolution decoding and encoding functionalities.
properties:
compatible:
oneOf:
- enum:
- samsung,exynos5433-mfc # Exynos5433
- samsung,mfc-v5 # Exynos4
- samsung,mfc-v6 # Exynos5
- samsung,mfc-v7 # Exynos5420
- samsung,mfc-v8 # Exynos5800
- samsung,mfc-v10 # Exynos7880
- tesla,fsd-mfc # Tesla FSD
- items:
- enum:
- samsung,exynos3250-mfc # Exynos3250
- const: samsung,mfc-v7 # Fall back for Exynos3250
reg:
maxItems: 1
clocks:
minItems: 1
maxItems: 3
clock-names:
minItems: 1
maxItems: 3
interrupts:
maxItems: 1
iommus:
minItems: 1
maxItems: 2
iommu-names:
minItems: 1
items:
- const: left
- const: right
power-domains:
maxItems: 1
memory-region:
minItems: 1
maxItems: 2
required:
- compatible
- reg
- clocks
- clock-names
- interrupts
additionalProperties: false
allOf:
- if:
properties:
compatible:
contains:
enum:
- samsung,exynos3250-mfc
then:
properties:
clocks:
maxItems: 2
clock-names:
items:
- const: mfc
- const: sclk_mfc
iommus:
maxItems: 1
iommu-names: false
- if:
properties:
compatible:
contains:
enum:
- samsung,exynos5433-mfc
then:
properties:
clocks:
maxItems: 3
clock-names:
items:
- const: pclk
- const: aclk
- const: aclk_xiu
iommus:
minItems: 2
iommu-names:
minItems: 2
- if:
properties:
compatible:
contains:
enum:
- samsung,mfc-v5
then:
properties:
clocks:
maxItems: 2
clock-names:
items:
- const: mfc
- const: sclk_mfc
iommus:
minItems: 2
iommu-names:
minItems: 2
- if:
properties:
compatible:
contains:
enum:
- samsung,mfc-v6
- samsung,mfc-v8
then:
properties:
clocks:
maxItems: 1
clock-names:
items:
- const: mfc
iommus:
minItems: 2
iommu-names:
minItems: 2
- if:
properties:
compatible:
contains:
enum:
- samsung,mfc-v7
then:
properties:
clocks:
minItems: 1
maxItems: 2
- if:
properties:
compatible:
contains:
enum:
- tesla,fsd-mfc
then:
properties:
clocks:
maxItems: 1
clock-names:
items:
- const: mfc
iommus:
maxItems: 2
iommus-names: false
examples:
- |
#include <dt-bindings/clock/exynos4.h>
#include <dt-bindings/clock/exynos-audss-clk.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
codec@13400000 {
compatible = "samsung,mfc-v5";
reg = <0x13400000 0x10000>;
interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&pd_mfc>;
clocks = <&clock CLK_MFC>, <&clock CLK_SCLK_MFC>;
clock-names = "mfc", "sclk_mfc";
iommus = <&sysmmu_mfc_l>, <&sysmmu_mfc_r>;
iommu-names = "left", "right";
};