summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/fb/fsl_ipuv3_fb.txt
blob: b8d27ef108fe388b4f3b455cc919bd68268fde60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
* 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 = <&reg_mipi_dsi_pwr_on>
			resets = <&mipi_dsi_reset>;
			status = "okay";
		};