Convert CONFIG_VGA_AS_SINGLE_DEVICE to Kconfig
[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 CFB_CONSOLE
447         bool "Enable colour frame buffer console"
448         depends on VIDEO
449         default y if VIDEO
450         help
451           Enables the colour frame buffer driver. This supports colour
452           output on a bitmap display from an in-memory frame buffer.
453           Several colour devices are supported along with various options to
454           adjust the supported features. The driver is implemented in
455           cfb_console.c
456
457           The following defines are needed (cf. smiLynxEM, i8042)
458                 VIDEO_FB_LITTLE_ENDIAN  graphic memory organisation
459                                         (default big endian)
460                 VIDEO_HW_RECTFILL       graphic chip supports
461                                         rectangle fill (cf. smiLynxEM)
462                 VIDEO_HW_BITBLT         graphic chip supports
463                                         bit-blit (cf. smiLynxEM)
464                 VIDEO_VISIBLE_COLS      visible pixel columns (cols=pitch)
465                 VIDEO_VISIBLE_ROWS      visible pixel rows
466                 VIDEO_PIXEL_SIZE        bytes per pixel
467                 VIDEO_DATA_FORMAT       graphic data format
468                                         (0-5, cf. cfb_console.c)
469                 VIDEO_FB_ADRS           framebuffer address
470                 VIDEO_KBD_INIT_FCT      keyboard int fct (i.e. rx51_kp_init())
471                 VIDEO_TSTC_FCT          test char fct (i.e. rx51_kp_tstc)
472                 VIDEO_GETC_FCT          get char fct (i.e. rx51_kp_getc)
473                 CONFIG_VIDEO_LOGO       display Linux logo in upper left corner
474                 CONFIG_VIDEO_BMP_LOGO   use bmp_logo.h instead of linux_logo.h
475                                         for logo. Requires CONFIG_VIDEO_LOGO
476                 CONFIG_CONSOLE_EXTRA_INFO
477                                         additional board info beside
478                                         the logo
479                 CONFIG_HIDE_LOGO_VERSION
480                                         do not display bootloader
481                                         version string
482
483           When CONFIG_CFB_CONSOLE is defined, the video console is the
484           default console. The serial console can be forced by setting the
485           environment 'console=serial'.
486
487 config CFB_CONSOLE_ANSI
488         bool "Support ANSI escape sequences"
489         depends on CFB_CONSOLE
490         help
491           This allows the colour buffer frame buffer driver to support
492           a limited number of ANSI escape sequences (cursor control,
493           erase functions and limited graphics rendition control). Normal
494           output from U-Boot will pass through this filter.
495
496 config VGA_AS_SINGLE_DEVICE
497         bool "Set the video as an output-only device"
498         depends on CFB_CONSOLE
499         default y
500         help
501           If enable the framebuffer device will be initialized as an
502           output-only device. The Keyboard driver will not be set up. This
503           may be used if you have no keyboard device, or more than one
504           (USB Keyboard, AT Keyboard).
505
506 config VIDEO_CT69000
507         bool "Enable Chips & Technologies 69000 video driver"
508         depends on VIDEO
509         help
510           This enables a frame buffer driver for the Chips & Technologies
511           ct69000, a fairly old graphics device (circa 2000) which is used
512           on some hardware. It operates over the ISA bus, and supports
513           some acceleration features.
514
515           For the CT69000 and SMI_LYNXEM drivers, videomode is
516                 selected via environment 'videomode'. Two different ways
517                 are possible:
518                 - "videomode=num"   'num' is a standard LiLo mode numbers.
519                 Following standard modes are supported  (* is default):
520
521                       Colors    640x480 800x600 1024x768 1152x864 1280x1024
522                 -------------+---------------------------------------------
523                       8 bits |  0x301*  0x303    0x305    0x161     0x307
524                      15 bits |  0x310   0x313    0x316    0x162     0x319
525                      16 bits |  0x311   0x314    0x317    0x163     0x31A
526                      24 bits |  0x312   0x315    0x318      ?       0x31B
527                 -------------+---------------------------------------------
528                 (i.e. setenv videomode 317; saveenv; reset;)
529
530                 - "videomode=bootargs" all the video parameters are parsed
531                 from the bootargs. (See drivers/video/videomodes.c)
532
533 config SYS_CONSOLE_BG_COL
534         hex "Background colour"
535         depends on CFB_CONSOLE || VIDEO_CT69000
536         default 0x00
537         help
538           Defines the background colour for the console. The value is from
539           0x00 to 0xff and the meaning depends on the graphics card.
540           Typically, 0x00 means black and 0xff means white. Do not set
541           the background and foreground to the same colour or you will see
542           nothing.
543
544 config SYS_CONSOLE_FG_COL
545         hex "Foreground colour"
546         depends on CFB_CONSOLE || VIDEO_CT69000
547         default 0xa0
548         help
549           Defines the foreground colour for the console. The value is from
550           0x00 to 0xff and the meaning depends on the graphics card.
551           Typically, 0x00 means black and 0xff means white. Do not set
552           the background and foreground to the same colour or you will see
553           nothing.
554
555 config LCD
556         bool "Enable legacy LCD support"
557         help
558           Define this to enable LCD support (for output to LCD display).
559           You will also need to select an LCD driver using an additional
560           CONFIG option. See the README for details. Drives which have been
561           converted to driver model will instead used CONFIG_DM_VIDEO.
562
563 endmenu