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