summaryrefslogtreecommitdiffstats
path: root/drivers/video
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2012-09-29 00:49:50 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2012-10-10 09:47:51 +0200
commit0ea2ee7866f121163a28fd24ca0967d97b744b10 (patch)
treeaa070a440abd033d3ee6a6a781b221f14f0a4c27 /drivers/video
parentbeda98485cd761b4af00152850fb6c4a891869fe (diff)
downloadbarebox-0ea2ee7866f121163a28fd24ca0967d97b744b10.tar.gz
barebox-0ea2ee7866f121163a28fd24ca0967d97b744b10.tar.xz
video i.MX: Use regular clk_[en|dis]able functions
This controller has no enable bit. It is always on once the pixel clock is provided. This patch switches the driver to use regular clk functions instead of SoC specific register hacking. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/imx.c44
1 files changed, 5 insertions, 39 deletions
diff --git a/drivers/video/imx.c b/drivers/video/imx.c
index 9406b36e71..ae4c671cae 100644
--- a/drivers/video/imx.c
+++ b/drivers/video/imx.c
@@ -252,19 +252,9 @@ static void imxfb_enable_controller(struct fb_info *info)
struct imxfb_info *fbi = info->priv;
writel(RMCR_LCDC_EN, fbi->regs + LCDC_RMCR);
-#ifdef CONFIG_ARCH_IMX21
- PCCR0 |= PCCR0_PERCLK3_EN | PCCR0_HCLK_LCDC_EN;
-#endif
-#ifdef CONFIG_ARCH_IMX27
- 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
+
+ clk_enable(fbi->clk);
+
if (fbi->enable)
fbi->enable(1);
}
@@ -277,19 +267,8 @@ static void imxfb_disable_controller(struct fb_info *info)
fbi->enable(0);
writel(0, fbi->regs + LCDC_RMCR);
-#ifdef CONFIG_ARCH_IMX21
- PCCR0 &= ~(PCCR0_PERCLK3_EN | PCCR0_HCLK_LCDC_EN);
-#endif
-#ifdef CONFIG_ARCH_IMX27
- 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
+
+ clk_disable(fbi->clk);
}
/*
@@ -541,19 +520,6 @@ static int imxfb_probe(struct device_d *dev)
if (!pdata)
return -ENODEV;
-#ifdef CONFIG_ARCH_IMX21
- PCCR0 &= ~(PCCR0_PERCLK3_EN | PCCR0_HCLK_LCDC_EN);
-#endif
-#ifdef CONFIG_ARCH_IMX27
- 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
if (!pdata->num_modes) {
dev_err(dev, "no modes. bailing out\n");
return -EINVAL;