xref: /openbmc/u-boot/include/splash.h (revision 445277b9d1efcc239c8c05560e4db312ea4f078e)
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  #ifndef _SPLASH_H_
23  #define _SPLASH_H_
24  
25  #include <errno.h>
26  
27  enum splash_storage {
28  	SPLASH_STORAGE_NAND,
29  	SPLASH_STORAGE_SF,
30  	SPLASH_STORAGE_MMC,
31  	SPLASH_STORAGE_USB,
32  	SPLASH_STORAGE_SATA,
33  };
34  
35  enum splash_flags {
36  	SPLASH_STORAGE_RAW, /* Stored in raw memory */
37  	SPLASH_STORAGE_FS,  /* Stored within a file system */
38  	SPLASH_STORAGE_FIT, /* Stored inside a FIT image */
39  };
40  
41  struct splash_location {
42  	char *name;
43  	enum splash_storage storage;
44  	enum splash_flags flags;
45  	u32 offset;	/* offset from start of storage */
46  	char *devpart;  /* Use the load command dev:part conventions */
47  	char *mtdpart;	/* MTD partition for ubi part */
48  	char *ubivol;	/* UBI volume-name for ubifsmount */
49  };
50  
51  #ifdef CONFIG_SPLASH_SOURCE
52  int splash_source_load(struct splash_location *locations, uint size);
53  #else
54  static inline int splash_source_load(struct splash_location *locations,
55  				     uint size)
56  {
57  	return 0;
58  }
59  #endif
60  
61  int splash_screen_prepare(void);
62  
63  #ifdef CONFIG_SPLASH_SCREEN_ALIGN
64  void splash_get_pos(int *x, int *y);
65  #else
66  static inline void splash_get_pos(int *x, int *y) { }
67  #endif
68  
69  #if defined(CONFIG_SPLASH_SCREEN) && defined(CONFIG_LCD)
70  int lcd_splash(ulong addr);
71  #else
72  static inline int lcd_splash(ulong addr)
73  {
74  	return -ENOSYS;
75  }
76  #endif
77  
78  #define BMP_ALIGN_CENTER	0x7FFF
79  
80  #endif
81