diff options
author | Eric Benard <eric@eukrea.com> | 2010-05-13 14:36:45 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2010-05-17 11:16:27 +0200 |
commit | 8a3032fde5da15adf6319595593f528b830d721e (patch) | |
tree | 86912798a7785b6518c391c9627e5f7e61e37b6a /drivers | |
parent | f8541b9d52bfc6dfe7e621461edf21442246cdf0 (diff) | |
download | barebox-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/Kconfig | 4 | ||||
-rw-r--r-- | drivers/video/imx.c | 19 |
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; |