1a2a5729fSChe-Liang Chiou /* 2a2a5729fSChe-Liang Chiou * Copyright (c) 2011 The Chromium OS Authors. 3a2a5729fSChe-Liang Chiou * See file CREDITS for list of people who contributed to this 4a2a5729fSChe-Liang Chiou * project. 5a2a5729fSChe-Liang Chiou * 6a2a5729fSChe-Liang Chiou * This program is free software; you can redistribute it and/or 7a2a5729fSChe-Liang Chiou * modify it under the terms of the GNU General Public License as 8a2a5729fSChe-Liang Chiou * published by the Free Software Foundation; either version 2 of 9a2a5729fSChe-Liang Chiou * the License, or (at your option) any later version. 10a2a5729fSChe-Liang Chiou * 11a2a5729fSChe-Liang Chiou * This program is distributed in the hope that it will be useful, 12a2a5729fSChe-Liang Chiou * but WITHOUT ANY WARRANTY; without even the implied warranty of 13a2a5729fSChe-Liang Chiou * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14a2a5729fSChe-Liang Chiou * GNU General Public License for more details. 15a2a5729fSChe-Liang Chiou * 16a2a5729fSChe-Liang Chiou * You should have received a copy of the GNU General Public License 17a2a5729fSChe-Liang Chiou * along with this program; if not, write to the Free Software 18a2a5729fSChe-Liang Chiou * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 19a2a5729fSChe-Liang Chiou * MA 02111-1307 USA 20a2a5729fSChe-Liang Chiou */ 21a2a5729fSChe-Liang Chiou 22a2a5729fSChe-Liang Chiou #include <common.h> 23a2a5729fSChe-Liang Chiou #include <api_public.h> 24a2a5729fSChe-Liang Chiou #include <lcd.h> 25a2a5729fSChe-Liang Chiou #include <video_font.h> /* Get font width and height */ 26a2a5729fSChe-Liang Chiou 27a2a5729fSChe-Liang Chiou /* lcd.h needs BMP_LOGO_HEIGHT to calculate CONSOLE_ROWS */ 28a2a5729fSChe-Liang Chiou #if defined(CONFIG_LCD_LOGO) && !defined(CONFIG_LCD_INFO_BELOW_LOGO) 29a2a5729fSChe-Liang Chiou #include <bmp_logo.h> 30a2a5729fSChe-Liang Chiou #endif 31a2a5729fSChe-Liang Chiou 32a2a5729fSChe-Liang Chiou /* TODO(clchiou): add support of video device */ 33a2a5729fSChe-Liang Chiou 34a2a5729fSChe-Liang Chiou int display_get_info(int type, struct display_info *di) 35a2a5729fSChe-Liang Chiou { 36a2a5729fSChe-Liang Chiou if (!di) 37a2a5729fSChe-Liang Chiou return API_EINVAL; 38a2a5729fSChe-Liang Chiou 39a2a5729fSChe-Liang Chiou switch (type) { 40a2a5729fSChe-Liang Chiou default: 41a2a5729fSChe-Liang Chiou debug("%s: unsupport display device type: %d\n", 42a2a5729fSChe-Liang Chiou __FILE__, type); 43a2a5729fSChe-Liang Chiou return API_ENODEV; 44a2a5729fSChe-Liang Chiou #ifdef CONFIG_LCD 45a2a5729fSChe-Liang Chiou case DISPLAY_TYPE_LCD: 46a2a5729fSChe-Liang Chiou di->pixel_width = panel_info.vl_col; 47a2a5729fSChe-Liang Chiou di->pixel_height = panel_info.vl_row; 48*fbd239beSJeroen Hofstee di->screen_rows = lcd_get_screen_rows(); 49*fbd239beSJeroen Hofstee di->screen_cols = lcd_get_screen_columns(); 50a2a5729fSChe-Liang Chiou break; 51a2a5729fSChe-Liang Chiou #endif 52a2a5729fSChe-Liang Chiou } 53a2a5729fSChe-Liang Chiou 54a2a5729fSChe-Liang Chiou di->type = type; 55a2a5729fSChe-Liang Chiou return 0; 56a2a5729fSChe-Liang Chiou } 57a2a5729fSChe-Liang Chiou 58a2a5729fSChe-Liang Chiou int display_draw_bitmap(ulong bitmap, int x, int y) 59a2a5729fSChe-Liang Chiou { 60a2a5729fSChe-Liang Chiou if (!bitmap) 61a2a5729fSChe-Liang Chiou return API_EINVAL; 62a2a5729fSChe-Liang Chiou #ifdef CONFIG_LCD 63a2a5729fSChe-Liang Chiou return lcd_display_bitmap(bitmap, x, y); 64a2a5729fSChe-Liang Chiou #else 65a2a5729fSChe-Liang Chiou return API_ENODEV; 66a2a5729fSChe-Liang Chiou #endif 67a2a5729fSChe-Liang Chiou } 68a2a5729fSChe-Liang Chiou 69a2a5729fSChe-Liang Chiou void display_clear(void) 70a2a5729fSChe-Liang Chiou { 71a2a5729fSChe-Liang Chiou #ifdef CONFIG_LCD 72a2a5729fSChe-Liang Chiou lcd_clear(); 73a2a5729fSChe-Liang Chiou #endif 74a2a5729fSChe-Liang Chiou } 75