summaryrefslogtreecommitdiffstats
path: root/drivers/video
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2012-10-04 15:24:27 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2012-10-04 15:24:57 +0200
commit94de405d8f56aa66283d7497c707380762440601 (patch)
treeef6618eb4604ff3cbc69af90d9ec6feb4db5e771 /drivers/video
parentddba7e606bc7a6b3715d6c123c0a9b708a6b8776 (diff)
parentd4edd480b2ab0754361b142e307796405310d34b (diff)
downloadbarebox-94de405d8f56aa66283d7497c707380762440601.tar.gz
barebox-94de405d8f56aa66283d7497c707380762440601.tar.xz
Merge branch 'for-next/imx-clk'
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/imx-ipu-fb.c10
-rw-r--r--drivers/video/imx.c10
2 files changed, 16 insertions, 4 deletions
diff --git a/drivers/video/imx-ipu-fb.c b/drivers/video/imx-ipu-fb.c
index 5e5244d367..3f8fd33416 100644
--- a/drivers/video/imx-ipu-fb.c
+++ b/drivers/video/imx-ipu-fb.c
@@ -27,10 +27,12 @@
#include <errno.h>
#include <asm-generic/div64.h>
#include <mach/imx-ipu-fb.h>
-#include <mach/clock.h>
+#include <linux/clk.h>
+#include <linux/err.h>
struct ipu_fb_info {
void __iomem *regs;
+ struct clk *clk;
void (*enable)(int enable);
@@ -480,7 +482,7 @@ static int sdc_init_panel(struct fb_info *info, enum pixel_fmt pixel_fmt)
* i.MX31 it (HSP_CLK) is <= 178MHz. Currently 128.267MHz
*/
pixel_clk = PICOS2KHZ(mode->pixclock) * 1000UL;
- div = imx_get_lcdclk() * 16 / pixel_clk;
+ div = clk_get_rate(fbi->clk) * 16 / pixel_clk;
if (div < 0x40) { /* Divider less than 4 */
dev_dbg(&info->dev,
@@ -986,6 +988,10 @@ static int imxfb_probe(struct device_d *dev)
fbi = xzalloc(sizeof(*fbi));
info = &fbi->info;
+ fbi->clk = clk_get(dev, NULL);
+ if (IS_ERR(fbi->clk))
+ return PTR_ERR(fbi->clk);
+
fbi->regs = dev_request_mem_region(dev, 0);
fbi->dev = dev;
fbi->enable = pdata->enable;
diff --git a/drivers/video/imx.c b/drivers/video/imx.c
index 29b1fc523d..9406b36e71 100644
--- a/drivers/video/imx.c
+++ b/drivers/video/imx.c
@@ -22,9 +22,10 @@
#include <malloc.h>
#include <errno.h>
#include <init.h>
+#include <linux/clk.h>
+#include <linux/err.h>
#include <mach/imx-regs.h>
#include <asm-generic/div64.h>
-#include <mach/clock.h>
#define LCDC_SSA 0x00
@@ -138,6 +139,7 @@ struct imxfb_rgb {
struct imxfb_info {
void __iomem *regs;
+ struct clk *clk;
u_int pcr;
u_int pwmr;
@@ -341,7 +343,7 @@ static int imxfb_activate_var(struct fb_info *info)
writel(readl(fbi->regs + LCDC_CPOS) & ~(CPOS_CC0 | CPOS_CC1),
fbi->regs + LCDC_CPOS);
- lcd_clk = imx_get_lcdclk();
+ lcd_clk = clk_get_rate(fbi->clk);
tmp = mode->pixclock * (unsigned long long)lcd_clk;
@@ -564,6 +566,10 @@ static int imxfb_probe(struct device_d *dev)
fbi = xzalloc(sizeof(*fbi));
info = &fbi->info;
+ fbi->clk = clk_get(dev, NULL);
+ if (IS_ERR(fbi->clk))
+ return PTR_ERR(fbi->clk);
+
fbi->mode = pdata->mode;
fbi->regs = dev_request_mem_region(dev, 0);
fbi->pcr = pdata->mode->pcr;