xref: /openbmc/u-boot/api/api_display.c (revision e8f80a5a)
1*83d290c5STom Rini // SPDX-License-Identifier: GPL-2.0+
2a2a5729fSChe-Liang Chiou /*
3a2a5729fSChe-Liang Chiou  * Copyright (c) 2011 The Chromium OS Authors.
4a2a5729fSChe-Liang Chiou  */
5a2a5729fSChe-Liang Chiou 
6a2a5729fSChe-Liang Chiou #include <common.h>
7a2a5729fSChe-Liang Chiou #include <api_public.h>
8a2a5729fSChe-Liang Chiou #include <lcd.h>
9a2a5729fSChe-Liang Chiou #include <video_font.h> /* Get font width and height */
10a2a5729fSChe-Liang Chiou 
11a2a5729fSChe-Liang Chiou /* lcd.h needs BMP_LOGO_HEIGHT to calculate CONSOLE_ROWS */
12a2a5729fSChe-Liang Chiou #if defined(CONFIG_LCD_LOGO) && !defined(CONFIG_LCD_INFO_BELOW_LOGO)
13a2a5729fSChe-Liang Chiou #include <bmp_logo.h>
14a2a5729fSChe-Liang Chiou #endif
15a2a5729fSChe-Liang Chiou 
16a2a5729fSChe-Liang Chiou /* TODO(clchiou): add support of video device */
17a2a5729fSChe-Liang Chiou 
display_get_info(int type,struct display_info * di)18a2a5729fSChe-Liang Chiou int display_get_info(int type, struct display_info *di)
19a2a5729fSChe-Liang Chiou {
20a2a5729fSChe-Liang Chiou 	if (!di)
21a2a5729fSChe-Liang Chiou 		return API_EINVAL;
22a2a5729fSChe-Liang Chiou 
23a2a5729fSChe-Liang Chiou 	switch (type) {
24a2a5729fSChe-Liang Chiou 	default:
25a2a5729fSChe-Liang Chiou 		debug("%s: unsupport display device type: %d\n",
26a2a5729fSChe-Liang Chiou 				__FILE__, type);
27a2a5729fSChe-Liang Chiou 		return API_ENODEV;
28a2a5729fSChe-Liang Chiou #ifdef CONFIG_LCD
29a2a5729fSChe-Liang Chiou 	case DISPLAY_TYPE_LCD:
30a2a5729fSChe-Liang Chiou 		di->pixel_width  = panel_info.vl_col;
31a2a5729fSChe-Liang Chiou 		di->pixel_height = panel_info.vl_row;
32fbd239beSJeroen Hofstee 		di->screen_rows = lcd_get_screen_rows();
33fbd239beSJeroen Hofstee 		di->screen_cols = lcd_get_screen_columns();
34a2a5729fSChe-Liang Chiou 		break;
35a2a5729fSChe-Liang Chiou #endif
36a2a5729fSChe-Liang Chiou 	}
37a2a5729fSChe-Liang Chiou 
38a2a5729fSChe-Liang Chiou 	di->type = type;
39a2a5729fSChe-Liang Chiou 	return 0;
40a2a5729fSChe-Liang Chiou }
41a2a5729fSChe-Liang Chiou 
display_draw_bitmap(ulong bitmap,int x,int y)42a2a5729fSChe-Liang Chiou int display_draw_bitmap(ulong bitmap, int x, int y)
43a2a5729fSChe-Liang Chiou {
44a2a5729fSChe-Liang Chiou 	if (!bitmap)
45a2a5729fSChe-Liang Chiou 		return API_EINVAL;
46a2a5729fSChe-Liang Chiou #ifdef CONFIG_LCD
47a2a5729fSChe-Liang Chiou 	return lcd_display_bitmap(bitmap, x, y);
48a2a5729fSChe-Liang Chiou #else
49a2a5729fSChe-Liang Chiou 	return API_ENODEV;
50a2a5729fSChe-Liang Chiou #endif
51a2a5729fSChe-Liang Chiou }
52a2a5729fSChe-Liang Chiou 
display_clear(void)53a2a5729fSChe-Liang Chiou void display_clear(void)
54a2a5729fSChe-Liang Chiou {
55a2a5729fSChe-Liang Chiou #ifdef CONFIG_LCD
56a2a5729fSChe-Liang Chiou 	lcd_clear();
57a2a5729fSChe-Liang Chiou #endif
58a2a5729fSChe-Liang Chiou }
59