video: Add a console driver that uses TrueType fonts
[oweals/u-boot.git] / drivers / video / Kconfig
1 #
2 # Video configuration
3 #
4
5 menu "Graphics support"
6
7 config DM_VIDEO
8         bool "Enable driver model support for LCD/video"
9         depends on DM
10         help
11           This enables driver model for LCD and video devices. These support
12           a bitmap display of various sizes and depths which can be drawn on
13           to display a command-line console or splash screen. Enabling this
14           option compiles in the video uclass and routes all LCD/video access
15           through this.
16
17 config VIDEO_BPP8
18         bool "Support 8-bit-per-pixel displays"
19         depends on DM_VIDEO
20         default y if DM_VIDEO
21         help
22           Support drawing text and bitmaps onto a 8-bit-per-pixel display.
23           Enabling this will include code to support this display. Without
24           this option, such displays will not be supported and console output
25           will be empty.
26
27 config VIDEO_BPP16
28         bool "Support 16-bit-per-pixel displays"
29         depends on DM_VIDEO
30         default y if DM_VIDEO
31         help
32           Support drawing text and bitmaps onto a 16-bit-per-pixel display.
33           Enabling this will include code to support this display. Without
34           this option, such displays will not be supported and console output
35           will be empty.
36
37 config VIDEO_BPP32
38         bool "Support 32-bit-per-pixel displays"
39         depends on DM_VIDEO
40         default y if DM_VIDEO
41         help
42           Support drawing text and bitmaps onto a 32-bit-per-pixel display.
43           Enabling this will include code to support this display. Without
44           this option, such displays will not be supported and console output
45           will be empty.
46
47 config CONSOLE_NORMAL
48         bool "Support a simple text console"
49         depends on DM_VIDEO
50         default y if DM_VIDEO
51         help
52           Support drawing text on the frame buffer console so that it can be
53           used as a console. Rotation is not supported by this driver (see
54           CONFIG_CONSOLE_ROTATION for that). A built-in 8x16 font is used
55           for the display.
56
57 config CONSOLE_ROTATION
58         bool "Support rotated displays"
59         depends on DM_VIDEO
60         help
61           Sometimes, for example if the display is mounted in portrait
62           mode or even if it's mounted landscape but rotated by 180degree,
63           we need to rotate our content of the display relative to the
64           framebuffer, so that user can read the messages which are
65           printed out. Enable this option to include a text driver which can
66           support this. The rotation is set by the 'rot' parameter in
67           struct video_priv: 0=unrotated, 1=90 degrees clockwise, 2=180
68           degrees, 3=270 degrees.
69
70 config CONSOLE_TRUETYPE
71         bool "Support a console that uses TrueType fonts"
72         depends on DM_VIDEO
73         help
74           TrueTrype fonts can provide outline-drawing capability rather than
75           needing to provide a bitmap for each font and size that is needed.
76           With this option you can adjust the text size and use a variety of
77           fonts. Note that this is noticeably slower than with normal console.
78
79 config CONSOLE_TRUETYPE_SIZE
80         int "TrueType font size"
81         depends on CONSOLE_TRUETYPE
82         default 18
83         help
84           This sets the font size for the console. The size is measured in
85           pixels and is the nominal height of a character. Note that fonts
86           are commonly measured in 'points', being 1/72 inch (about 3.52mm).
87           However that measurement depends on the size of your display and
88           there is no standard display density. At present there is not a
89           method to select the display's physical size, which would allow
90           U-Boot to calculate the correct font size.
91
92 source "drivers/video/fonts/Kconfig"
93
94 config VIDEO_VESA
95         bool "Enable VESA video driver support"
96         default n
97         help
98           Turn on this option to enable a very simple driver which uses vesa
99           to discover the video mode and then provides a frame buffer for use
100           by U-Boot. This can in principle be used with any platform that
101           supports PCI and video cards that support VESA BIOS Extension (VBE).
102
103 config FRAMEBUFFER_SET_VESA_MODE
104         bool "Set framebuffer graphics resolution"
105         depends on VIDEO_VESA
106         help
107           Set VESA/native framebuffer mode (needed for bootsplash and graphical
108           framebuffer console)
109
110 choice
111         prompt "framebuffer graphics resolution"
112         default FRAMEBUFFER_VESA_MODE_117
113         depends on FRAMEBUFFER_SET_VESA_MODE
114         help
115           This option sets the resolution used for the U-Boot framebuffer (and
116           bootsplash screen).
117
118 config FRAMEBUFFER_VESA_MODE_100
119         bool "640x400 256-color"
120
121 config FRAMEBUFFER_VESA_MODE_101
122         bool "640x480 256-color"
123
124 config FRAMEBUFFER_VESA_MODE_102
125         bool "800x600 16-color"
126
127 config FRAMEBUFFER_VESA_MODE_103
128         bool "800x600 256-color"
129
130 config FRAMEBUFFER_VESA_MODE_104
131         bool "1024x768 16-color"
132
133 config FRAMEBUFFER_VESA_MODE_105
134         bool "1024x768 256-color"
135
136 config FRAMEBUFFER_VESA_MODE_106
137         bool "1280x1024 16-color"
138
139 config FRAMEBUFFER_VESA_MODE_107
140         bool "1280x1024 256-color"
141
142 config FRAMEBUFFER_VESA_MODE_108
143         bool "80x60 text"
144
145 config FRAMEBUFFER_VESA_MODE_109
146         bool "132x25 text"
147
148 config FRAMEBUFFER_VESA_MODE_10A
149         bool "132x43 text"
150
151 config FRAMEBUFFER_VESA_MODE_10B
152         bool "132x50 text"
153
154 config FRAMEBUFFER_VESA_MODE_10C
155         bool "132x60 text"
156
157 config FRAMEBUFFER_VESA_MODE_10D
158         bool "320x200 32k-color (1:5:5:5)"
159
160 config FRAMEBUFFER_VESA_MODE_10E
161         bool "320x200 64k-color (5:6:5)"
162
163 config FRAMEBUFFER_VESA_MODE_10F
164         bool "320x200 16.8M-color (8:8:8)"
165
166 config FRAMEBUFFER_VESA_MODE_110
167         bool "640x480 32k-color (1:5:5:5)"
168
169 config FRAMEBUFFER_VESA_MODE_111
170         bool "640x480 64k-color (5:6:5)"
171
172 config FRAMEBUFFER_VESA_MODE_112
173         bool "640x480 16.8M-color (8:8:8)"
174
175 config FRAMEBUFFER_VESA_MODE_113
176         bool "800x600 32k-color (1:5:5:5)"
177
178 config FRAMEBUFFER_VESA_MODE_114
179         bool "800x600 64k-color (5:6:5)"
180
181 config FRAMEBUFFER_VESA_MODE_115
182         bool "800x600 16.8M-color (8:8:8)"
183
184 config FRAMEBUFFER_VESA_MODE_116
185         bool "1024x768 32k-color (1:5:5:5)"
186
187 config FRAMEBUFFER_VESA_MODE_117
188         bool "1024x768 64k-color (5:6:5)"
189
190 config FRAMEBUFFER_VESA_MODE_118
191         bool "1024x768 16.8M-color (8:8:8)"
192
193 config FRAMEBUFFER_VESA_MODE_119
194         bool "1280x1024 32k-color (1:5:5:5)"
195
196 config FRAMEBUFFER_VESA_MODE_11A
197         bool "1280x1024 64k-color (5:6:5)"
198
199 config FRAMEBUFFER_VESA_MODE_11B
200         bool "1280x1024 16.8M-color (8:8:8)"
201
202 config FRAMEBUFFER_VESA_MODE_USER
203         bool "Manually select VESA mode"
204
205 endchoice
206
207 # Map the config names to an integer (KB).
208 config FRAMEBUFFER_VESA_MODE
209         prompt "VESA mode" if FRAMEBUFFER_VESA_MODE_USER
210         hex
211         default 0x100 if FRAMEBUFFER_VESA_MODE_100
212         default 0x101 if FRAMEBUFFER_VESA_MODE_101
213         default 0x102 if FRAMEBUFFER_VESA_MODE_102
214         default 0x103 if FRAMEBUFFER_VESA_MODE_103
215         default 0x104 if FRAMEBUFFER_VESA_MODE_104
216         default 0x105 if FRAMEBUFFER_VESA_MODE_105
217         default 0x106 if FRAMEBUFFER_VESA_MODE_106
218         default 0x107 if FRAMEBUFFER_VESA_MODE_107
219         default 0x108 if FRAMEBUFFER_VESA_MODE_108
220         default 0x109 if FRAMEBUFFER_VESA_MODE_109
221         default 0x10A if FRAMEBUFFER_VESA_MODE_10A
222         default 0x10B if FRAMEBUFFER_VESA_MODE_10B
223         default 0x10C if FRAMEBUFFER_VESA_MODE_10C
224         default 0x10D if FRAMEBUFFER_VESA_MODE_10D
225         default 0x10E if FRAMEBUFFER_VESA_MODE_10E
226         default 0x10F if FRAMEBUFFER_VESA_MODE_10F
227         default 0x110 if FRAMEBUFFER_VESA_MODE_110
228         default 0x111 if FRAMEBUFFER_VESA_MODE_111
229         default 0x112 if FRAMEBUFFER_VESA_MODE_112
230         default 0x113 if FRAMEBUFFER_VESA_MODE_113
231         default 0x114 if FRAMEBUFFER_VESA_MODE_114
232         default 0x115 if FRAMEBUFFER_VESA_MODE_115
233         default 0x116 if FRAMEBUFFER_VESA_MODE_116
234         default 0x117 if FRAMEBUFFER_VESA_MODE_117
235         default 0x118 if FRAMEBUFFER_VESA_MODE_118
236         default 0x119 if FRAMEBUFFER_VESA_MODE_119
237         default 0x11A if FRAMEBUFFER_VESA_MODE_11A
238         default 0x11B if FRAMEBUFFER_VESA_MODE_11B
239         default 0x117 if FRAMEBUFFER_VESA_MODE_USER
240
241 config VIDEO_LCD_ANX9804
242         bool "ANX9804 bridge chip"
243         default n
244         ---help---
245         Support for the ANX9804 bridge chip, which can take pixel data coming
246         from a parallel LCD interface and translate it on the fy into a DP
247         interface for driving eDP TFT displays. It uses I2C for configuration.
248
249 config VIDEO_LCD_SSD2828
250         bool "SSD2828 bridge chip"
251         default n
252         ---help---
253         Support for the SSD2828 bridge chip, which can take pixel data coming
254         from a parallel LCD interface and translate it on the fly into MIPI DSI
255         interface for driving a MIPI compatible LCD panel. It uses SPI for
256         configuration.
257
258 config VIDEO_LCD_SSD2828_TX_CLK
259         int "SSD2828 TX_CLK frequency (in MHz)"
260         depends on VIDEO_LCD_SSD2828
261         default 0
262         ---help---
263         The frequency of the crystal, which is clocking SSD2828. It may be
264         anything in the 8MHz-30MHz range and the exact value should be
265         retrieved from the board schematics. Or in the case of Allwinner
266         hardware, it can be usually found as 'lcd_xtal_freq' variable in
267         FEX files. It can be also set to 0 for selecting PCLK from the
268         parallel LCD interface instead of TX_CLK as the PLL clock source.
269
270 config VIDEO_LCD_SSD2828_RESET
271         string "RESET pin of SSD2828"
272         depends on VIDEO_LCD_SSD2828
273         default ""
274         ---help---
275         The reset pin of SSD2828 chip. This takes a string in the format
276         understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H.
277
278 config VIDEO_LCD_HITACHI_TX18D42VM
279         bool "Hitachi tx18d42vm LVDS LCD panel support"
280         depends on VIDEO
281         default n
282         ---help---
283         Support for Hitachi tx18d42vm LVDS LCD panels, these panels have a
284         lcd controller which needs to be initialized over SPI, once that is
285         done they work like a regular LVDS panel.
286
287 config VIDEO_LCD_SPI_CS
288         string "SPI CS pin for LCD related config job"
289         depends on VIDEO_LCD_SSD2828 || VIDEO_LCD_HITACHI_TX18D42VM
290         default ""
291         ---help---
292         This is one of the SPI communication pins, involved in setting up a
293         working LCD configuration. The exact role of SPI may differ for
294         different hardware setups. The option takes a string in the format
295         understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H.
296
297 config VIDEO_LCD_SPI_SCLK
298         string "SPI SCLK pin for LCD related config job"
299         depends on VIDEO_LCD_SSD2828 || VIDEO_LCD_HITACHI_TX18D42VM
300         default ""
301         ---help---
302         This is one of the SPI communication pins, involved in setting up a
303         working LCD configuration. The exact role of SPI may differ for
304         different hardware setups. The option takes a string in the format
305         understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H.
306
307 config VIDEO_LCD_SPI_MOSI
308         string "SPI MOSI pin for LCD related config job"
309         depends on VIDEO_LCD_SSD2828 || VIDEO_LCD_HITACHI_TX18D42VM
310         default ""
311         ---help---
312         This is one of the SPI communication pins, involved in setting up a
313         working LCD configuration. The exact role of SPI may differ for
314         different hardware setups. The option takes a string in the format
315         understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H.
316
317 config VIDEO_LCD_SPI_MISO
318         string "SPI MISO pin for LCD related config job (optional)"
319         depends on VIDEO_LCD_SSD2828
320         default ""
321         ---help---
322         This is one of the SPI communication pins, involved in setting up a
323         working LCD configuration. The exact role of SPI may differ for
324         different hardware setups. If wired up, this pin may provide additional
325         useful functionality. Such as bi-directional communication with the
326         hardware and LCD panel id retrieval (if the panel can report it). The
327         option takes a string in the format understood by 'name_to_gpio'
328         function, e.g. PH1 for pin 1 of port H.
329
330 config VIDEO_MVEBU
331         bool "Armada XP LCD controller"
332         default n
333         ---help---
334         Support for the LCD controller integrated in the Marvell
335         Armada XP SoC.
336
337 config I2C_EDID
338         bool "Enable EDID library"
339         depends on DM_I2C
340         default n
341         help
342            This enables library for accessing EDID data from an LCD panel.
343
344 config DISPLAY
345         bool "Enable Display support"
346         depends on DM
347         default n
348         select I2C_EDID
349         help
350            This supports drivers that provide a display, such as eDP (Embedded
351            DisplayPort) and HDMI (High Definition Multimedia Interface).
352            The devices provide a simple interface to start up the display,
353            read display information and enable it.
354
355 config VIDEO_ROCKCHIP
356         bool "Enable Rockchip video support"
357         depends on DM_VIDEO
358         help
359            Rockchip SoCs provide video output capabilities for High-Definition
360            Multimedia Interface (HDMI), Low-voltage Differential Signalling
361            (LVDS), embedded DisplayPort (eDP) and Display Serial Interface
362            (DSI). This driver supports the on-chip video output device, and
363            targets the Rockchip RK3288.
364
365 config VIDEO_SANDBOX_SDL
366         bool "Enable sandbox video console using SDL"
367         depends on SANDBOX
368         help
369           When using sandbox you can enable an emulated LCD display which
370           appears as an SDL (Simple DirectMedia Layer) window. This is a
371           console device and can display stdout output. Within U-Boot is is
372           a normal bitmap display and can display images as well as text.
373
374 config VIDEO_TEGRA124
375         bool "Enable video support on Tegra124"
376         help
377            Tegra124 supports many video output options including eDP and
378            HDMI. At present only eDP is supported by U-Boot. This option
379            enables this support which can be used on devices which
380            have an eDP display connected.
381
382 source "drivers/video/bridge/Kconfig"
383
384 endmenu