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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
* Samsung Display Controller Framebuffer Controller
The display controller is used to transfer image data from memory to a
external display device such as an RGB interface LCD panel. It supports
various color formats such as rgb and yuv. It also supports multiple window
overlays.
Required properties:
- compatible: should be one of the following
- samsung,exynos4210-fimd: for fimd compatible with Exynos4210 fimd
- samsung,s5pv210-fimd: for fimd compatible with s5pv210 fimd
- reg: physical base address of the controller and length of memory
mapped region.
- interrupts: Three interrupts should be specified. The format of the
interrupt specifier depends on the interrupt controller. The interrupts
should be specified in the following order.
- VSYNC (Video Frame) interrupt
- Video FIFO level interrupt
- FIMD System Interrupt
- gpios: The gpios used to interface with the external LCD panel. For a
panel with rgb interface, the gpio interface consists of video data
lines, HSYNC, VSYNC, Pixel Clock and Data Enable. The gpio's used for
these interface lines can be listed under this property in any order.
- samsung,fimd-display: The fimd controller is interfaced with the a
display device such as a lcd panel. This property should specify the
phandle of the display device node. For a display device node that
represents a RGB type display interface, it is expected to specify the
video interface timing using the following properties.
- lcd-htiming: Specifies the horizontal timing for the overlay. The
horizontal timing includes four parameters in the following order.
- horizontal back porch (in number of lcd clocks)
- horizontal front porch (in number of lcd clocks)
- hsync pulse width (in number of lcd clocks)
- Display panels X resolution.
- lcd-vtiming: Specifies the vertical timing for the overlay. The
vertical timing includes four parameters in the following order.
- vertical back porch (in number of lcd lines)
- vertical front porch (in number of lcd lines)
- vsync pulse width (in number of lcd clocks)
- Y resolution.
- Overlay/Windows: Multiple overlays/windows can be specified as child
nodes. Each window should have the following properties (optional
window properties are marked as 'optional').
- samsung,fimd-win-id: Specifies the window number of the fimd controller.
- samsung,fimd-win-bpp: Specifies the bits per pixel. Two values should
be specified in the following order.
- default-bpp: bpp supported by the overlay.
- max-bpp: maximum required bpp for the overlay.
- samsung,fimd-win-res: (OPTIONAL) Specifies the window resolution in
pixels. The resolution contains the X and Y pixel values with X being
specified first. If this property is not specified, the window
resolution is set to be equal to the display panel resolution.
- samsung,fimd-win-virtres: (OPTIONAL) Specifies the resolution of the
virtual frame buffer for the window. The resolution contains the X
and Y resolution in pixels with value of X being the specified first.
Optional properties:
- samsung,fimd-vidout-rgb: Video output format is RGB.
- samsung,fimd-inv-hsync: invert hsync pulse polarity.
- samsung,fimd-inv-vsync: invert vsync pulse polarity.
- samsung,fimd-inv-vclk: invert video clock polarity.
- samsung,fimd-inv-vden: invert video enable signal polarity.
- samsung,fimd-frame-rate: Number of video frames per second.
Example:
The following is an example for the fimd framebuffer controller is split
into two portions. The SoC specific portion can be specified in the SoC
specific dts file. The board specific portion can be specified in the
board specific dts file.
- SoC Specific portion
fimd@11C00000 {
compatible = "samsung,exynos4210-fimd";
interrupt-parent = <&combiner>;
reg = <0x11C00000 0x8000>;
interrupts = <11 1>, <11 0>, <11 2>;
};
- Board Specific portion
fimd@11C00000 {
samsung,fimd-display = <&lcd_fimd0>;
samsung,fimd-vidout-rgb;
samsung,fimd-inv-hsync;
samsung,fimd-inv-vsync;
samsung,fimd-inv-vclk;
samsung,fimd-frame-rate = <60>;
gpios = <&gpf0 0 2 0 0>,
<&gpf0 1 2 0 0>,
<&gpf0 2 2 0 0>,
<&gpf0 3 2 0 0>,
<&gpf0 4 2 0 0>,
<&gpf0 5 2 0 0>,
<&gpf0 6 2 0 0>,
<&gpf0 7 2 0 0>,
<&gpf1 0 2 0 0>,
<&gpf1 1 2 0 0>,
<&gpf1 2 2 0 0>,
<&gpf1 3 2 0 0>,
<&gpf1 4 2 0 0>,
<&gpf1 5 2 0 0>,
<&gpf1 6 2 0 0>,
<&gpf1 7 2 0 0>,
<&gpf2 0 2 0 0>,
<&gpf2 1 2 0 0>,
<&gpf2 2 2 0 0>,
<&gpf2 3 2 0 0>,
<&gpf2 4 2 0 0>,
<&gpf2 5 2 0 0>,
<&gpf2 6 2 0 0>,
<&gpf2 7 2 0 0>,
<&gpf3 0 2 0 0>,
<&gpf3 1 2 0 0>,
<&gpf3 2 2 0 0>,
<&gpf3 3 2 0 0>;
window0 {
samsung,fimd-win-id = <0>;
samsung,fimd-win-bpp = <32 24>;
samsung,fimd-win-res = <512 300>;
samsung,fimd-win-vres = <1024 600>;
};
window1 {
samsung,fimd-win-id = <1>;
samsung,fimd-win-bpp = <32 24>;
samsung,fimd-win-res = <1024 200>;
samsung,fimd-win-vres = <1024 600>;
};
};
|