summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Bénard <eric@eukrea.com>2010-06-24 17:03:04 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2010-06-30 09:10:35 +0200
commitc26f09b2c1a7f1ed2d712dc7994f244d2a8be799 (patch)
treea9bad15267c32e6375f78a52de9d81338bc5ca77
parent38d862f68731ef204aaad906cecb049882db7c05 (diff)
downloadbarebox-c26f09b2c1a7f1ed2d712dc7994f244d2a8be799.tar.gz
barebox-c26f09b2c1a7f1ed2d712dc7994f244d2a8be799.tar.xz
imx-ipu-fb: Add board specific hook to enable display
Signed-off-by: Eric Bénard <eric@eukrea.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--arch/arm/mach-imx/include/mach/imx-ipu-fb.h2
-rw-r--r--drivers/video/imx-ipu-fb.c8
2 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/include/mach/imx-ipu-fb.h b/arch/arm/mach-imx/include/mach/imx-ipu-fb.h
index 53c6d2652b..dd65b04c58 100644
--- a/arch/arm/mach-imx/include/mach/imx-ipu-fb.h
+++ b/arch/arm/mach-imx/include/mach/imx-ipu-fb.h
@@ -28,6 +28,8 @@ struct imx_ipu_fb_platform_data {
const struct fb_videomode *mode;
unsigned char bpp;
void __iomem *framebuffer;
+ /** hook to enable backlight and stuff */
+ void (*enable)(int enable);
};
#endif /* __MACH_IMX_IPU_FB_H__ */
diff --git a/drivers/video/imx-ipu-fb.c b/drivers/video/imx-ipu-fb.c
index 0bd86b286d..bfdc3a59d0 100644
--- a/drivers/video/imx-ipu-fb.c
+++ b/drivers/video/imx-ipu-fb.c
@@ -36,6 +36,8 @@
struct ipu_fb_info {
void __iomem *regs;
+ void (*enable)(int enable);
+
struct fb_info info;
struct device_d *dev;
};
@@ -828,6 +830,8 @@ static void ipu_fb_enable(struct fb_info *info)
* Linux driver calls sdc_set_brightness() here again,
* once is enough for us
*/
+ if (fbi->enable)
+ fbi->enable(1);
}
static void ipu_fb_disable(struct fb_info *info)
@@ -837,6 +841,9 @@ static void ipu_fb_disable(struct fb_info *info)
printf("%s\n", __func__);
+ if (fbi->enable)
+ fbi->enable(0);
+
reg = reg_read(fbi, SDC_COM_CONF);
reg &= ~SDC_COM_BG_EN;
reg_write(fbi, reg, SDC_COM_CONF);
@@ -868,6 +875,7 @@ static int imxfb_probe(struct device_d *dev)
info->yres = pdata->mode->yres;
info->bits_per_pixel = pdata->bpp;
info->fbops = &imxfb_ops;
+ fbi->enable = pdata->enable;
dev_info(dev, "i.MX Framebuffer driver\n");