]> git.karo-electronics.de Git - linux-beck.git/commitdiff
fbdev: sh_mipi_dsi: add sync_pulses/sync_events/burst mode
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Wed, 9 Nov 2011 04:34:55 +0000 (20:34 -0800)
committerFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
Mon, 21 Nov 2011 23:43:21 +0000 (23:43 +0000)
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
arch/arm/mach-shmobile/board-ag5evm.c
arch/arm/mach-shmobile/board-ap4evb.c
drivers/video/sh_mipi_dsi.c
include/video/sh_mipi_dsi.h

index e969fe91e50507caf9c269b5606ae00d4660495f..6993844424c68b0e39170fe1b721cda977f8b7bc 100644 (file)
@@ -327,7 +327,8 @@ static struct sh_mipi_dsi_info mipidsi0_info = {
        .lane           = 2,
        .vsynw_offset   = 20,
        .clksrc         = 1,
-       .flags          = SH_MIPI_DSI_HSABM,
+       .flags          = SH_MIPI_DSI_HSABM |
+                         SH_MIPI_DSI_SYNC_PULSES_MODE,
 };
 
 static struct platform_device mipidsi0_device = {
index b7d006fd046165fbdf4d5a0c0d608ec5c18a9f53..b2e32c8c9e54aa2defb62f3e55fabe9db02f03c9 100644 (file)
@@ -582,6 +582,7 @@ static struct sh_mipi_dsi_info mipidsi0_info = {
        .lcd_chan       = &lcdc_info.ch[0],
        .lane           = 2,
        .vsynw_offset   = 17,
+       .flags          = SH_MIPI_DSI_SYNC_PULSES_MODE,
 };
 
 static struct platform_device mipidsi0_device = {
index af6bec24effb86e1de603444d6bd57054691412b..b8c4873df710d5fc2f369eecc1767c228aafd96a 100644 (file)
@@ -152,7 +152,7 @@ static int __init sh_mipi_setup(struct sh_mipi *mipi,
 {
        void __iomem *base = mipi->base;
        struct sh_mobile_lcdc_chan_cfg *ch = pdata->lcd_chan;
-       u32 pctype, datatype, pixfmt, linelength, vmctr2 = 0x00e00000;
+       u32 pctype, datatype, pixfmt, linelength, vmctr2;
        bool yuv;
        u32 tmp;
 
@@ -324,6 +324,13 @@ static int __init sh_mipi_setup(struct sh_mipi *mipi,
         * Non-burst mode with sync pulses: VSE and HSE are output,
         * HSA period allowed, no commands in LP
         */
+       vmctr2 = 0;
+       if (pdata->flags & SH_MIPI_DSI_VSEE)
+               vmctr2 |= 1 << 23;
+       if (pdata->flags & SH_MIPI_DSI_HSEE)
+               vmctr2 |= 1 << 22;
+       if (pdata->flags & SH_MIPI_DSI_HSAE)
+               vmctr2 |= 1 << 21;
        if (pdata->flags & SH_MIPI_DSI_BL2E)
                vmctr2 |= 1 << 17;
        if (pdata->flags & SH_MIPI_DSI_HSABM)
index 3d0ec500d8963fe7f0801c73a08daee9d57d4a32..c8225b4fe8e6b033680c28cf487a8f47049db823 100644 (file)
@@ -31,6 +31,15 @@ struct sh_mobile_lcdc_chan_cfg;
 #define SH_MIPI_DSI_HBPBM      (1 << 1)
 #define SH_MIPI_DSI_HFPBM      (1 << 2)
 #define SH_MIPI_DSI_BL2E       (1 << 3)
+#define SH_MIPI_DSI_VSEE       (1 << 4)
+#define SH_MIPI_DSI_HSEE       (1 << 5)
+#define SH_MIPI_DSI_HSAE       (1 << 6)
+
+#define SH_MIPI_DSI_SYNC_PULSES_MODE   (SH_MIPI_DSI_VSEE | \
+                                        SH_MIPI_DSI_HSEE | \
+                                        SH_MIPI_DSI_HSAE)
+#define SH_MIPI_DSI_SYNC_EVENTS_MODE   (0)
+#define SH_MIPI_DSI_SYNC_BURST_MODE    (SH_MIPI_DSI_BL2E)
 
 struct sh_mipi_dsi_info {
        enum sh_mipi_dsi_data_fmt       data_format;