fb i.MX23/28: Add the reset control of LCD
Subsystems (5)
PATCH v2 1/1 fb i.MX23/28: Add the reset control of LCD
Video controller of STM allow to control the reset bit of an external LCD controller. When reset_lcd is set, CTRL1_RESET bit is used to enable and disable LCD.
Handle USE_LCD_RESET as a flag in imx_fb_platformdata.
Signed-off-by Gregory CLEMENT <[email protected]>
--- arch/arm/mach-mxs/include/mach/fb.h | 3 +++ drivers/video/stm.c | 11 +++++++++++ 2 files changed, 14 insertions(+), 0 deletions(-)
arch/arm/mach-mxs/include/mach/fb.h +3 -0
@@ -31,6 +31,8 @@/** swap RGB to BGR */ #define FB_SYNC_SWAP_RGB (1 << 31) +#define USE_LCD_RESET 1 +struct imx_fb_platformdata {struct fb_videomode *mode_list;unsigned mode_cnt;
@@ -42,6 +44,7 @@ struct imx_fb_platformdata {void *fixed_screen;/**< if != NULL use this as framebuffer memory */ unsigned fixed_screen_size;/**< framebuffer memory size for fixed_screen */ +unsigned flags;void (*enable)(int enable);/**< hook to enable backlight */ };
drivers/video/stm.c +11 -0
@@ -48,6 +48,7 @@# define CTRL1_FIFO_CLEAR (1 << 21)# define SET_BYTE_PACKAGING (x) (((x) & 0xf) << 16)# define GET_BYTE_PACKAGING (x) (((x) >> 16) & 0xf) +# define CTRL1_RESET (1 << 0)#ifdef CONFIG_ARCH_IMX28 # define HW_LCDIF_CTRL2 0x20
@@ -253,6 +254,11 @@ static void stmfb_enable_controller(struct fb_info *fb_info)/* stop FIFO reset */ writel (CTRL1_FIFO_CLEAR , fbi->base +HW_LCDIF_CTRL1 +BIT_CLR ); + +/* enable LCD using LCD_RESET signal*/ +if (fbi->pdata->flags &USE_LCD_RESET ) +writel (CTRL1_RESET , fbi->base +HW_LCDIF_CTRL1 +BIT_SET ); +/* start the engine right now */ writel (CTRL_RUN , fbi->base +HW_LCDIF_CTRL +BIT_SET );
@@ -266,6 +272,11 @@ static void stmfb_disable_controller(struct fb_info *fb_info)unsigned loop;uint32_t reg; + +/* disable LCD using LCD_RESET signal*/ +if (fbi->pdata->flags &USE_LCD_RESET ) +writel (CTRL1_RESET , fbi->base +HW_LCDIF_CTRL1 +BIT_CLR ); +if (fbi->pdata->enable) fbi->pdata->enable (0 );
Signature · 8 lines
1.7.0.4 _______________________________________________ barebox mailing list [email protected] http://lists.infradead.org/mailman/listinfo/barebox