diff --git a/arch/arm/mach-imx/fbpanel.c b/arch/arm/mach-imx/fbpanel.c index a9bad42d57f2f3ec0cdc5ee0ac3ba9e758611f56..0e3f17602c8c04399f54f1aa1a16094c224084dc 100644 --- a/arch/arm/mach-imx/fbpanel.c +++ b/arch/arm/mach-imx/fbpanel.c @@ -387,6 +387,25 @@ static void setup_cmd_fb(unsigned fb, const struct display_info_t *di, char *buf buf += sz; size -= sz; } + } else if (fb == FB_MIPI) { + sz = snprintf(buf, size, + "fdt set %s dsi-format %s;", fbnames[fb], (interface_width == 24) ? "rgb888" : "rgb666"); + buf += sz; + size -= sz; + + if ((di->addr_num == 0x2c) || (di->fbflags & (FBF_JEIDA | FBF_SPLITMODE))) { + if (interface_width == 24) { + sz = snprintf(buf, size, + "fdt set mipi_to_lvds %s;", (di->fbflags & FBF_JEIDA) ? "jeida" : "spwg"); + buf += sz; + size -= sz; + } + if (di->fbflags & FBF_SPLITMODE) { + sz = snprintf(buf, size, "fdt set mipi_to_lvds split-mode;"); + buf += sz; + size -= sz; + } + } } if (di->fbflags & FBF_PINCTRL) {