Blame view
include/lcd.h
5.53 KB
83d290c56 SPDX: Convert all... |
1 |
/* SPDX-License-Identifier: GPL-2.0+ */ |
fe8c2806c Initial revision |
2 |
/* |
8655b6f86 * Clean up tools/... |
3 |
* MPC823 and PXA LCD Controller |
fe8c2806c Initial revision |
4 5 6 7 8 9 |
* * Modeled after video interface by Paolo Scaffardi * * * (C) Copyright 2001 * Wolfgang Denk, DENX Software Engineering, wd@denx.de. |
fe8c2806c Initial revision |
10 11 12 13 |
*/ #ifndef _LCD_H_ #define _LCD_H_ |
904672ee4 lcd: refactor lcd... |
14 |
#include <lcd_console.h> |
c8d2febcc lcd: various clea... |
15 16 17 18 |
#if defined(CONFIG_CMD_BMP) || defined(CONFIG_SPLASH_SCREEN) #include <bmp_layout.h> #include <asm/byteorder.h> #endif |
fe8c2806c Initial revision |
19 |
|
6cbf5de70 dm: lcd: Avoid us... |
20 21 22 23 24 |
int bmp_display(ulong addr, int x, int y); struct bmp_image *gunzip_bmp(unsigned long addr, unsigned long *lenp, void **alloc_addr); #ifndef CONFIG_DM_VIDEO |
682011ff6 * Patches by Udi ... |
25 |
extern char lcd_is_enabled; |
8655b6f86 * Clean up tools/... |
26 |
extern int lcd_line_length; |
6111722a9 video: move exter... |
27 |
extern struct vidinfo panel_info; |
6b035141f common/lcd: cosme... |
28 29 |
void lcd_ctrl_init(void *lcdbase); void lcd_enable(void); |
6b035141f common/lcd: cosme... |
30 |
void lcd_setcolreg(ushort regno, ushort red, ushort green, ushort blue); |
3c1ecde40 common: Move lcd_... |
31 |
ulong lcd_setmem(ulong addr); |
6111722a9 video: move exter... |
32 |
|
9a8efc460 lcd: Add support ... |
33 34 35 36 37 38 39 |
/** * Set whether we need to flush the dcache when changing the LCD image. This * defaults to off. * * @param flush non-zero to flush cache after update, 0 to skip */ void lcd_set_flush_dcache(int flush); |
5b8e76c35 powerpc, 8xx: rem... |
40 |
#if defined(CONFIG_CPU_PXA25X) || defined(CONFIG_CPU_PXA27X) || \ |
abc20aba1 PXA: Rename CONFI... |
41 |
defined CONFIG_CPU_MONAHANS |
baaa7dd70 lcd: move platfor... |
42 |
#include <pxa_lcd.h> |
f6b690e65 video: atmel/lcd:... |
43 |
#elif defined(CONFIG_ATMEL_LCD) || defined(CONFIG_ATMEL_HLCD) |
baaa7dd70 lcd: move platfor... |
44 |
#include <atmel_lcd.h> |
559a05cc3 LCD: add data str... |
45 |
#elif defined(CONFIG_EXYNOS_FB) |
baaa7dd70 lcd: move platfor... |
46 |
#include <exynos_lcd.h> |
b245e65ee LCD: support 8bpp... |
47 |
#else |
b245e65ee LCD: support 8bpp... |
48 49 50 |
typedef struct vidinfo { ushort vl_col; /* Number of columns (i.e. 160) */ ushort vl_row; /* Number of rows (i.e. 100) */ |
604c7d4a5 common/lcd_consol... |
51 |
ushort vl_rot; /* Rotation of Display (0, 1, 2, 3) */ |
b245e65ee LCD: support 8bpp... |
52 |
u_char vl_bpix; /* Bits per pixel, 0 = 1 */ |
b245e65ee LCD: support 8bpp... |
53 |
ushort *cmap; /* Pointer to the colormap */ |
b245e65ee LCD: support 8bpp... |
54 55 |
void *priv; /* Pointer to driver-specific data */ } vidinfo_t; |
38b550877 lcd: split config... |
56 57 58 59 60 |
static __maybe_unused ushort *configuration_get_cmap(void) { return panel_info.cmap; } |
baaa7dd70 lcd: move platfor... |
61 |
#endif |
8655b6f86 * Clean up tools/... |
62 |
|
38b550877 lcd: split config... |
63 |
ushort *configuration_get_cmap(void); |
60e974192 lcd.h: define ext... |
64 |
extern vidinfo_t panel_info; |
c8d2febcc lcd: various clea... |
65 66 67 68 69 |
void lcd_putc(const char c); void lcd_puts(const char *s); void lcd_printf(const char *fmt, ...); void lcd_clear(void); int lcd_display_bitmap(ulong bmp_image, int x, int y); |
fe8c2806c Initial revision |
70 |
|
395166cff lcd: Provide an A... |
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
/** * Get the width of the LCD in pixels * * @return width of LCD in pixels */ int lcd_get_pixel_width(void); /** * Get the height of the LCD in pixels * * @return height of LCD in pixels */ int lcd_get_pixel_height(void); /** * Get the number of text lines/rows on the LCD * * @return number of rows */ int lcd_get_screen_rows(void); /** * Get the number of text columns on the LCD * * @return number of columns */ int lcd_get_screen_columns(void); /** |
4d03634e5 lcd: introduce ge... |
100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
* Get the background color of the LCD * * @return background color value */ int lcd_getbgcolor(void); /** * Get the foreground color of the LCD * * @return foreground color value */ int lcd_getfgcolor(void); /** |
395166cff lcd: Provide an A... |
114 115 116 117 118 119 |
* Set the position of the text cursor * * @param col Column to place cursor (0 = left side) * @param row Row to place cursor (0 = top line) */ void lcd_position_cursor(unsigned col, unsigned row); |
6b59e03e0 lcd: Let the boar... |
120 121 |
/* Allow boards to customize the information displayed */ void lcd_show_board_info(void); |
8655b6f86 * Clean up tools/... |
122 |
|
676d319ef lcd: Add CONFIG_L... |
123 124 |
/* Return the size of the LCD frame buffer, and the line length */ int lcd_get_size(int *line_length); |
7d95f2a32 sandbox: Add LCD ... |
125 126 |
/* Update the LCD / flush the cache */ void lcd_sync(void); |
8655b6f86 * Clean up tools/... |
127 128 129 130 131 |
/* * Information about displays we are using. This is for configuring * the LCD controller and memory allocation. Someone has to know what * is connected, as we can't autodetect anything. */ |
6d0f6bcf3 rename CFG_ macro... |
132 |
#define CONFIG_SYS_HIGH 0 /* Pins are active high */ |
6b035141f common/lcd: cosme... |
133 |
#define CONFIG_SYS_LOW 1 /* Pins are active low */ |
8655b6f86 * Clean up tools/... |
134 135 136 137 138 139 |
#define LCD_MONOCHROME 0 #define LCD_COLOR2 1 #define LCD_COLOR4 2 #define LCD_COLOR8 3 #define LCD_COLOR16 4 |
57d76a89b Add support for 3... |
140 |
#define LCD_COLOR32 5 |
c8d2febcc lcd: various clea... |
141 |
|
88804d19e * Patch by Detlev... |
142 |
#if defined(CONFIG_LCD_INFO_BELOW_LOGO) |
c8d2febcc lcd: various clea... |
143 144 |
#define LCD_INFO_X 0 #define LCD_INFO_Y (BMP_LOGO_HEIGHT + VIDEO_FONT_HEIGHT) |
8655b6f86 * Clean up tools/... |
145 |
#elif defined(CONFIG_LCD_LOGO) |
c8d2febcc lcd: various clea... |
146 147 |
#define LCD_INFO_X (BMP_LOGO_WIDTH + 4 * VIDEO_FONT_WIDTH) #define LCD_INFO_Y VIDEO_FONT_HEIGHT |
8655b6f86 * Clean up tools/... |
148 |
#else |
c8d2febcc lcd: various clea... |
149 150 |
#define LCD_INFO_X VIDEO_FONT_WIDTH #define LCD_INFO_Y VIDEO_FONT_HEIGHT |
8655b6f86 * Clean up tools/... |
151 152 153 154 |
#endif /* Default to 8bpp if bit depth not specified */ #ifndef LCD_BPP |
c8d2febcc lcd: various clea... |
155 |
#define LCD_BPP LCD_COLOR8 |
8655b6f86 * Clean up tools/... |
156 |
#endif |
c8d2febcc lcd: various clea... |
157 |
|
8655b6f86 * Clean up tools/... |
158 |
#ifndef LCD_DF |
c8d2febcc lcd: various clea... |
159 |
#define LCD_DF 1 |
8655b6f86 * Clean up tools/... |
160 161 162 163 164 |
#endif /* Calculate nr. of bits per pixel and nr. of colors */ #define NBITS(bit_code) (1 << (bit_code)) #define NCOLORS(bit_code) (1 << NBITS(bit_code)) |
f4469f50b lcd: remove LCD_M... |
165 |
#if LCD_BPP == LCD_COLOR8 |
8655b6f86 * Clean up tools/... |
166 167 168 169 170 171 172 173 |
# define CONSOLE_COLOR_BLACK 0 # define CONSOLE_COLOR_RED 1 # define CONSOLE_COLOR_GREEN 2 # define CONSOLE_COLOR_YELLOW 3 # define CONSOLE_COLOR_BLUE 4 # define CONSOLE_COLOR_MAGENTA 5 # define CONSOLE_COLOR_CYAN 6 # define CONSOLE_COLOR_GREY 14 |
c8d2febcc lcd: various clea... |
174 |
# define CONSOLE_COLOR_WHITE 15 /* Must remain last / highest */ |
57d76a89b Add support for 3... |
175 |
#elif LCD_BPP == LCD_COLOR32 |
c8d2febcc lcd: various clea... |
176 177 178 179 180 181 182 183 184 185 186 |
#define CONSOLE_COLOR_RED 0x00ff0000 #define CONSOLE_COLOR_GREEN 0x0000ff00 #define CONSOLE_COLOR_YELLOW 0x00ffff00 #define CONSOLE_COLOR_BLUE 0x000000ff #define CONSOLE_COLOR_MAGENTA 0x00ff00ff #define CONSOLE_COLOR_CYAN 0x0000ffff #define CONSOLE_COLOR_GREY 0x00aaaaaa #define CONSOLE_COLOR_BLACK 0x00000000 #define CONSOLE_COLOR_WHITE 0x00ffffff /* Must remain last / highest */ #define NBYTES(bit_code) (NBITS(bit_code) >> 3) #else /* 16bpp color definitions */ |
e32951b52 lcd: fix the colo... |
187 188 189 190 191 192 193 194 195 |
# define CONSOLE_COLOR_BLACK 0x0000 # define CONSOLE_COLOR_RED 0xF800 # define CONSOLE_COLOR_GREEN 0x07E0 # define CONSOLE_COLOR_YELLOW 0xFFE0 # define CONSOLE_COLOR_BLUE 0x001F # define CONSOLE_COLOR_MAGENTA 0xF81F # define CONSOLE_COLOR_CYAN 0x07FF # define CONSOLE_COLOR_GREY 0xC618 # define CONSOLE_COLOR_WHITE 0xffff /* Must remain last / highest */ |
8655b6f86 * Clean up tools/... |
196 |
#endif /* color definitions */ |
604c7d4a5 common/lcd_consol... |
197 198 199 200 201 202 203 |
#if LCD_BPP == LCD_COLOR16 #define fbptr_t ushort #elif LCD_BPP == LCD_COLOR32 #define fbptr_t u32 #else #define fbptr_t uchar #endif |
8655b6f86 * Clean up tools/... |
204 |
#ifndef PAGE_SIZE |
c8d2febcc lcd: various clea... |
205 |
#define PAGE_SIZE 4096 |
8655b6f86 * Clean up tools/... |
206 |
#endif |
6cbf5de70 dm: lcd: Avoid us... |
207 |
#endif /* !CONFIG_DM_VIDEO */ |
8655b6f86 * Clean up tools/... |
208 |
#endif /* _LCD_H_ */ |