Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 01fb9185 authored by Andrzej Pietrasiewicz's avatar Andrzej Pietrasiewicz Committed by Inki Dae
Browse files

drm/exynos: Add driver for Exynos Scaler module



Exynos Scaler is a hardware module, which processes graphic data fetched
from memory and transfers the resultant dato another memory buffer.
Graphics data can be up/down-scaled, rotated, flipped and converted color
space. Scaler hardware modules are a part of Exynos5420 and newer Exynos
SoCs.

Signed-off-by: default avatarAndrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
Acked-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarInki Dae <inki.dae@samsung.com>
parent 7a2d5c77
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
* Samsung Exynos Image Scaler

Required properties:
  - compatible : value should be one of the following:
	(a) "samsung,exynos5420-scaler" for Scaler IP in Exynos5420
	(b) "samsung,exynos5433-scaler" for Scaler IP in Exynos5433

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

  - interrupts : Interrupt specifier for scaler interrupt, according to format
		 specific to interrupt parent.

  - clocks : Clock specifier for scaler clock, according to generic clock
	     bindings. (See Documentation/devicetree/bindings/clock/exynos*.txt)

  - clock-names : Names of clocks. For exynos scaler, it should be "mscl"
		  on 5420 and "pclk", "aclk" and "aclk_xiu" on 5433.

Example:
	scaler@12800000 {
		compatible = "samsung,exynos5420-scaler";
		reg = <0x12800000 0x1294>;
		interrupts = <0 220 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&clock CLK_MSCL0>;
		clock-names = "mscl";
	};
+6 −0
Original line number Diff line number Diff line
@@ -110,6 +110,12 @@ config DRM_EXYNOS_ROTATOR
	help
	  Choose this option if you want to use Exynos Rotator for DRM.

config DRM_EXYNOS_SCALER
	bool "Scaler"
	select DRM_EXYNOS_IPP
	help
	  Choose this option if you want to use Exynos Scaler for DRM.

config DRM_EXYNOS_GSC
	bool "GScaler"
	depends on VIDEO_SAMSUNG_EXYNOS_GSC=n
+1 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ exynosdrm-$(CONFIG_DRM_EXYNOS_G2D) += exynos_drm_g2d.o
exynosdrm-$(CONFIG_DRM_EXYNOS_IPP)	+= exynos_drm_ipp.o
exynosdrm-$(CONFIG_DRM_EXYNOS_FIMC)	+= exynos_drm_fimc.o
exynosdrm-$(CONFIG_DRM_EXYNOS_ROTATOR)	+= exynos_drm_rotator.o
exynosdrm-$(CONFIG_DRM_EXYNOS_SCALER)	+= exynos_drm_scaler.o
exynosdrm-$(CONFIG_DRM_EXYNOS_GSC)	+= exynos_drm_gsc.o
exynosdrm-$(CONFIG_DRM_EXYNOS_MIC)     += exynos_drm_mic.o

+3 −0
Original line number Diff line number Diff line
@@ -266,6 +266,9 @@ static struct exynos_drm_driver_info exynos_drm_drivers[] = {
	}, {
		DRV_PTR(rotator_driver, CONFIG_DRM_EXYNOS_ROTATOR),
		DRM_COMPONENT_DRIVER
	}, {
		DRV_PTR(scaler_driver, CONFIG_DRM_EXYNOS_SCALER),
		DRM_COMPONENT_DRIVER
	}, {
		DRV_PTR(gsc_driver, CONFIG_DRM_EXYNOS_GSC),
		DRM_COMPONENT_DRIVER
+1 −0
Original line number Diff line number Diff line
@@ -298,6 +298,7 @@ extern struct platform_driver vidi_driver;
extern struct platform_driver g2d_driver;
extern struct platform_driver fimc_driver;
extern struct platform_driver rotator_driver;
extern struct platform_driver scaler_driver;
extern struct platform_driver gsc_driver;
extern struct platform_driver mic_driver;
#endif
Loading