18c2ecf20Sopenharmony_ci* Samsung Multi Format Codec (MFC)
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciMulti Format Codec (MFC) is the IP present in Samsung SoCs which
48c2ecf20Sopenharmony_cisupports high resolution decoding and encoding functionalities.
58c2ecf20Sopenharmony_ciThe MFC device driver is a v4l2 driver which can encode/decode
68c2ecf20Sopenharmony_civideo raw/elementary streams and has support for all popular
78c2ecf20Sopenharmony_civideo codecs.
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ciRequired properties:
108c2ecf20Sopenharmony_ci  - compatible : value should be either one among the following
118c2ecf20Sopenharmony_ci	(a) "samsung,mfc-v5" for MFC v5 present in Exynos4 SoCs
128c2ecf20Sopenharmony_ci	(b) "samsung,mfc-v6" for MFC v6 present in Exynos5 SoCs
138c2ecf20Sopenharmony_ci	(c) "samsung,mfc-v7" for MFC v7 present in Exynos5420 SoC
148c2ecf20Sopenharmony_ci	(d) "samsung,mfc-v8" for MFC v8 present in Exynos5800 SoC
158c2ecf20Sopenharmony_ci	(e) "samsung,exynos5433-mfc" for MFC v8 present in Exynos5433 SoC
168c2ecf20Sopenharmony_ci	(f) "samsung,mfc-v10" for MFC v10 present in Exynos7880 SoC
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci  - reg : Physical base address of the IP registers and length of memory
198c2ecf20Sopenharmony_ci	  mapped region.
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci  - interrupts : MFC interrupt number to the CPU.
228c2ecf20Sopenharmony_ci  - clocks : from common clock binding: handle to mfc clock.
238c2ecf20Sopenharmony_ci  - clock-names : from common clock binding: must contain "mfc",
248c2ecf20Sopenharmony_ci		  corresponding to entry in the clocks property.
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ciOptional properties:
278c2ecf20Sopenharmony_ci  - power-domains : power-domain property defined with a phandle
288c2ecf20Sopenharmony_ci			   to respective power domain.
298c2ecf20Sopenharmony_ci  - memory-region : from reserved memory binding: phandles to two reserved
308c2ecf20Sopenharmony_ci	memory regions, first is for "left" mfc memory bus interfaces,
318c2ecf20Sopenharmony_ci	second if for the "right" mfc memory bus, used when no SYSMMU
328c2ecf20Sopenharmony_ci	support is available; used only by MFC v5 present in Exynos4 SoCs
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ciObsolete properties:
358c2ecf20Sopenharmony_ci  - samsung,mfc-r, samsung,mfc-l : support removed, please use memory-region
368c2ecf20Sopenharmony_ci	property instead
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ciExample:
408c2ecf20Sopenharmony_ciSoC specific DT entry:
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_cimfc: codec@13400000 {
438c2ecf20Sopenharmony_ci	compatible = "samsung,mfc-v5";
448c2ecf20Sopenharmony_ci	reg = <0x13400000 0x10000>;
458c2ecf20Sopenharmony_ci	interrupts = <0 94 0>;
468c2ecf20Sopenharmony_ci	power-domains = <&pd_mfc>;
478c2ecf20Sopenharmony_ci	clocks = <&clock 273>;
488c2ecf20Sopenharmony_ci	clock-names = "mfc";
498c2ecf20Sopenharmony_ci};
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ciReserved memory specific DT entry for given board (see reserved memory binding
528c2ecf20Sopenharmony_cifor more information):
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_cireserved-memory {
558c2ecf20Sopenharmony_ci	#address-cells = <1>;
568c2ecf20Sopenharmony_ci	#size-cells = <1>;
578c2ecf20Sopenharmony_ci	ranges;
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci	mfc_left: region@51000000 {
608c2ecf20Sopenharmony_ci		compatible = "shared-dma-pool";
618c2ecf20Sopenharmony_ci		no-map;
628c2ecf20Sopenharmony_ci		reg = <0x51000000 0x800000>;
638c2ecf20Sopenharmony_ci	};
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ci	mfc_right: region@43000000 {
668c2ecf20Sopenharmony_ci		compatible = "shared-dma-pool";
678c2ecf20Sopenharmony_ci		no-map;
688c2ecf20Sopenharmony_ci		reg = <0x43000000 0x800000>;
698c2ecf20Sopenharmony_ci	};
708c2ecf20Sopenharmony_ci};
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ciBoard specific DT entry:
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_cicodec@13400000 {
758c2ecf20Sopenharmony_ci	memory-region = <&mfc_left>, <&mfc_right>;
768c2ecf20Sopenharmony_ci};
77