s5p-mfc.txt 2.2 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
* Samsung Multi Format Codec (MFC)

Multi Format Codec (MFC) is the IP present in Samsung SoCs which
supports high resolution decoding and encoding functionalities.
The MFC device driver is a v4l2 driver which can encode/decode
video raw/elementary streams and has support for all popular
video codecs.

Required properties:
  - compatible : value should be either one among the following
	(a) "samsung,mfc-v5" for MFC v5 present in Exynos4 SoCs
	(b) "samsung,mfc-v6" for MFC v6 present in Exynos5 SoCs
13 14
	(c) "samsung,mfc-v7" for MFC v7 present in Exynos5420 SoC
	(d) "samsung,mfc-v8" for MFC v8 present in Exynos5800 SoC
15
	(e) "samsung,exynos5433-mfc" for MFC v8 present in Exynos5433 SoC
16
	(f) "samsung,mfc-v10" for MFC v10 present in Exynos7880 SoC
17 18 19 20 21

  - reg : Physical base address of the IP registers and length of memory
	  mapped region.

  - interrupts : MFC interrupt number to the CPU.
22 23 24
  - clocks : from common clock binding: handle to mfc clock.
  - clock-names : from common clock binding: must contain "mfc",
		  corresponding to entry in the clocks property.
25

26
Optional properties:
27
  - power-domains : power-domain property defined with a phandle
28
			   to respective power domain.
29 30 31
  - memory-region : from reserved memory binding: phandles to two reserved
	memory regions, first is for "left" mfc memory bus interfaces,
	second if for the "right" mfc memory bus, used when no SYSMMU
32
	support is available; used only by MFC v5 present in Exynos4 SoCs
33 34 35 36 37

Obsolete properties:
  - samsung,mfc-r, samsung,mfc-l : support removed, please use memory-region
	property instead

38 39 40 41 42 43 44 45

Example:
SoC specific DT entry:

mfc: codec@13400000 {
	compatible = "samsung,mfc-v5";
	reg = <0x13400000 0x10000>;
	interrupts = <0 94 0>;
46
	power-domains = <&pd_mfc>;
47 48
	clocks = <&clock 273>;
	clock-names = "mfc";
49 50
};

51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
Reserved memory specific DT entry for given board (see reserved memory binding
for more information):

reserved-memory {
	#address-cells = <1>;
	#size-cells = <1>;
	ranges;

	mfc_left: region@51000000 {
		compatible = "shared-dma-pool";
		no-map;
		reg = <0x51000000 0x800000>;
	};

	mfc_right: region@43000000 {
		compatible = "shared-dma-pool";
		no-map;
		reg = <0x43000000 0x800000>;
	};
};

72 73 74
Board specific DT entry:

codec@13400000 {
75
	memory-region = <&mfc_left>, <&mfc_right>;
76
};