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