1 /* 2 * Copyright (C) 2013, Boundary Devices <info@boundarydevices.com> 3 * 4 * See file CREDITS for list of people who contributed to this 5 * project. 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License as 9 * published by the Free Software Foundation; either version 2 of 10 * the License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., http://www.fsf.org/about/contact/ 20 * 21 */ 22 23 #include <common.h> 24 #include <splash.h> 25 #include <lcd.h> 26 27 __weak int splash_screen_prepare(void) 28 { 29 return 0; 30 } 31 32 #ifdef CONFIG_SPLASH_SCREEN_ALIGN 33 void splash_get_pos(int *x, int *y) 34 { 35 char *s = getenv("splashpos"); 36 37 if (!s) 38 return; 39 40 if (s[0] == 'm') 41 *x = BMP_ALIGN_CENTER; 42 else 43 *x = simple_strtol(s, NULL, 0); 44 45 s = strchr(s + 1, ','); 46 if (s != NULL) { 47 if (s[1] == 'm') 48 *y = BMP_ALIGN_CENTER; 49 else 50 *y = simple_strtol(s + 1, NULL, 0); 51 } 52 } 53 #endif /* CONFIG_SPLASH_SCREEN_ALIGN */ 54 55 #if defined(CONFIG_SPLASH_SCREEN) && defined(CONFIG_LCD) 56 int lcd_splash(ulong addr) 57 { 58 int x = 0, y = 0, ret; 59 60 ret = splash_screen_prepare(); 61 if (ret) 62 return ret; 63 64 splash_get_pos(&x, &y); 65 66 return bmp_display(addr, x, y); 67 } 68 #endif 69