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
106
107
108
109
110
111
112
113
114
115
116
117
118
|
* 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.
For LDB/LVDS panel, there are two LVDS channels(LVDS0 and LVDS1) which can
transfer video data, these two channels can be used as
split/dual/single/separate mode.
-split mode means display data from DI0 or DI1 will send to both channels
LVDS0+LVDS1.
-dual mode means display data from DI0 or DI1 will be duplicated on LVDS0
and LVDS1, it said, LVDS0 and LVDS1 has the same content.
-single mode means only work for DI0/DI1->LVDS0 or DI0/DI1->LVDS1.
-separate mode means you can make DI0/DI1->LVDS0 and DI0/DI1->LVDS1 work
at the same time.
"ldb=spl0/1" -- split mode on DI0/1
"ldb=dul0/1" -- dual mode on DI0/1
"ldb=sin0/1" -- single mode on LVDS0/1
"ldb=sep0/1" -- separate mode begin from LVDS0/1
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 : video mode string: "LDB-XGA" or "LDB-1080P60" for ldb,
"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
LVDS666 IPU_PIX_FMT_LVDS666
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, "fsl,imx6q-ldb" for ldb
- 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.
- sec_ipu_id : secondary ipu id for the second display device(ldb only): 0 or 1
- sec_disp_id : secondary display interface id for the second display
device(ldb only): 0 or 1
- ext_ref : reference resistor select for ldb only: 0 or 1
- mode : ldb mode as below:
spl0 LDB_SPL_DI0
spl1 LDB_SPL_DI1
dul0 LDB_DUL_DI0
dul1 LDB_DUL_DI1
sin0 LDB_SIN0
sin1 LDB_SIN1
sep0 LDB_SEP0
sep1 LDB_SEP1
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 ldb display:
ldb@020e0000 {
ipu_id = <1>;
disp_id = <0>;
ext_ref = <1>;
mode = "sep0";
sec_ipu_id = <1>;
sec_disp_id = <1>;
status = "okay";
};
|