video: Add System-Mode configuration hook into mxsfb
authorMarek Vasut <marex@denx.de>
Tue, 30 Jul 2013 21:37:53 +0000 (23:37 +0200)
committerAnatolij Gustschin <agust@denx.de>
Fri, 9 Aug 2013 19:48:49 +0000 (21:48 +0200)
Add hook that allow configuring SmartLCD attached the MXS LCDIF
controller operating in System-Mode. This hook can be overriden
by a platform-specific SmartLCD programming routine, which writes
the SmartLCD specific values into it's registers.

Also, this patch makes sure the SYNC signals are off for the
SmartLCD case.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Anatolij Gustschin <agust@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Otavio Salvador <otavio@ossystems.com.br>
Cc: Stefano Babic <sbabic@denx.de>
drivers/video/mxsfb.c

index 374c823d064ca137b1954d6dd915c0be04b8d263..c55cb44ffd64dcc23e395421d41e78270ed118e7 100644 (file)
 
 static GraphicDevice panel;
 
+/**
+ * mxsfb_system_setup() - Fine-tune LCDIF configuration
+ *
+ * This function is used to adjust the LCDIF configuration. This is usually
+ * needed when driving the controller in System-Mode to operate an 8080 or
+ * 6800 connected SmartLCD.
+ */
+__weak void mxsfb_system_setup(void)
+{
+}
+
 /*
  * DENX M28EVK:
  * setenv videomode
@@ -75,6 +86,9 @@ static void mxs_lcd_init(GraphicDevice *panel,
 
        writel(valid_data << LCDIF_CTRL1_BYTE_PACKING_FORMAT_OFFSET,
                &regs->hw_lcdif_ctrl1);
+
+       mxsfb_system_setup();
+
        writel((mode->yres << LCDIF_TRANSFER_COUNT_V_COUNT_OFFSET) | mode->xres,
                &regs->hw_lcdif_transfer_count);
 
@@ -102,8 +116,10 @@ static void mxs_lcd_init(GraphicDevice *panel,
        /* Flush FIFO first */
        writel(LCDIF_CTRL1_FIFO_CLEAR, &regs->hw_lcdif_ctrl1_set);
 
+#ifndef CONFIG_VIDEO_MXS_MODE_SYSTEM
        /* Sync signals ON */
        setbits_le32(&regs->hw_lcdif_vdctrl4, LCDIF_VDCTRL4_SYNC_SIGNALS_ON);
+#endif
 
        /* FIFO cleared */
        writel(LCDIF_CTRL1_FIFO_CLEAR, &regs->hw_lcdif_ctrl1_clr);