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