summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorEric Benard <eric@eukrea.com>2010-05-13 14:36:45 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2010-05-17 11:16:27 +0200
commit8a3032fde5da15adf6319595593f528b830d721e (patch)
tree86912798a7785b6518c391c9627e5f7e61e37b6a /drivers
parentf8541b9d52bfc6dfe7e621461edf21442246cdf0 (diff)
downloadbarebox-8a3032fde5da15adf6319595593f528b830d721e.tar.gz
barebox-8a3032fde5da15adf6319595593f528b830d721e.tar.xz
i.MX25 : add Framebuffer support
Signed-off-by: Eric Benard <eric@eukrea.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/Kconfig4
-rw-r--r--drivers/video/imx.c19
2 files changed, 20 insertions, 3 deletions
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index dbdc7e24ba..7a89a3f206 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -7,11 +7,11 @@ if VIDEO
config DRIVER_VIDEO_IMX
bool "i.MX framebuffer driver"
- depends on ARCH_IMX1 || ARCH_IMX21 || ARCH_IMX27
+ depends on ARCH_IMX1 || ARCH_IMX21 || ARCH_IMX25 || ARCH_IMX27
config IMXFB_DRIVER_VIDEO_IMX_OVERLAY
bool "i.MX framebuffer overlay support"
- depends on DRIVER_VIDEO_IMX && (ARCH_IMX27 || ARCH_IMX21)
+ depends on DRIVER_VIDEO_IMX && (ARCH_IMX27 || ARCH_IMX25 || ARCH_IMX21)
config DRIVER_VIDEO_IMX_IPU
bool "i.MX31/35 framebuffer driver"
diff --git a/drivers/video/imx.c b/drivers/video/imx.c
index 87c08d325a..67cae349e5 100644
--- a/drivers/video/imx.c
+++ b/drivers/video/imx.c
@@ -258,7 +258,12 @@ static void imxfb_enable_controller(struct fb_info *info)
PCCR0 |= PCCR0_LCDC_EN;
PCCR1 |= PCCR1_HCLK_LCDC;
#endif
-
+#ifdef CONFIG_ARCH_IMX25
+ writel(readl(IMX_CCM_BASE + CCM_CGCR0) | (1 << 24) | (1 << 7),
+ IMX_CCM_BASE + CCM_CGCR0);
+ writel(readl(IMX_CCM_BASE + CCM_CGCR1) | (1 << 29),
+ IMX_CCM_BASE + CCM_CGCR1);
+#endif
}
static void imxfb_disable_controller(struct fb_info *info)
@@ -273,6 +278,12 @@ static void imxfb_disable_controller(struct fb_info *info)
PCCR0 &= ~PCCR0_LCDC_EN;
PCCR1 &= ~PCCR1_HCLK_LCDC;
#endif
+#ifdef CONFIG_ARCH_IMX25
+ writel(readl(IMX_CCM_BASE + CCM_CGCR0) & ~((1 << 24) | (1 << 7)),
+ IMX_CCM_BASE + CCM_CGCR0);
+ writel(readl(IMX_CCM_BASE + CCM_CGCR1) & ~(1 << 29),
+ IMX_CCM_BASE + CCM_CGCR1);
+#endif
}
/*
@@ -518,6 +529,12 @@ static int imxfb_probe(struct device_d *dev)
PCCR0 &= ~PCCR0_LCDC_EN;
PCCR1 &= ~PCCR1_HCLK_LCDC;
#endif
+#ifdef CONFIG_ARCH_IMX25
+ writel(readl(IMX_CCM_BASE + CCM_CGCR0) & ~((1 << 24) | (1 << 7)),
+ IMX_CCM_BASE + CCM_CGCR0);
+ writel(readl(IMX_CCM_BASE + CCM_CGCR1) & ~(1 << 29),
+ IMX_CCM_BASE + CCM_CGCR1);
+#endif
fbi = xzalloc(sizeof(*fbi));
info = &fbi->info;