1a2a5729fSChe-Liang Chiou /* 2a2a5729fSChe-Liang Chiou * Copyright (c) 2011 The Chromium OS Authors. 3*1a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+ 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 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 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 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