[U-Boot] [PATCH 4/6] video: exynos_fimd: Add framework to disable FIMD sysmmu

Ajay Kumar ajaykumar.rs at samsung.com
Mon Sep 30 13:20:53 CEST 2013


On Exynos5420, the FIMD sysmmus are in "on state" by default.
We have to disable them in order to make FIMD DMA work.
This patch adds the required framework to exynos_fimd driver
to disable FIMD sysmmu on Exynos5420.

Signed-off-by: Ajay Kumar <ajaykumar.rs at samsung.com>
---
 arch/arm/dts/exynos5420.dtsi                 |  5 +++++
 doc/device-tree-bindings/video/exynos-fb.txt |  2 ++
 drivers/video/exynos_fimd.c                  | 12 ++++++++++++
 3 files changed, 19 insertions(+)

diff --git a/arch/arm/dts/exynos5420.dtsi b/arch/arm/dts/exynos5420.dtsi
index ca6c605..2d64df8 100644
--- a/arch/arm/dts/exynos5420.dtsi
+++ b/arch/arm/dts/exynos5420.dtsi
@@ -71,4 +71,9 @@
 		reg = <0x12E20000 0x100>;
 		interrupts = <0 203 0>;
 	};
+
+	fimd at 14400000 {
+		/* sysmmu is not used in U-Boot */
+		samsung,disable-sysmmu;
+	};
 };
diff --git a/doc/device-tree-bindings/video/exynos-fb.txt b/doc/device-tree-bindings/video/exynos-fb.txt
index bb7441c..cddb505 100644
--- a/doc/device-tree-bindings/video/exynos-fb.txt
+++ b/doc/device-tree-bindings/video/exynos-fb.txt
@@ -55,6 +55,8 @@ Board(panel specific):
 	samsung,pclk-name: parent clock identifier: 1(MPLL), 2(EPLL), 3(VPLL)
 	samsung,sclk-div: parent_clock/source_clock ratio
 	samsung,dual-lcd-enabled: 1 if you support two LCD, else 0
+	samsung,disable-sysmmu: present if you want to disable the sysmmu
+			(needed for Exynos5420)
 
 Example:
 SOC specific part:
diff --git a/drivers/video/exynos_fimd.c b/drivers/video/exynos_fimd.c
index 8c2de4e..410fff1 100644
--- a/drivers/video/exynos_fimd.c
+++ b/drivers/video/exynos_fimd.c
@@ -267,6 +267,18 @@ void exynos_fimd_lcd_init(vidinfo_t *vid)
 								node, "reg");
 	if (fimd_ctrl == NULL)
 		debug("Can't get the FIMD base address\n");
+
+	if (fdtdec_get_bool(gd->fdt_blob, node, "samsung,disable-sysmmu")) {
+		/*
+		* The reset value for FIMD SYSMMU registers
+		* MMU_CTRL:0x14640000 and MMU_CTRL:0x14680000 is 3.
+		* This means FIMD SYSMMU is on by default on Exynos5420.
+		* Since in u-boot we don't use SYSMMU, we are disabling
+		* FIMD SYSMMU.
+		*/
+		writel(0x0, 0x14640000);
+		writel(0x0, 0x14680000);
+	}
 #else
 	fimd_ctrl = (struct exynos_fb *)samsung_get_base_fimd();
 #endif
-- 
1.7.12.4



More information about the U-Boot mailing list