]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - arch/arm/mach-shmobile/board-ap4evb.c
Merge branch 'fbdev-next' of git://github.com/schandinat/linux-2.6
[karo-tx-linux.git] / arch / arm / mach-shmobile / board-ap4evb.c
index d2e7b73aa9b6418dce567e6be2216e07961fdb0c..aab0a349f759baaa6469373270539cab35b9cee4 100644 (file)
@@ -491,7 +491,7 @@ static struct sh_mobile_lcdc_info lcdc_info = {
        .meram_dev = &meram_info,
        .ch[0] = {
                .chan = LCDC_CHAN_MAINLCD,
-               .bpp = 16,
+               .fourcc = V4L2_PIX_FMT_RGB565,
                .lcd_cfg = ap4evb_lcdc_modes,
                .num_cfg = ARRAY_SIZE(ap4evb_lcdc_modes),
                .meram_cfg = &lcd_meram_cfg,
@@ -564,6 +564,30 @@ static struct platform_device keysc_device = {
 };
 
 /* MIPI-DSI */
+#define PHYCTRL                0x0070
+static int sh_mipi_set_dot_clock(struct platform_device *pdev,
+                                void __iomem *base,
+                                int enable)
+{
+       struct clk *pck = clk_get(&pdev->dev, "dsip_clk");
+       void __iomem *phy =  base + PHYCTRL;
+
+       if (IS_ERR(pck))
+               return PTR_ERR(pck);
+
+       if (enable) {
+               clk_set_rate(pck, clk_round_rate(pck, 24000000));
+               iowrite32(ioread32(phy) | (0xb << 8), phy);
+               clk_enable(pck);
+       } else {
+               clk_disable(pck);
+       }
+
+       clk_put(pck);
+
+       return 0;
+}
+
 static struct resource mipidsi0_resources[] = {
        [0] = {
                .start  = 0xffc60000,
@@ -580,7 +604,11 @@ static struct resource mipidsi0_resources[] = {
 static struct sh_mipi_dsi_info mipidsi0_info = {
        .data_format    = MIPI_RGB888,
        .lcd_chan       = &lcdc_info.ch[0],
+       .lane           = 2,
        .vsynw_offset   = 17,
+       .flags          = SH_MIPI_DSI_SYNC_PULSES_MODE |
+                         SH_MIPI_DSI_HSbyteCLK,
+       .set_dot_clock  = sh_mipi_set_dot_clock,
 };
 
 static struct platform_device mipidsi0_device = {
@@ -798,7 +826,7 @@ static struct sh_mobile_lcdc_info sh_mobile_lcdc1_info = {
        .meram_dev = &meram_info,
        .ch[0] = {
                .chan = LCDC_CHAN_MAINLCD,
-               .bpp = 16,
+               .fourcc = V4L2_PIX_FMT_RGB565,
                .interface_type = RGB24,
                .clock_divider = 1,
                .flags = LCDC_FLAGS_DWPOL,