Merge branch 'master' of git://git.denx.de/u-boot-sunxi
[platform/kernel/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 VIDCONSOLE_AS_LCD
95         bool "Use 'vidconsole' when 'lcd' is seen in stdout"
96         depends on DM_VIDEO
97         help
98           This is a work-around for boards which have 'lcd' in their stdout
99           environment variable, but have moved to use driver model for video.
100           In this case the console will no-longer work. While it is possible
101           to update the environment, the breakage may be confusing for users.
102           This option will be removed around the end of 2016.
103
104 config VIDEO_COREBOOT
105         bool "Enable coreboot framebuffer driver support"
106         depends on X86 && SYS_COREBOOT
107         help
108           Turn on this option to enable a framebuffer driver when U-Boot is
109           loaded by coreboot where the graphics device is configured by
110           coreboot already. This can in principle be used with any platform
111           that coreboot supports.
112
113 config VIDEO_VESA
114         bool "Enable VESA video driver support"
115         default n
116         help
117           Turn on this option to enable a very simple driver which uses vesa
118           to discover the video mode and then provides a frame buffer for use
119           by U-Boot. This can in principle be used with any platform that
120           supports PCI and video cards that support VESA BIOS Extension (VBE).
121
122 config FRAMEBUFFER_SET_VESA_MODE
123         bool "Set framebuffer graphics resolution"
124         depends on VIDEO_VESA || VIDEO_BROADWELL_IGD
125         help
126           Set VESA/native framebuffer mode (needed for bootsplash and graphical
127           framebuffer console)
128
129 choice
130         prompt "framebuffer graphics resolution"
131         default FRAMEBUFFER_VESA_MODE_117
132         depends on FRAMEBUFFER_SET_VESA_MODE
133         help
134           This option sets the resolution used for the U-Boot framebuffer (and
135           bootsplash screen).
136
137 config FRAMEBUFFER_VESA_MODE_100
138         bool "640x400 256-color"
139
140 config FRAMEBUFFER_VESA_MODE_101
141         bool "640x480 256-color"
142
143 config FRAMEBUFFER_VESA_MODE_102
144         bool "800x600 16-color"
145
146 config FRAMEBUFFER_VESA_MODE_103
147         bool "800x600 256-color"
148
149 config FRAMEBUFFER_VESA_MODE_104
150         bool "1024x768 16-color"
151
152 config FRAMEBUFFER_VESA_MODE_105
153         bool "1024x768 256-color"
154
155 config FRAMEBUFFER_VESA_MODE_106
156         bool "1280x1024 16-color"
157
158 config FRAMEBUFFER_VESA_MODE_107
159         bool "1280x1024 256-color"
160
161 config FRAMEBUFFER_VESA_MODE_108
162         bool "80x60 text"
163
164 config FRAMEBUFFER_VESA_MODE_109
165         bool "132x25 text"
166
167 config FRAMEBUFFER_VESA_MODE_10A
168         bool "132x43 text"
169
170 config FRAMEBUFFER_VESA_MODE_10B
171         bool "132x50 text"
172
173 config FRAMEBUFFER_VESA_MODE_10C
174         bool "132x60 text"
175
176 config FRAMEBUFFER_VESA_MODE_10D
177         bool "320x200 32k-color (1:5:5:5)"
178
179 config FRAMEBUFFER_VESA_MODE_10E
180         bool "320x200 64k-color (5:6:5)"
181
182 config FRAMEBUFFER_VESA_MODE_10F
183         bool "320x200 16.8M-color (8:8:8)"
184
185 config FRAMEBUFFER_VESA_MODE_110
186         bool "640x480 32k-color (1:5:5:5)"
187
188 config FRAMEBUFFER_VESA_MODE_111
189         bool "640x480 64k-color (5:6:5)"
190
191 config FRAMEBUFFER_VESA_MODE_112
192         bool "640x480 16.8M-color (8:8:8)"
193
194 config FRAMEBUFFER_VESA_MODE_113
195         bool "800x600 32k-color (1:5:5:5)"
196
197 config FRAMEBUFFER_VESA_MODE_114
198         bool "800x600 64k-color (5:6:5)"
199
200 config FRAMEBUFFER_VESA_MODE_115
201         bool "800x600 16.8M-color (8:8:8)"
202
203 config FRAMEBUFFER_VESA_MODE_116
204         bool "1024x768 32k-color (1:5:5:5)"
205
206 config FRAMEBUFFER_VESA_MODE_117
207         bool "1024x768 64k-color (5:6:5)"
208
209 config FRAMEBUFFER_VESA_MODE_118
210         bool "1024x768 16.8M-color (8:8:8)"
211
212 config FRAMEBUFFER_VESA_MODE_119
213         bool "1280x1024 32k-color (1:5:5:5)"
214
215 config FRAMEBUFFER_VESA_MODE_11A
216         bool "1280x1024 64k-color (5:6:5)"
217
218 config FRAMEBUFFER_VESA_MODE_11B
219         bool "1280x1024 16.8M-color (8:8:8)"
220
221 config FRAMEBUFFER_VESA_MODE_USER
222         bool "Manually select VESA mode"
223
224 endchoice
225
226 # Map the config names to an integer (KB).
227 config FRAMEBUFFER_VESA_MODE
228         prompt "VESA mode" if FRAMEBUFFER_VESA_MODE_USER
229         hex
230         default 0x100 if FRAMEBUFFER_VESA_MODE_100
231         default 0x101 if FRAMEBUFFER_VESA_MODE_101
232         default 0x102 if FRAMEBUFFER_VESA_MODE_102
233         default 0x103 if FRAMEBUFFER_VESA_MODE_103
234         default 0x104 if FRAMEBUFFER_VESA_MODE_104
235         default 0x105 if FRAMEBUFFER_VESA_MODE_105
236         default 0x106 if FRAMEBUFFER_VESA_MODE_106
237         default 0x107 if FRAMEBUFFER_VESA_MODE_107
238         default 0x108 if FRAMEBUFFER_VESA_MODE_108
239         default 0x109 if FRAMEBUFFER_VESA_MODE_109
240         default 0x10A if FRAMEBUFFER_VESA_MODE_10A
241         default 0x10B if FRAMEBUFFER_VESA_MODE_10B
242         default 0x10C if FRAMEBUFFER_VESA_MODE_10C
243         default 0x10D if FRAMEBUFFER_VESA_MODE_10D
244         default 0x10E if FRAMEBUFFER_VESA_MODE_10E
245         default 0x10F if FRAMEBUFFER_VESA_MODE_10F
246         default 0x110 if FRAMEBUFFER_VESA_MODE_110
247         default 0x111 if FRAMEBUFFER_VESA_MODE_111
248         default 0x112 if FRAMEBUFFER_VESA_MODE_112
249         default 0x113 if FRAMEBUFFER_VESA_MODE_113
250         default 0x114 if FRAMEBUFFER_VESA_MODE_114
251         default 0x115 if FRAMEBUFFER_VESA_MODE_115
252         default 0x116 if FRAMEBUFFER_VESA_MODE_116
253         default 0x117 if FRAMEBUFFER_VESA_MODE_117
254         default 0x118 if FRAMEBUFFER_VESA_MODE_118
255         default 0x119 if FRAMEBUFFER_VESA_MODE_119
256         default 0x11A if FRAMEBUFFER_VESA_MODE_11A
257         default 0x11B if FRAMEBUFFER_VESA_MODE_11B
258         default 0x117 if FRAMEBUFFER_VESA_MODE_USER
259
260 config VIDEO_LCD_ANX9804
261         bool "ANX9804 bridge chip"
262         default n
263         ---help---
264         Support for the ANX9804 bridge chip, which can take pixel data coming
265         from a parallel LCD interface and translate it on the fy into a DP
266         interface for driving eDP TFT displays. It uses I2C for configuration.
267
268 config VIDEO_LCD_SSD2828
269         bool "SSD2828 bridge chip"
270         default n
271         ---help---
272         Support for the SSD2828 bridge chip, which can take pixel data coming
273         from a parallel LCD interface and translate it on the fly into MIPI DSI
274         interface for driving a MIPI compatible LCD panel. It uses SPI for
275         configuration.
276
277 config VIDEO_LCD_SSD2828_TX_CLK
278         int "SSD2828 TX_CLK frequency (in MHz)"
279         depends on VIDEO_LCD_SSD2828
280         default 0
281         ---help---
282         The frequency of the crystal, which is clocking SSD2828. It may be
283         anything in the 8MHz-30MHz range and the exact value should be
284         retrieved from the board schematics. Or in the case of Allwinner
285         hardware, it can be usually found as 'lcd_xtal_freq' variable in
286         FEX files. It can be also set to 0 for selecting PCLK from the
287         parallel LCD interface instead of TX_CLK as the PLL clock source.
288
289 config VIDEO_LCD_SSD2828_RESET
290         string "RESET pin of SSD2828"
291         depends on VIDEO_LCD_SSD2828
292         default ""
293         ---help---
294         The reset pin of SSD2828 chip. This 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_HITACHI_TX18D42VM
298         bool "Hitachi tx18d42vm LVDS LCD panel support"
299         depends on VIDEO
300         default n
301         ---help---
302         Support for Hitachi tx18d42vm LVDS LCD panels, these panels have a
303         lcd controller which needs to be initialized over SPI, once that is
304         done they work like a regular LVDS panel.
305
306 config VIDEO_LCD_SPI_CS
307         string "SPI CS pin for LCD related config job"
308         depends on VIDEO_LCD_SSD2828 || VIDEO_LCD_HITACHI_TX18D42VM
309         default ""
310         ---help---
311         This is one of the SPI communication pins, involved in setting up a
312         working LCD configuration. The exact role of SPI may differ for
313         different hardware setups. The option takes a string in the format
314         understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H.
315
316 config VIDEO_LCD_SPI_SCLK
317         string "SPI SCLK pin for LCD related config job"
318         depends on VIDEO_LCD_SSD2828 || VIDEO_LCD_HITACHI_TX18D42VM
319         default ""
320         ---help---
321         This is one of the SPI communication pins, involved in setting up a
322         working LCD configuration. The exact role of SPI may differ for
323         different hardware setups. The option takes a string in the format
324         understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H.
325
326 config VIDEO_LCD_SPI_MOSI
327         string "SPI MOSI pin for LCD related config job"
328         depends on VIDEO_LCD_SSD2828 || VIDEO_LCD_HITACHI_TX18D42VM
329         default ""
330         ---help---
331         This is one of the SPI communication pins, involved in setting up a
332         working LCD configuration. The exact role of SPI may differ for
333         different hardware setups. The option takes a string in the format
334         understood by 'name_to_gpio' function, e.g. PH1 for pin 1 of port H.
335
336 config VIDEO_LCD_SPI_MISO
337         string "SPI MISO pin for LCD related config job (optional)"
338         depends on VIDEO_LCD_SSD2828
339         default ""
340         ---help---
341         This is one of the SPI communication pins, involved in setting up a
342         working LCD configuration. The exact role of SPI may differ for
343         different hardware setups. If wired up, this pin may provide additional
344         useful functionality. Such as bi-directional communication with the
345         hardware and LCD panel id retrieval (if the panel can report it). The
346         option takes a string in the format understood by 'name_to_gpio'
347         function, e.g. PH1 for pin 1 of port H.
348
349 config VIDEO_MVEBU
350         bool "Armada XP LCD controller"
351         default n
352         ---help---
353         Support for the LCD controller integrated in the Marvell
354         Armada XP SoC.
355
356 config I2C_EDID
357         bool "Enable EDID library"
358         depends on DM_I2C
359         default n
360         help
361            This enables library for accessing EDID data from an LCD panel.
362
363 config DISPLAY
364         bool "Enable Display support"
365         depends on DM
366         default n
367         select I2C_EDID
368         help
369            This supports drivers that provide a display, such as eDP (Embedded
370            DisplayPort) and HDMI (High Definition Multimedia Interface).
371            The devices provide a simple interface to start up the display,
372            read display information and enable it.
373
374 config VIDEO_BROADWELL_IGD
375         bool "Enable Intel Broadwell integrated graphics device"
376         depends on X86
377         help
378           This enables support for integrated graphics on Intel broadwell
379           devices. Initialisation is mostly performed by a VGA boot ROM, with
380           some setup handled by U-Boot itself. The graphics adaptor works as
381           a VESA device and supports LCD panels, eDP and LVDS outputs.
382           Configuration of most aspects of device operation is performed using
383           a special tool which configures the VGA ROM, but the graphics
384           resolution can be selected in U-Boot.
385
386 config VIDEO_IVYBRIDGE_IGD
387         bool "Enable Intel Ivybridge integration graphics support"
388         depends on X86
389         help
390           This enables support for integrated graphics on Intel ivybridge
391           devices. Initialisation is mostly performed by a VGA boot ROM, with
392           some setup handled by U-Boot itself. The graphics adaptor works as
393           a VESA device and supports LCD panels, eDP and LVDS outputs.
394           Configuration of most aspects of device operation is performed using
395           a special tool which configures the VGA ROM, but the graphics
396           resolution can be selected in U-Boot.
397
398 config VIDEO_ROCKCHIP
399         bool "Enable Rockchip video support"
400         depends on DM_VIDEO
401         help
402            Rockchip SoCs provide video output capabilities for High-Definition
403            Multimedia Interface (HDMI), Low-voltage Differential Signalling
404            (LVDS), embedded DisplayPort (eDP) and Display Serial Interface
405            (DSI). This driver supports the on-chip video output device, and
406            targets the Rockchip RK3288.
407
408 config VIDEO_SANDBOX_SDL
409         bool "Enable sandbox video console using SDL"
410         depends on SANDBOX
411         help
412           When using sandbox you can enable an emulated LCD display which
413           appears as an SDL (Simple DirectMedia Layer) window. This is a
414           console device and can display stdout output. Within U-Boot is is
415           a normal bitmap display and can display images as well as text.
416
417 config VIDEO_TEGRA20
418         bool "Enable LCD support on Tegra20"
419         depends on OF_CONTROL
420         help
421            Tegra20 supports video output to an attached LCD panel as well as
422            other options such as HDMI. Only the LCD is supported in U-Boot.
423            This option enables this support which can be used on devices which
424            have an LCD display connected.
425
426 config VIDEO_TEGRA124
427         bool "Enable video support on Tegra124"
428         depends on DM_VIDEO
429         help
430            Tegra124 supports many video output options including eDP and
431            HDMI. At present only eDP is supported by U-Boot. This option
432            enables this support which can be used on devices which
433            have an eDP display connected.
434
435 source "drivers/video/bridge/Kconfig"
436
437 config VIDEO
438         bool "Enable legacy video support"
439         depends on !DM_VIDEO
440         help
441           Define this for video support, without using driver model. Some
442           drivers use this because they are not yet converted to driver
443           model. Video drivers typically provide a colour text console and
444           cursor.
445
446 config VIDEO_IPUV3
447         bool "i.MX IPUv3 Core video support"
448         depends on VIDEO && MX6
449         help
450           This enables framebuffer driver for i.MX processors working
451           on the IPUv3(Image Processing Unit) internal graphic processor.
452
453 config CFB_CONSOLE
454         bool "Enable colour frame buffer console"
455         depends on VIDEO
456         default y if VIDEO
457         help
458           Enables the colour frame buffer driver. This supports colour
459           output on a bitmap display from an in-memory frame buffer.
460           Several colour devices are supported along with various options to
461           adjust the supported features. The driver is implemented in
462           cfb_console.c
463
464           The following defines are needed (cf. smiLynxEM, i8042)
465                 VIDEO_FB_LITTLE_ENDIAN  graphic memory organisation
466                                         (default big endian)
467                 VIDEO_HW_RECTFILL       graphic chip supports
468                                         rectangle fill (cf. smiLynxEM)
469                 VIDEO_HW_BITBLT         graphic chip supports
470                                         bit-blit (cf. smiLynxEM)
471                 VIDEO_VISIBLE_COLS      visible pixel columns (cols=pitch)
472                 VIDEO_VISIBLE_ROWS      visible pixel rows
473                 VIDEO_PIXEL_SIZE        bytes per pixel
474                 VIDEO_DATA_FORMAT       graphic data format
475                                         (0-5, cf. cfb_console.c)
476                 VIDEO_FB_ADRS           framebuffer address
477                 VIDEO_KBD_INIT_FCT      keyboard int fct (i.e. rx51_kp_init())
478                 VIDEO_TSTC_FCT          test char fct (i.e. rx51_kp_tstc)
479                 VIDEO_GETC_FCT          get char fct (i.e. rx51_kp_getc)
480                 CONFIG_VIDEO_LOGO       display Linux logo in upper left corner
481                 CONFIG_VIDEO_BMP_LOGO   use bmp_logo.h instead of linux_logo.h
482                                         for logo. Requires CONFIG_VIDEO_LOGO
483                 CONFIG_CONSOLE_EXTRA_INFO
484                                         additional board info beside
485                                         the logo
486                 CONFIG_HIDE_LOGO_VERSION
487                                         do not display bootloader
488                                         version string
489
490           When CONFIG_CFB_CONSOLE is defined, the video console is the
491           default console. The serial console can be forced by setting the
492           environment 'console=serial'.
493
494 config CFB_CONSOLE_ANSI
495         bool "Support ANSI escape sequences"
496         depends on CFB_CONSOLE
497         help
498           This allows the colour buffer frame buffer driver to support
499           a limited number of ANSI escape sequences (cursor control,
500           erase functions and limited graphics rendition control). Normal
501           output from U-Boot will pass through this filter.
502
503 config VGA_AS_SINGLE_DEVICE
504         bool "Set the video as an output-only device"
505         depends on CFB_CONSOLE
506         default y
507         help
508           If enable the framebuffer device will be initialized as an
509           output-only device. The Keyboard driver will not be set up. This
510           may be used if you have no keyboard device, or more than one
511           (USB Keyboard, AT Keyboard).
512
513 config VIDEO_SW_CURSOR
514         bool "Enable a software cursor"
515         depends on CFB_CONSOLE
516         default y if CFB_CONSOLE
517         help
518           This draws a cursor after the last character. No blinking is
519           provided. This makes it possible to see the current cursor
520           position when entering text on the console. It is recommended to
521           enable this.
522
523 config CONSOLE_EXTRA_INFO
524         bool "Display additional board information"
525         depends on CFB_CONSOLE
526         help
527           Display additional board information strings that normally go to
528           the serial port. When this option is enabled, a board-specific
529           function video_get_info_str() is called to get the string for
530           each line of the display. The function should return the string,
531           which can be empty if there is nothing to display for that line.
532
533 config CONSOLE_SCROLL_LINES
534         int "Number of lines to scroll the console by"
535         depends on CFB_CONSOLE || DM_VIDEO || LCD
536         default 1
537         help
538           When the console need to be scrolled, this is the number of
539           lines to scroll by. It defaults to 1. Increasing this makes the
540           console jump but can help speed up operation when scrolling
541           is slow.
542
543 config VIDEO_CT69000
544         bool "Enable Chips & Technologies 69000 video driver"
545         depends on VIDEO
546         help
547           This enables a frame buffer driver for the Chips & Technologies
548           ct69000, a fairly old graphics device (circa 2000) which is used
549           on some hardware. It operates over the ISA bus, and supports
550           some acceleration features.
551
552           For the CT69000 and SMI_LYNXEM drivers, videomode is
553                 selected via environment 'videomode'. Two different ways
554                 are possible:
555                 - "videomode=num"   'num' is a standard LiLo mode numbers.
556                 Following standard modes are supported  (* is default):
557
558                       Colors    640x480 800x600 1024x768 1152x864 1280x1024
559                 -------------+---------------------------------------------
560                       8 bits |  0x301*  0x303    0x305    0x161     0x307
561                      15 bits |  0x310   0x313    0x316    0x162     0x319
562                      16 bits |  0x311   0x314    0x317    0x163     0x31A
563                      24 bits |  0x312   0x315    0x318      ?       0x31B
564                 -------------+---------------------------------------------
565                 (i.e. setenv videomode 317; saveenv; reset;)
566
567                 - "videomode=bootargs" all the video parameters are parsed
568                 from the bootargs. (See drivers/video/videomodes.c)
569
570 config SYS_CONSOLE_BG_COL
571         hex "Background colour"
572         depends on CFB_CONSOLE || VIDEO_CT69000
573         default 0x00
574         help
575           Defines the background colour for the console. The value is from
576           0x00 to 0xff and the meaning depends on the graphics card.
577           Typically, 0x00 means black and 0xff means white. Do not set
578           the background and foreground to the same colour or you will see
579           nothing.
580
581 config SYS_CONSOLE_FG_COL
582         hex "Foreground colour"
583         depends on CFB_CONSOLE || VIDEO_CT69000
584         default 0xa0
585         help
586           Defines the foreground colour for the console. The value is from
587           0x00 to 0xff and the meaning depends on the graphics card.
588           Typically, 0x00 means black and 0xff means white. Do not set
589           the background and foreground to the same colour or you will see
590           nothing.
591
592 config LCD
593         bool "Enable legacy LCD support"
594         help
595           Define this to enable LCD support (for output to LCD display).
596           You will also need to select an LCD driver using an additional
597           CONFIG option. See the README for details. Drives which have been
598           converted to driver model will instead used CONFIG_DM_VIDEO.
599
600 endmenu