* FSL IPUv3 Display/FB The FSL IPUv3 is Image Processing Unit version 3, a part of video and graphics subsystem in an application processor. The goal of the IPU is to provide comprehensive support for the flow of data from an image sensor or/and to a display device. Two IPU units are on the imx6q SOC while only one IPU unit on the imx6dl SOC. Each IPU unit has two display interfaces. Required properties for IPU: - bypass_reset :Bypass reset to avoid display channel being. stopped by probe since it may start to work in bootloader: 0 or 1. - compatible : should be "fsl,imx6q-ipu". - reg : the register address range. - interrupts : the error and sync interrupts request. - clocks : the clock sources that it depends on. - clock-names: the related clock names. - resets : IPU reset specifier. See reset.txt and fsl,imx-src.txt in Documentation/devicetree/bindings/reset/ for details. Required properties for fb: - compatible : should be "fsl,mxc_sdc_fb". - disp_dev : display device: "ldb", "lcd", "hdmi", "mipi_dsi". - mode_str : "CLAA-WVGA" for lcd, "TRULY-WVGA" for TRULY mipi_dsi lcd panel, "1920x1080M@60" for hdmi. - default_bpp : default bits per pixel: 8/16/24/32 - int_clk : use internal clock as pixel clock: 0 or 1 - late_init : to avoid display channel being re-initialized as we've probably setup the channel in bootloader: 0 or 1 - interface_pix_fmt : display interface pixel format as below: RGB666 IPU_PIX_FMT_RGB666 RGB565 IPU_PIX_FMT_RGB565 RGB24 IPU_PIX_FMT_RGB24 BGR24 IPU_PIX_FMT_BGR24 GBR24 IPU_PIX_FMT_GBR24 YUV444 IPU_PIX_FMT_YUV444 YUYV IPU_PIX_FMT_YUYV UYVY IPU_PIX_FMT_UYVY YVYV IPU_PIX_FMT_YVYU VYUY IPU_PIX_FMT_VYUY Required properties for display: - compatible : should be "fsl,lcd" for lcd panel - reg : the register address range if necessary to have. - interrupts : the error and sync interrupts if necessary to have. - clocks : the clock sources that it depends on if necessary to have. - clock-names: the related clock names if necessary to have. - ipu_id : ipu id for the first display device: 0 or 1 - disp_id : display interface id for the first display interface: 0 or 1 - default_ifmt : save as above display interface pixel format for lcd - pinctrl-names : should be "default" - pinctrl-0 : should be pinctrl_ipu1_1 or pinctrl_ipu2_1, which depends on the IPU connected. - gpr : the mux controller for the display engine's display interfaces and the display encoder (only valid for mipi dsi now). - disp-power-on-supply : the regulator to control display panel's power. (only valid for mipi dsi now). - resets : the gpio pin to reset the display device(only valid for mipi display panel now). - lcd_panel : the video mode name for the display device(only valid for mipi display panel now). - dev_id : the display engine's identity within the system, which intends to replace ipu_id (only valid for mipi dsi now). Example for IPU: ipu1: ipu@02400000 { compatible = "fsl,imx6q-ipu"; reg = <0x02400000 0x400000>; interrupts = <0 6 0x4 0 5 0x4>; clocks = <&clks 130>, <&clks 131>, <&clks 132>, <&clks 39>, <&clks 40>, <&clks 135>, <&clks 136>; clock-names = "bus", "di0", "di1", "di0_sel", "di1_sel", "ldb_di0", "ldb_di1"; resets = <&src 2>; bypass_reset = <0>; }; Example for fb: fb0 { compatible = "fsl,mxc_sdc_fb"; disp_dev = "ldb"; interface_pix_fmt = "RGB666"; mode_str ="LDB-XGA"; default_bpp = <16>; int_clk = <0>; late_init = <0>; status = "okay"; }; Example for mipi dsi display: mipi_dsi: mipi@021e0000 { compatible = "fsl,imx6q-mipi-dsi"; reg = <0x021e0000 0x4000>; interrupts = <0 102 0x04>; gpr = <&gpr>; clocks = <&clks 138>, <&clks 204>; clock-names = "mipi_pllref_clk", "mipi_cfg_clk"; dev_id = <0>; disp_id = <0>; lcd_panel = "TRULY-WVGA"; disp-power-on-supply = <®_mipi_dsi_pwr_on> resets = <&mipi_dsi_reset>; status = "okay"; };