1#
2# Video configuration
3#
4
5menu "Graphics support"
6
7config 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
17if VIDEO
18
19config VIDEO_FONT_4X6
20	bool "4 x 6 font size"
21	help
22	  Font for video console driver, 4 x 6 pixels.
23	  Provides character bitmap data in header file.
24	  When selecting multiple fonts, you may want to enable CMD_SELECT_FONT too.
25
26config VIDEO_FONT_8X16
27	bool "8 x 16 font size"
28	default y
29	help
30	  Font for video console driver, 8 x 16 pixels
31	  Provides character bitmap data in header file.
32	  When selecting multiple fonts, you may want to enable CMD_SELECT_FONT too.
33
34config VIDEO_FONT_SUN12X22
35	bool "12 x 22 font size"
36	help
37	  Font for video console driver, 12 x 22 pixels
38	  Provides character bitmap data in header file.
39	  When selecting multiple fonts, you may want to enable CMD_SELECT_FONT too.
40
41config VIDEO_FONT_16X32
42	bool "16 x 32 font size"
43	help
44	  Font for video console driver, 16 x 32 pixels
45	  Provides character bitmap data in header file.
46	  When selecting multiple fonts, you may want to enable CMD_SELECT_FONT too.
47
48config VIDEO_LOGO
49	bool "Show the U-Boot logo on the display"
50	default y if !SPLASH_SCREEN
51	select VIDEO_BMP_RLE8
52	help
53	  This enables showing the U-Boot logo on the display when a video
54	  device is probed. It appears at the top right. The logo itself is at
55	  tools/logos/u-boot_logo.bmp and looks best when the display has a
56	  black background.
57
58config BACKLIGHT
59	bool "Enable panel backlight uclass support"
60	default y
61	help
62	  This provides backlight uclass driver that enables basic panel
63	  backlight support.
64
65config VIDEO_PCI_DEFAULT_FB_SIZE
66	hex "Default framebuffer size to use if no drivers request it"
67	default 0x1000000 if X86 && PCI
68	default 0 if !(X86 && PCI)
69	help
70	  Generally, video drivers request the amount of memory they need for
71	  the frame buffer when they are bound, by setting the size field in
72	  struct video_uc_plat. That memory is then reserved for use after
73	  relocation. But PCI drivers cannot be bound before relocation unless
74	  they are mentioned in the devicetree.
75
76	  With this value set appropriately, it is possible for PCI video
77	  devices to have a framebuffer allocated by U-Boot.
78
79	  Note: the framebuffer needs to be large enough to store all pixels at
80	  maximum resolution. For example, at 1920 x 1200 with 32 bits per
81	  pixel, 2560 * 1600 * 32 / 8 = 0xfa0000 bytes are needed.
82
83config VIDEO_COPY
84	bool "Enable copying the frame buffer to a hardware copy"
85	help
86	  On some machines (e.g. x86), reading from the frame buffer is very
87	  slow because it is uncached. To improve performance, this feature
88	  allows the frame buffer to be kept in cached memory (allocated by
89	  U-Boot) and then copied to the hardware frame-buffer as needed.
90
91	  To use this, your video driver must set @copy_base in
92	  struct video_uc_plat.
93
94config BACKLIGHT_PWM
95	bool "Generic PWM based Backlight Driver"
96	depends on BACKLIGHT && DM_PWM
97	default y
98	help
99	  If you have a LCD backlight adjustable by PWM, say Y to enable
100	  this driver.
101	  This driver can be use with "simple-panel" and
102	  it understands the standard device tree
103	  (leds/backlight/pwm-backlight.txt)
104
105config BACKLIGHT_GPIO
106	bool "Generic GPIO based Backlight Driver"
107	depends on BACKLIGHT
108	help
109	  If you have a LCD backlight adjustable by GPIO, say Y to enable
110	  this driver.
111	  This driver can be used with "simple-panel" and
112	  it understands the standard device tree
113	  (leds/backlight/gpio-backlight.txt)
114
115config VIDEO_BPP8
116	bool "Support 8-bit-per-pixel displays"
117	default y
118	help
119	  Support drawing text and bitmaps onto a 8-bit-per-pixel display.
120	  Enabling this will include code to support this display. Without
121	  this option, such displays will not be supported and console output
122	  will be empty.
123
124config VIDEO_BPP16
125	bool "Support 16-bit-per-pixel displays"
126	default y
127	help
128	  Support drawing text and bitmaps onto a 16-bit-per-pixel display.
129	  Enabling this will include code to support this display. Without
130	  this option, such displays will not be supported and console output
131	  will be empty.
132
133config VIDEO_BPP32
134	bool "Support 32-bit-per-pixel displays"
135	default y
136	help
137	  Support drawing text and bitmaps onto a 32-bit-per-pixel display.
138	  Enabling this will include code to support this display. Without
139	  this option, such displays will not be supported and console output
140	  will be empty.
141
142config VIDEO_ANSI
143	bool "Support ANSI escape sequences in video console"
144	default y if EFI_LOADER
145	help
146	  Enable ANSI escape sequence decoding for a more fully functional
147	  console. Functionality includes changing the text colour and moving
148	  the cursor. These date from the 1970s and are still widely used today
149	  to control a text terminal. U-Boot implements these by decoding the
150	  sequences and performing the appropriate operation.
151
152config VIDEO_MIPI_DSI
153	bool "Support MIPI DSI interface"
154	help
155	  Support MIPI DSI interface for driving a MIPI compatible device.
156	  The MIPI Display Serial Interface (MIPI DSI) defines a high-speed
157	  serial interface between a host processor and a display module.
158
159config CONSOLE_NORMAL
160	bool "Support a simple text console"
161	default y
162	help
163	  Support drawing text on the frame buffer console so that it can be
164	  used as a console. Rotation is not supported by this driver (see
165	  CONFIG_CONSOLE_ROTATION for that). A built-in 8x16 font is used
166	  for the display.
167
168config CONSOLE_ROTATION
169	bool "Support rotated displays"
170	help
171	  Sometimes, for example if the display is mounted in portrait
172	  mode or even if it's mounted landscape but rotated by 180degree,
173	  we need to rotate our content of the display relative to the
174	  framebuffer, so that user can read the messages which are
175	  printed out. Enable this option to include a text driver which can
176	  support this. The rotation is set by the 'rot' parameter in
177	  struct video_priv: 0=unrotated, 1=90 degrees clockwise, 2=180
178	  degrees, 3=270 degrees.
179
180config CONSOLE_TRUETYPE
181	bool "Support a console that uses TrueType fonts"
182	select CMD_SELECT_FONT
183	help
184	  TrueTrype fonts can provide outline-drawing capability rather than
185	  needing to provide a bitmap for each font and size that is needed.
186	  With this option you can adjust the text size and use a variety of
187	  fonts. Note that this is noticeably slower than with normal console.
188
189config CONSOLE_TRUETYPE_SIZE
190	int "TrueType font size"
191	depends on CONSOLE_TRUETYPE
192	default 18
193	help
194	  This sets the font size for the console. The size is measured in
195	  pixels and is the nominal height of a character. Note that fonts
196	  are commonly measured in 'points', being 1/72 inch (about 3.52mm).
197	  However that measurement depends on the size of your display and
198	  there is no standard display density. At present there is not a
199	  method to select the display's physical size, which would allow
200	  U-Boot to calculate the correct font size.
201
202config CONSOLE_TRUETYPE_MAX_METRICS
203	int "TrueType maximum number of font / size combinations"
204	depends on CONSOLE_TRUETYPE
205	default 10 if EXPO
206	default 1
207	help
208	  This sets the number of font / size combinations which can be used by
209	  the console. For simple console use a single font is enough. When
210	  boot menus are in use, this may need to be increased.
211
212	  Note that a separate entry is needed for each font size, even if the
213	  font itself is the same. This is because the entry caches various
214	  font metrics which are expensive to regenerate each time the font
215	  size changes.
216
217config SYS_WHITE_ON_BLACK
218	bool "Display console as white on a black background"
219	default y if ARCH_AT91 || ARCH_EXYNOS || ARCH_ROCKCHIP || ARCH_TEGRA || X86 || ARCH_SUNXI
220	help
221	 Normally the display is black on a white background, Enable this
222	 option to invert this, i.e. white on a black background. This can be
223	 better in low-light situations or to reduce eye strain in some
224	 cases.
225
226config NO_FB_CLEAR
227	bool "Skip framebuffer clear"
228	help
229	  If firmware (whatever loads u-boot) has already put a splash image
230	  on screen, you might want to preserve it until whatever u-boot
231	  loads takes over the screen.  This, for example, can be used to
232	  keep splash image on screen until grub graphical boot menu starts.
233
234config PANEL
235	bool "Enable panel uclass support"
236	default y
237	help
238	  This provides panel uclass driver that enables basic panel support.
239
240config SIMPLE_PANEL
241	bool "Enable simple panel support"
242	depends on PANEL && BACKLIGHT && DM_GPIO
243	default y
244	help
245	  This turns on a simple panel driver that enables a compatible
246	  video panel.
247
248config PANEL_HX8238D
249	bool "Enable Himax HX-8238D LCD driver"
250	depends on PANEL
251	help
252	  Support for HX-8238D LCD Panel
253	  The  HX8238-D is a single chip controller and driver LSI that
254	  integrates the power circuit.
255	  It can drive a maximum 960x240 dot graphics on a-TFT panel
256	  displays in 16M colors with dithering.
257
258source "drivers/video/fonts/Kconfig"
259
260config VIDCONSOLE_AS_LCD
261	bool "Use 'vidconsole' when CONFIG_VIDCONSOLE_AS_NAME string is seen in stdout"
262	help
263	  This is a work-around for boards which have 'lcd' or 'vga' in their
264	  stdout environment variable, but have moved to use driver model for
265	  video. In this case the console will no-longer work. While it is
266	  possible to update the environment, the breakage may be confusing for
267	  users. This option will be removed around the end of 2020.
268
269config VIDCONSOLE_AS_NAME
270	string "Use 'vidconsole' when string defined here is seen in stdout"
271	depends on VIDCONSOLE_AS_LCD
272	default "lcd" if LCD || TEGRA_COMMON
273	default "vga" if !LCD
274	help
275	  This is a work-around for boards which have 'lcd' or 'vga' in their
276	  stdout environment variable, but have moved to use driver model for
277	  video. In this case the console will no-longer work. While it is
278	  possible to update the environment, the breakage may be confusing for
279	  users. This option will be removed around the end of 2020.
280
281config VIDEO_COREBOOT
282	bool "Enable coreboot framebuffer driver support"
283	depends on X86
284	help
285	  Turn on this option to enable a framebuffer driver when U-Boot is
286	  loaded by coreboot where the graphics device is configured by
287	  coreboot already. This can in principle be used with any platform
288	  that coreboot supports.
289
290config VIDEO_EFI
291	bool "Enable EFI framebuffer driver support"
292	depends on EFI_STUB || EFI_APP
293	help
294	  Turn on this option to enable a framebuffeer driver when U-Boot is
295	  loaded as a payload (see README.u-boot_on_efi) by an EFI BIOS where
296	  the graphics device is configured by the EFI BIOS already. This can
297	  in principle be used with any platform that has an EFI BIOS.
298
299config VIDEO_VESA
300	bool "Enable VESA video driver support"
301	help
302	  Turn on this option to enable a very simple driver which uses vesa
303	  to discover the video mode and then provides a frame buffer for use
304	  by U-Boot. This can in principle be used with any platform that
305	  supports PCI and video cards that support VESA BIOS Extension (VBE).
306
307config FRAMEBUFFER_SET_VESA_MODE
308	bool "Set framebuffer graphics resolution"
309	depends on VIDEO_VESA || VIDEO_BROADWELL_IGD
310	help
311	  Set VESA/native framebuffer mode (needed for bootsplash and graphical
312	  framebuffer console)
313
314choice
315	prompt "framebuffer graphics resolution"
316	default FRAMEBUFFER_VESA_MODE_118
317	depends on FRAMEBUFFER_SET_VESA_MODE
318	help
319	  This option sets the resolution used for the U-Boot framebuffer (and
320	  bootsplash screen).
321
322config FRAMEBUFFER_VESA_MODE_100
323	bool "640x400 256-color"
324
325config FRAMEBUFFER_VESA_MODE_101
326	bool "640x480 256-color"
327
328config FRAMEBUFFER_VESA_MODE_102
329	bool "800x600 16-color"
330
331config FRAMEBUFFER_VESA_MODE_103
332	bool "800x600 256-color"
333
334config FRAMEBUFFER_VESA_MODE_104
335	bool "1024x768 16-color"
336
337config FRAMEBUFFER_VESA_MODE_105
338	bool "1024x768 256-color"
339
340config FRAMEBUFFER_VESA_MODE_106
341	bool "1280x1024 16-color"
342
343config FRAMEBUFFER_VESA_MODE_107
344	bool "1280x1024 256-color"
345
346config FRAMEBUFFER_VESA_MODE_108
347	bool "80x60 text"
348
349config FRAMEBUFFER_VESA_MODE_109
350	bool "132x25 text"
351
352config FRAMEBUFFER_VESA_MODE_10A
353	bool "132x43 text"
354
355config FRAMEBUFFER_VESA_MODE_10B
356	bool "132x50 text"
357
358config FRAMEBUFFER_VESA_MODE_10C
359	bool "132x60 text"
360
361config FRAMEBUFFER_VESA_MODE_10D
362	bool "320x200 32k-color (1:5:5:5)"
363
364config FRAMEBUFFER_VESA_MODE_10E
365	bool "320x200 64k-color (5:6:5)"
366
367config FRAMEBUFFER_VESA_MODE_10F
368	bool "320x200 16.8M-color (8:8:8)"
369
370config FRAMEBUFFER_VESA_MODE_110
371	bool "640x480 32k-color (1:5:5:5)"
372
373config FRAMEBUFFER_VESA_MODE_111
374	bool "640x480 64k-color (5:6:5)"
375
376config FRAMEBUFFER_VESA_MODE_112
377	bool "640x480 16.8M-color (8:8:8)"
378
379config FRAMEBUFFER_VESA_MODE_113
380	bool "800x600 32k-color (1:5:5:5)"
381
382config FRAMEBUFFER_VESA_MODE_114
383	bool "800x600 64k-color (5:6:5)"
384
385config FRAMEBUFFER_VESA_MODE_115
386	bool "800x600 16.8M-color (8:8:8)"
387
388config FRAMEBUFFER_VESA_MODE_116
389	bool "1024x768 32k-color (1:5:5:5)"
390
391config FRAMEBUFFER_VESA_MODE_117
392	bool "1024x768 64k-color (5:6:5)"
393
394config FRAMEBUFFER_VESA_MODE_118
395	bool "1024x768 16.8M-color (8:8:8)"
396
397config FRAMEBUFFER_VESA_MODE_119
398	bool "1280x1024 32k-color (1:5:5:5)"
399
400config FRAMEBUFFER_VESA_MODE_11A
401	bool "1280x1024 64k-color (5:6:5)"
402
403config FRAMEBUFFER_VESA_MODE_11B
404	bool "1280x1024 16.8M-color (8:8:8)"
405
406config FRAMEBUFFER_VESA_MODE_USER
407	bool "Manually select VESA mode"
408
409endchoice
410
411# Map the config names to an integer (KB).
412config FRAMEBUFFER_VESA_MODE
413	prompt "VESA mode" if FRAMEBUFFER_VESA_MODE_USER
414	hex
415	default 0x100 if FRAMEBUFFER_VESA_MODE_100
416	default 0x101 if FRAMEBUFFER_VESA_MODE_101
417	default 0x102 if FRAMEBUFFER_VESA_MODE_102
418	default 0x103 if FRAMEBUFFER_VESA_MODE_103
419	default 0x104 if FRAMEBUFFER_VESA_MODE_104
420	default 0x105 if FRAMEBUFFER_VESA_MODE_105
421	default 0x106 if FRAMEBUFFER_VESA_MODE_106
422	default 0x107 if FRAMEBUFFER_VESA_MODE_107
423	default 0x108 if FRAMEBUFFER_VESA_MODE_108
424	default 0x109 if FRAMEBUFFER_VESA_MODE_109
425	default 0x10A if FRAMEBUFFER_VESA_MODE_10A
426	default 0x10B if FRAMEBUFFER_VESA_MODE_10B
427	default 0x10C if FRAMEBUFFER_VESA_MODE_10C
428	default 0x10D if FRAMEBUFFER_VESA_MODE_10D
429	default 0x10E if FRAMEBUFFER_VESA_MODE_10E
430	default 0x10F if FRAMEBUFFER_VESA_MODE_10F
431	default 0x110 if FRAMEBUFFER_VESA_MODE_110
432	default 0x111 if FRAMEBUFFER_VESA_MODE_111
433	default 0x112 if FRAMEBUFFER_VESA_MODE_112
434	default 0x113 if FRAMEBUFFER_VESA_MODE_113
435	default 0x114 if FRAMEBUFFER_VESA_MODE_114
436	default 0x115 if FRAMEBUFFER_VESA_MODE_115
437	default 0x116 if FRAMEBUFFER_VESA_MODE_116
438	default 0x117 if FRAMEBUFFER_VESA_MODE_117
439	default 0x118 if FRAMEBUFFER_VESA_MODE_118
440	default 0x119 if FRAMEBUFFER_VESA_MODE_119
441	default 0x11A if FRAMEBUFFER_VESA_MODE_11A
442	default 0x11B if FRAMEBUFFER_VESA_MODE_11B
443	default 0x117 if FRAMEBUFFER_VESA_MODE_USER
444
445config VIDEO_LCD_ANX9804
446	bool "ANX9804 bridge chip"
447	---help---
448	Support for the ANX9804 bridge chip, which can take pixel data coming
449	from a parallel LCD interface and translate it on the fy into a DP
450	interface for driving eDP TFT displays. It uses I2C for configuration.
451
452config ATMEL_LCD
453	bool "Atmel LCD panel support"
454	depends on ARCH_AT91
455
456config ATMEL_LCD_BGR555
457	bool "Display in BGR555 mode"
458	help
459	  Use the BGR555 output mode.  Otherwise RGB565 is used.
460
461config VIDEO_BCM2835
462	bool "Display support for BCM2835"
463	help
464	  The graphics processor already sets up the display so this driver
465	  simply checks the resolution and then sets up the frame buffer with
466	  that same resolution (or as near as possible) and 32bpp depth, so
467	  that U-Boot can access it with full colour depth.
468
469config VIDEO_LCD_ENDEAVORU
470	tristate "Endeavoru 720x1280 DSI video mode panel"
471	depends on PANEL && BACKLIGHT
472	select VIDEO_MIPI_DSI
473	help
474	  Say Y here if you want to enable support for the IPS-LCD panel
475	  module for HTC One X. Driver supports a family of panels,
476	  made at least by 3 vendors (Sharp, Sony and AUO), but set up
477	  using the same DSI command sequence. The panel has a 720x1280
478	  resolution and uses 24 bit RGB per pixel.
479
480config VIDEO_LCD_ORISETECH_OTM8009A
481	bool "OTM8009A DSI LCD panel support"
482	select VIDEO_MIPI_DSI
483	help
484	Say Y here if you want to enable support for Orise Technology
485	otm8009a 480x800 dsi 2dl panel.
486
487config VIDEO_LCD_RAYDIUM_RM68200
488	bool "RM68200 DSI LCD panel support"
489	select VIDEO_MIPI_DSI
490	help
491	Say Y here if you want to enable support for Raydium RM68200
492	720x1280 DSI video mode panel.
493
494config VIDEO_LCD_RENESAS_R61307
495	tristate "Renesas R61307 DSI video mode panel"
496	depends on PANEL && BACKLIGHT
497	select VIDEO_MIPI_DSI
498	help
499	  Say Y here if you want to enable support for KOE tx13d100vm0eaa
500	  IPS-LCD module with Renesas R69328 IC. The panel has a 1024x768
501	  resolution and uses 24 bit RGB per pixel.
502
503config VIDEO_LCD_RENESAS_R69328
504	tristate "Renesas R69328 720x1280 DSI video mode panel"
505	depends on PANEL && BACKLIGHT
506	select VIDEO_MIPI_DSI
507	help
508	  Say Y here if you want to enable support for JDI dx12d100vm0eaa
509	  IPS-LCD module with Renesas R69328 IC. The panel has a 720x1280
510	  resolution and uses 24 bit RGB per pixel.
511
512config VIDEO_LCD_SSD2828
513	bool "SSD2828 bridge chip"
514	---help---
515	Support for the SSD2828 bridge chip, which can take pixel data coming
516	from a parallel LCD interface and translate it on the fly into MIPI DSI
517	interface for driving a MIPI compatible LCD panel. It uses SPI for
518	configuration.
519
520config VIDEO_LCD_SSD2828_TX_CLK
521	int "SSD2828 TX_CLK frequency (in MHz)"
522	depends on VIDEO_LCD_SSD2828
523	default 0
524	---help---
525	The frequency of the crystal, which is clocking SSD2828. It may be
526	anything in the 8MHz-30MHz range and the exact value should be
527	retrieved from the board schematics. Or in the case of Allwinner
528	hardware, it can be usually found as 'lcd_xtal_freq' variable in
529	FEX files. It can be also set to 0 for selecting PCLK from the
530	parallel LCD interface instead of TX_CLK as the PLL clock source.
531
532config VIDEO_LCD_SSD2828_RESET
533	string "RESET pin of SSD2828"
534	depends on VIDEO_LCD_SSD2828
535	default ""
536	---help---
537	The reset pin of SSD2828 chip. This takes a string in the format
538	understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H.
539
540config VIDEO_LCD_TDO_TL070WSH30
541	bool "TDO TL070WSH30 DSI LCD panel support"
542	select VIDEO_MIPI_DSI
543	help
544	Say Y here if you want to enable support for TDO TL070WSH30
545	1024x600 DSI video mode panel.
546
547config VIDEO_LCD_HITACHI_TX18D42VM
548	bool "Hitachi tx18d42vm LVDS LCD panel support"
549	---help---
550	Support for Hitachi tx18d42vm LVDS LCD panels, these panels have a
551	lcd controller which needs to be initialized over SPI, once that is
552	done they work like a regular LVDS panel.
553
554config VIDEO_LCD_SPI_CS
555	string "SPI CS pin for LCD related config job"
556	depends on VIDEO_LCD_SSD2828 || VIDEO_LCD_HITACHI_TX18D42VM
557	default ""
558	---help---
559	This is one of the SPI communication pins, involved in setting up a
560	working LCD configuration. The exact role of SPI may differ for
561	different hardware setups. The option takes a string in the format
562	understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H.
563
564config VIDEO_LCD_SPI_SCLK
565	string "SPI SCLK pin for LCD related config job"
566	depends on VIDEO_LCD_SSD2828 || VIDEO_LCD_HITACHI_TX18D42VM
567	default ""
568	---help---
569	This is one of the SPI communication pins, involved in setting up a
570	working LCD configuration. The exact role of SPI may differ for
571	different hardware setups. The option takes a string in the format
572	understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H.
573
574config VIDEO_LCD_SPI_MOSI
575	string "SPI MOSI pin for LCD related config job"
576	depends on VIDEO_LCD_SSD2828 || VIDEO_LCD_HITACHI_TX18D42VM
577	default ""
578	---help---
579	This is one of the SPI communication pins, involved in setting up a
580	working LCD configuration. The exact role of SPI may differ for
581	different hardware setups. The option takes a string in the format
582	understood by 'sunxi_name_to_gpio' function, e.g. PH1 for pin 1 of port H.
583
584config VIDEO_LCD_SPI_MISO
585	string "SPI MISO pin for LCD related config job (optional)"
586	depends on VIDEO_LCD_SSD2828
587	default ""
588	---help---
589	This is one of the SPI communication pins, involved in setting up a
590	working LCD configuration. The exact role of SPI may differ for
591	different hardware setups. If wired up, this pin may provide additional
592	useful functionality. Such as bi-directional communication with the
593	hardware and LCD panel id retrieval (if the panel can report it). The
594	option takes a string in the format understood by 'sunxi_name_to_gpio'
595	function, e.g. PH1 for pin 1 of port H.
596
597source "drivers/video/meson/Kconfig"
598
599config VIDEO_MVEBU
600	bool "Armada XP LCD controller"
601	---help---
602	Support for the LCD controller integrated in the Marvell
603	Armada XP SoC.
604
605config VIDEO_OMAP3
606	bool "Enable OMAP3+ DSS Support"
607	depends on ARCH_OMAP2PLUS
608	help
609	  This enables the Display subsystem (DSS) on OMAP3+ boards.
610
611config I2C_EDID
612	bool "Enable EDID library"
613	help
614	   This enables library for accessing EDID data from an LCD panel.
615
616config DISPLAY
617	bool "Enable Display support"
618	depends on DM
619	select I2C_EDID
620	help
621	   This supports drivers that provide a display, such as eDP (Embedded
622	   DisplayPort) and HDMI (High Definition Multimedia Interface).
623	   The devices provide a simple interface to start up the display,
624	   read display information and enable it.
625
626config NXP_TDA19988
627	bool "Enable NXP TDA19988 support"
628	depends on DISPLAY
629	help
630	  This enables support for the NXP TDA19988 HDMI encoder. This encoder
631	  will convert RGB data streams into HDMI-encoded signals.
632
633config ATMEL_HLCD
634	bool "Enable ATMEL video support using HLCDC"
635	help
636	   HLCDC supports video output to an attached LCD panel.
637
638config BACKLIGHT_LM3533
639	bool "Backlight Driver for LM3533"
640	depends on BACKLIGHT
641	select DM_I2C
642	help
643	  Say Y to enable the backlight driver for National Semiconductor / TI
644	  LM3533 Lighting Power chip. Only Bank A is supported as for now.
645	  Supported backlight level range is from 2 to 255 with step of 1.
646
647source "drivers/video/ti/Kconfig"
648
649source "drivers/video/exynos/Kconfig"
650
651config LOGICORE_DP_TX
652	bool "Enable Logicore DP TX driver"
653	depends on DISPLAY
654	help
655	  Enable the driver for the transmitter part of the Xilinx LogiCORE
656	  DisplayPort, a IP core for Xilinx FPGAs that implements a DisplayPort
657	  video interface as defined by VESA DisplayPort v1.2.
658
659	  Note that this is a pure transmitter device, and has no display
660	  capabilities by itself.
661
662config VIDEO_BROADWELL_IGD
663	bool "Enable Intel Broadwell integrated graphics device"
664	depends on X86
665	help
666	  This enables support for integrated graphics on Intel broadwell
667	  devices. Initialisation is mostly performed by a VGA boot ROM, with
668	  some setup handled by U-Boot itself. The graphics adaptor works as
669	  a VESA device and supports LCD panels, eDP and LVDS outputs.
670	  Configuration of most aspects of device operation is performed using
671	  a special tool which configures the VGA ROM, but the graphics
672	  resolution can be selected in U-Boot.
673
674config VIDEO_IVYBRIDGE_IGD
675	bool "Enable Intel Ivybridge integration graphics support"
676	depends on X86
677	help
678	  This enables support for integrated graphics on Intel ivybridge
679	  devices. Initialisation is mostly performed by a VGA boot ROM, with
680	  some setup handled by U-Boot itself. The graphics adaptor works as
681	  a VESA device and supports LCD panels, eDP and LVDS outputs.
682	  Configuration of most aspects of device operation is performed using
683	  a special tool which configures the VGA ROM, but the graphics
684	  resolution can be selected in U-Boot.
685
686source "drivers/video/rockchip/Kconfig"
687
688config VIDEO_ARM_MALIDP
689	bool "Enable Arm Mali Display Processor support"
690	depends on OF_CONTROL
691	select VEXPRESS_CLK
692	help
693	  This enables support for Arm Ltd Mali Display Processors from
694	  the DP500, DP550 and DP650 family.
695
696config VIDEO_SANDBOX_SDL
697	bool "Enable sandbox video console using SDL"
698	depends on SANDBOX_SDL
699	help
700	  When using sandbox you can enable an emulated LCD display which
701	  appears as an SDL (Simple DirectMedia Layer) window. This is a
702	  console device and can display stdout output. Within U-Boot is is
703	  a normal bitmap display and can display images as well as text.
704
705source "drivers/video/stm32/Kconfig"
706
707source "drivers/video/tidss/Kconfig"
708
709config VIDEO_TEGRA124
710	bool "Enable video support on Tegra124"
711	help
712	   Tegra124 supports many video output options including eDP and
713	   HDMI. At present only eDP is supported by U-Boot. This option
714	   enables this support which can be used on devices which
715	   have an eDP display connected.
716
717source "drivers/video/bridge/Kconfig"
718
719source "drivers/video/tegra20/Kconfig"
720
721source "drivers/video/imx/Kconfig"
722
723config VIDEO_MXS
724	bool "Enable video support on i.MX28/i.MX6UL/i.MX7 SoCs"
725	help
726	  Enable framebuffer driver for i.MX28/i.MX6UL/i.MX7 processors
727
728config VIDEO_NX
729	bool "Enable video support on Nexell SoC"
730	depends on ARCH_S5P6818 || ARCH_S5P4418
731	help
732	   Nexell SoC supports many video output options including eDP and
733	   HDMI. This option enables this support which can be used on devices
734	   which have an eDP display connected.
735
736config VIDEO_SEPS525
737	bool "Enable video support for Seps525"
738	depends on DM_GPIO
739	help
740	  Enable support for the Syncoam PM-OLED display driver (RGB 160x128).
741	  Currently driver is supporting only SPI interface.
742
743config VIDEO_ZYNQMP_DPSUB
744	bool "Enable video support for ZynqMP Display Port"
745	depends on ZYNQMP_POWER_DOMAIN
746	help
747	  Enable support for Xilinx ZynqMP Display Port. Currently this file
748	  is used as placeholder for driver. The main reason is to record
749	  compatible string and calling power domain driver.
750
751source "drivers/video/nexell/Kconfig"
752
753config CONSOLE_SCROLL_LINES
754	int "Number of lines to scroll the console by"
755	default 1
756	help
757	  When the console need to be scrolled, this is the number of
758	  lines to scroll by. It defaults to 1. Increasing this makes the
759	  console jump but can help speed up operation when scrolling
760	  is slow.
761
762config VIDEO_DW_HDMI
763	bool
764	help
765	  Enables the common driver code for the Designware HDMI TX
766	  block found in SoCs from various vendors.
767	  As this does not provide any functionality by itself (but
768	  rather requires a SoC-specific glue driver to call it), it
769	  can not be enabled from the configuration menu.
770
771config VIDEO_DSI_HOST_SANDBOX
772	bool "Enable sandbox for dsi host"
773	depends on SANDBOX
774	select VIDEO_MIPI_DSI
775	help
776	  Enable support for sandbox dsi host device used for testing
777	  purposes.
778	  Display Serial Interface (DSI) defines a serial bus and
779	  a communication protocol between the host and the device
780	  (panel, bridge).
781
782config VIDEO_DW_MIPI_DSI
783	bool
784	select VIDEO_MIPI_DSI
785	help
786	  Enables the common driver code for the Synopsis Designware
787	  MIPI DSI block found in SoCs from various vendors.
788	  As this does not provide any functionality by itself (but
789	  rather requires a SoC-specific glue driver to call it), it
790	  can not be enabled from the configuration menu.
791
792config VIDEO_SIMPLE
793	bool "Simple display driver for preconfigured display"
794	help
795	  Enables a simple generic display driver which utilizes the
796	  simple-framebuffer devicetree bindings.
797
798	  This driver assumes that the display hardware has been initialized
799	  before u-boot starts, and u-boot will simply render to the pre-
800	  allocated frame buffer surface.
801
802config VIDEO_DT_SIMPLEFB
803	bool "Enable SimpleFB support for passing framebuffer to OS"
804	help
805	  Enables the code to pass the framebuffer to the kernel as a
806	  simple framebuffer in the device tree.
807	  The video output is initialized by U-Boot, and kept by the
808	  kernel.
809
810config VIDEO_MCDE_SIMPLE
811	bool "Simple driver for ST-Ericsson MCDE with preconfigured display"
812	help
813	  Enables a simple display driver for ST-Ericsson MCDE
814	  (Multichannel Display Engine), which reads the configuration from
815	  the MCDE registers.
816
817	  This driver assumes that the display hardware has been initialized
818	  before u-boot starts, and u-boot will simply render to the pre-
819	  allocated frame buffer surface.
820
821config OSD
822	bool "Enable OSD support"
823	depends on DM
824	help
825	   This supports drivers that provide a OSD (on-screen display), which
826	   is a (usually text-oriented) graphics buffer to show information on
827	   a display.
828
829config SANDBOX_OSD
830	bool "Enable sandbox OSD"
831	depends on OSD
832	help
833	  Enable support for sandbox OSD device used for testing purposes.
834
835config IHS_VIDEO_OUT
836	bool "Enable IHS video out driver"
837	depends on OSD
838	help
839	  Enable support for the gdsys Integrated Hardware Systems (IHS) video
840	  out On-screen Display (OSD) used on gdsys FPGAs to control dynamic
841	  textual overlays of the display outputs.
842
843config SPLASH_SCREEN
844	bool "Show a splash-screen image"
845	help
846	  If this option is set, the environment is checked for a variable
847	  "splashimage". If found, the usual display of logo, copyright and
848	  system information on the LCD is suppressed and the BMP image at the
849	  address specified in "splashimage" is loaded instead. The console is
850	  redirected to the "nulldev", too. This allows for a "silent" boot
851	  where a splash screen is loaded very quickly after power-on.
852
853	  The splash_screen_prepare() function is a weak function defined in
854	  common/splash.c. It is called as part of the splash screen display
855	  sequence. It gives the board an opportunity to prepare the splash
856	  image data before it is processed and sent to the frame buffer by
857	  U-Boot. Define your own version to use this feature.
858
859if SPLASH_SCREEN
860
861config SPLASH_SCREEN_ALIGN
862	bool "Allow positioning the splash image anywhere on the display"
863	help
864	  If this option is set the splash image can be freely positioned
865	  on the screen. Environment variable "splashpos" specifies the
866	  position as "x,y". If a positive number is given it is used as
867	  number of pixel from left/top. If a negative number is given it
868	  is used as number of pixel from right/bottom. You can also
869	  specify 'm' for centering the image.
870
871	  Example:
872	  setenv splashpos m,m
873	  	=> image at center of screen
874
875	  setenv splashpos 30,20
876	  	=> image at x = 30 and y = 20
877
878	  setenv splashpos -10,m
879	  	=> vertically centered image
880	  	   at x = dspWidth - bmpWidth - 9
881
882config HIDE_LOGO_VERSION
883	bool "Hide the version information on the splash screen"
884	help
885	  Normally the U-Boot version string is shown on the display when the
886	  splash screen is enabled. This information is not otherwise visible
887	  since video starts up after U-Boot has displayed the initial banner.
888
889	  Enable this option to hide this information.
890
891config SPLASH_SOURCE
892	bool "Control the source of the splash image"
893	help
894	  Use the splash_source.c library. This library provides facilities to
895	  declare board specific splash image locations, routines for loading
896	  splash image from supported locations, and a way of controlling the
897	  selected splash location using the "splashsource" environment
898	  variable.
899
900	  This CONFIG works as follows:
901
902	  - If splashsource is set to a supported location name as defined by
903	    board code, use that splash location.
904	  - If splashsource is undefined, use the first splash location as
905	    default.
906	  - If splashsource is set to an unsupported value, do not load a splash
907	    screen.
908
909	  A splash source location can describe either storage with raw data, a
910	  storage formatted with a file system or a FIT image. In case of a
911	  filesystem, the splash screen data is loaded as a file. The name of
912	  the splash screen file can be controlled with the environment variable
913	  "splashfile".
914
915	  To enable loading the splash image from a FIT image, CONFIG_FIT must
916	  be enabled. The FIT image has to start at the 'offset' field address
917	  in the selected splash location. The name of splash image within the
918	  FIT shall be specified by the environment variable "splashfile".
919
920	  In case the environment variable "splashfile" is not defined the
921	  default name 'splash.bmp' will be used.
922
923endif # SPLASH_SCREEN
924
925config VIDEO_BMP_GZIP
926	bool "Gzip compressed BMP image support"
927	depends on BMP || SPLASH_SCREEN
928	help
929	  If this option is set, additionally to standard BMP
930	  images, gzipped BMP images can be displayed via the
931	  splashscreen support or the bmp command.
932
933config VIDEO_LOGO_MAX_SIZE
934	hex "Maximum size of the bitmap logo in bytes"
935	default 0x100000
936	help
937	  Sets the maximum uncompressed size of the logo. This is needed when
938	  decompressing a BMP file using the gzip algorithm, since it cannot
939	  read the size from the bitmap header.
940
941config VIDEO_BMP_RLE8
942	bool "Run length encoded BMP image (RLE8) support"
943	help
944	  If this option is set, the 8-bit RLE compressed BMP images
945	  is supported.
946
947config BMP_16BPP
948	bool "16-bit-per-pixel BMP image support"
949	help
950	  Support display of bitmaps file with 16-bit-per-pixel
951
952config BMP_24BPP
953	bool "24-bit-per-pixel BMP image support"
954	help
955	  Support display of bitmaps file with 24-bit-per-pixel.
956
957config BMP_32BPP
958	bool "32-bit-per-pixel BMP image support"
959	help
960	  Support display of bitmaps file with 32-bit-per-pixel.
961
962endif # VIDEO
963
964config SPL_VIDEO
965	bool "Enable driver model support for LCD/video in SPL"
966	depends on SPL_DM
967	help
968	  The video subsystem adds a small amount of overhead to the image.
969	  If this is acceptable and you have a need to use video drivers in
970	  SPL, enable this option. It might provide a cleaner interface to
971	  setting up video within SPL, and allows the same drivers to be
972	  used as U-Boot proper.
973
974if SPL_VIDEO
975source "drivers/video/tidss/Kconfig"
976
977config SPL_VIDEO_LOGO
978	bool "Show the U-Boot logo on the display at SPL"
979	default y if !SPL_SPLASH_SCREEN
980	select SPL_VIDEO_BMP_RLE8
981	help
982	  This enables showing the U-Boot logo on the display when a video
983	  device is probed. It appears at the top right. The logo itself is at
984	  tools/logos/u-boot_logo.bmp and looks best when the display has a
985	  black background.
986
987config SPL_SPLASH_SCREEN
988	bool "Show a splash-screen image at SPL"
989	help
990	  If this option is set, the environment is checked for a variable
991	  "splashimage" at spl stage.
992
993config SPL_SYS_WHITE_ON_BLACK
994	bool "Display console as white on a black background at SPL"
995	help
996	 Normally the display is black on a white background, Enable this
997	 option to invert this, i.e. white on a black background at spl stage.
998	 This can be better in low-light situations or to reduce eye strain in
999	 some cases.
1000
1001config SPL_VIDEO_PCI_DEFAULT_FB_SIZE
1002	hex "Default framebuffer size to use if no drivers request it at SPL"
1003	default 0x1000000 if X86 && PCI
1004	default 0 if !(X86 && PCI)
1005	help
1006	  Generally, video drivers request the amount of memory they need for
1007	  the frame buffer when they are bound, by setting the size field in
1008	  struct video_uc_plat. That memory is then reserved for use after
1009	  relocation. But PCI drivers cannot be bound before relocation unless
1010	  they are mentioned in the devicetree.
1011
1012	  With this value set appropriately, it is possible for PCI video
1013	  devices to have a framebuffer allocated by U-Boot.
1014
1015	  Note: the framebuffer needs to be large enough to store all pixels at
1016	  maximum resolution. For example, at 1920 x 1200 with 32 bits per
1017	  pixel, 2560 * 1600 * 32 / 8 = 0xfa0000 bytes are needed.
1018
1019config SPL_CONSOLE_SCROLL_LINES
1020	int "Number of lines to scroll the console by at SPL"
1021	default 1
1022	help
1023	  When the console need to be scrolled, this is the number of
1024	  lines to scroll by. It defaults to 1. Increasing this makes the
1025	  console jump but can help speed up operation when scrolling
1026	  is slow.
1027
1028config SPL_CONSOLE_NORMAL
1029	bool "Support a simple text console at SPL"
1030	default y
1031	help
1032	  Support drawing text on the frame buffer console so that it can be
1033	  used as a console. Rotation is not supported by this driver (see
1034	  CONFIG_CONSOLE_ROTATION for that). A built-in 8x16 font is used
1035	  for the display.
1036
1037config SPL_BACKLIGHT
1038	bool "Enable panel backlight uclass support at SPL"
1039	default y
1040	help
1041	  This provides backlight uclass driver that enables basic panel
1042	  backlight support.
1043
1044config SPL_PANEL
1045	bool "Enable panel uclass support at SPL"
1046	default y
1047	help
1048	  This provides panel uclass driver that enables basic panel support.
1049
1050config SPL_SIMPLE_PANEL
1051	bool "Enable simple panel support at SPL"
1052	depends on SPL_PANEL && SPL_BACKLIGHT && SPL_DM_GPIO
1053	default y
1054	help
1055	  This turns on a simple panel driver that enables a compatible
1056	  video panel.
1057
1058config SPL_SYS_WHITE_ON_BLACK
1059	bool "Display console as white on a black background at SPL"
1060	help
1061	 Normally the display is black on a white background, Enable this
1062	 option to invert this, i.e. white on a black background at spl stage.
1063	 This can be better in low-light situations or to reduce eye strain in
1064	 some cases.
1065
1066if SPL_SPLASH_SCREEN
1067
1068config SPL_SPLASH_SCREEN_ALIGN
1069	bool "Allow positioning the splash image anywhere on the display at SPL"
1070	help
1071	  If this option is set the splash image can be freely positioned
1072	  on the screen only at SPL. Environment variable "splashpos" specifies
1073	  the position as "x,y". If a positive number is given it is used as
1074	  number of pixel from left/top. If a negative number is given it
1075	  is used as number of pixel from right/bottom.
1076
1077config SPL_SPLASH_SOURCE
1078	bool "Control the source of the splash image at SPL"
1079	help
1080	  Use the splash_source.c library. This library provides facilities to
1081	  declare board specific splash image locations, routines for loading
1082	  splash image from supported locations, and a way of controlling the
1083	  selected splash location using the "splashsource" environment
1084	  variable.
1085
1086	  This CONFIG works as follows:
1087
1088	  - If splashsource is set to a supported location name as defined by
1089	    board code, use that splash location.
1090	  - If splashsource is undefined, use the first splash location as
1091	    default.
1092	  - If splashsource is set to an unsupported value, do not load a splash
1093	    screen.
1094
1095	  A splash source location can describe either storage with raw data, a
1096	  storage formatted with a file system or a FIT image. In case of a
1097	  filesystem, the splash screen data is loaded as a file. The name of
1098	  the splash screen file can be controlled with the environment variable
1099	  "splashfile".
1100
1101	  To enable loading the splash image from a FIT image, CONFIG_FIT must
1102	  be enabled. The FIT image has to start at the 'offset' field address
1103	  in the selected splash location. The name of splash image within the
1104	  FIT shall be specified by the environment variable "splashfile".
1105
1106	  In case the environment variable "splashfile" is not defined the
1107	  default name 'splash.bmp' will be used.
1108
1109endif # SPL_SPLASH_SCREEN
1110
1111config SPL_VIDEO_BMP_GZIP
1112	bool "Gzip compressed BMP image support at SPL"
1113	depends on SPL_SPLASH_SCREEN || SPL_BMP
1114	help
1115	  If this option is set, additionally to standard BMP
1116	  images, gzipped BMP images can be displayed via the
1117	  splashscreen supportat SPL stage.
1118
1119config SPL_VIDEO_LOGO_MAX_SIZE
1120	hex "Maximum size of the bitmap logo in bytes at SPL"
1121	default 0x100000
1122	help
1123	  Sets the maximum uncompressed size of the logo. This is needed when
1124	  decompressing a BMP file using the gzip algorithm, since it cannot
1125	  read the size from the bitmap header.
1126
1127config SPL_VIDEO_BMP_RLE8
1128	bool "Run length encoded BMP image (RLE8) support at SPL"
1129	help
1130	  If this option is set, the 8-bit RLE compressed BMP images
1131	  is supported.
1132
1133config SPL_BMP_16BPP
1134	bool "16-bit-per-pixel BMP image support at SPL"
1135	help
1136	  Support display of bitmaps file with 16-bit-per-pixel
1137
1138config SPL_BMP_24BPP
1139	bool "24-bit-per-pixel BMP image support at SPL"
1140	help
1141	  Support display of bitmaps file with 24-bit-per-pixel.
1142
1143config SPL_BMP_32BPP
1144	bool "32-bit-per-pixel BMP image support at SPL"
1145	help
1146	  Support display of bitmaps file with 32-bit-per-pixel.
1147
1148config SPL_VIDEO_BPP8
1149	bool "Support 8-bit-per-pixel displays at SPL"
1150	default y
1151	help
1152	  Support drawing text and bitmaps onto a 8-bit-per-pixel display.
1153	  Enabling this will include code to support this display. Without
1154	  this option, such displays will not be supported and console output
1155	  will be empty.
1156
1157config SPL_VIDEO_BPP16
1158	bool "Support 16-bit-per-pixel displays at SPL"
1159	default y
1160	help
1161	  Support drawing text and bitmaps onto a 16-bit-per-pixel display.
1162	  Enabling this will include code to support this display. Without
1163	  this option, such displays will not be supported and console output
1164	  will be empty.
1165
1166config SPL_VIDEO_BPP32
1167	bool "Support 32-bit-per-pixel displays at SPL"
1168	default y
1169	help
1170	  Support drawing text and bitmaps onto a 32-bit-per-pixel display.
1171	  Enabling this will include code to support this display. Without
1172	  this option, such displays will not be supported and console output
1173	  will be empty.
1174
1175config SPL_HIDE_LOGO_VERSION
1176    bool "Hide the version information on the splash screen at SPL"
1177    help
1178      Normally the U-Boot version string is shown on the display when the
1179      splash screen is enabled. This information is not otherwise visible
1180      since video starts up after U-Boot has displayed the initial banner.
1181
1182      Enable this option to hide this information.
1183endif
1184
1185endmenu
1186