2 * (C) Copyright 1997-2002 ELTEC Elektronik AG
3 * Frank Gottschling <fgottschling@eltec.de>
5 * See file CREDITS for list of people who contributed to this
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as
10 * published by the Free Software Foundation; either version 2 of
11 * the License, or (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
26 * Silicon Motion graphic interface for sm810/sm710/sm712 accelerator
29 * modification history
30 * --------------------
31 * 04-18-2002 Rewritten for U-Boot <fgottschling@eltec.de>.
34 #ifndef _SMI_LYNX_EM_H_
35 #define _SMI_LYNX_EM_H_
38 * SMI 710/712 have 4MB internal RAM; SMI 810 2MB internal + 2MB external
40 #define VIDEO_MEM_SIZE 0x400000
43 * Supported video modes for SMI Lynx E/EM/EM+
46 #define DUAL_800_600 0 /* SMI710:VGA1:75Hz (pitch=1600) */
47 /* VGA2:60/120Hz (pitch=1600) */
48 /* SMI810:VGA1:75Hz (pitch=1600) */
49 /* VGA2:75Hz (pitch=1600) */
50 #define DUAL_1024_768 1 /* VGA1:75Hz VGA2:73Hz (pitch=2048) */
51 #define SINGLE_800_600 2 /* VGA1:75Hz (pitch=800) */
52 #define SINGLE_1024_768 3 /* VGA1:75Hz (pitch=1024) */
53 #define SINGLE_1280_1024 4 /* VGA1:75Hz (pitch=1280) */
54 #define TV_MODE_CCIR 5 /* VGA1:50Hz (h=720;v=576;pitch=720) */
55 #define TV_MODE_EIA 6 /* VGA1:60Hz (h=720;v=484;pitch=720) */
61 #define SMI_INDX_C4 (pGD->isaBase + 0x03c4) /* index reg */
62 #define SMI_DATA_C5 (pGD->isaBase + 0x03c5) /* data reg */
63 #define SMI_INDX_D4 (pGD->isaBase + 0x03d4) /* index reg */
64 #define SMI_DATA_D5 (pGD->isaBase + 0x03d5) /* data reg */
65 #define SMI_INDX_CE (pGD->isaBase + 0x03ce) /* index reg */
66 #define SMI_DATA_CF (pGD->isaBase + 0x03cf) /* data reg */
67 #define SMI_LOCK_REG (pGD->isaBase + 0x03c3) /* unlock/lock ext crt reg */
68 #define SMI_MISC_REG (pGD->isaBase + 0x03c2) /* misc reg */
69 #define SMI_LUT_MASK (pGD->isaBase + 0x03c6) /* lut mask reg */
70 #define SMI_LUT_START (pGD->isaBase + 0x03c8) /* lut start index */
71 #define SMI_LUT_RGB (pGD->isaBase + 0x03c9) /* lut colors auto incr.*/
75 * Video processor control
79 unsigned int colorKey;
80 unsigned int colorKeyMask;
82 unsigned short offset;
84 unsigned int fifoPrio;
86 unsigned int YUVtoRGB;
90 * Video window control
95 unsigned short bottom;
97 unsigned int srcStart;
99 unsigned short offset;
100 unsigned char hStretch;
101 unsigned char vStretch;
105 * Capture port control
108 unsigned int control;
109 unsigned short topClip;
110 unsigned short leftClip;
111 unsigned short srcHeight;
112 unsigned short srcWidth;
113 unsigned int srcBufStart1;
114 unsigned int srcBufStart2;
115 unsigned short srcOffset;
116 unsigned short fifoControl;
120 /******************************************************************************/
121 /* Export Graphic Driver Control */
122 /******************************************************************************/
125 unsigned int isaBase;
126 unsigned int pciBase;
127 unsigned int dprBase;
128 unsigned int vprBase;
129 unsigned int cprBase;
130 unsigned int frameAdrs;
131 unsigned int memSize;
133 unsigned int gdfIndex;
134 unsigned int gdfBytesPP;
137 unsigned int plnSizeX;
138 unsigned int plnSizeY;
139 unsigned int winSizeX;
140 unsigned int winSizeY;
144 extern GraphicDevice smi;
147 /******************************************************************************/
148 /* Export Graphic Functions */
149 /******************************************************************************/
151 void *video_hw_init (void); /* returns GraphicDevice struct or NULL */
153 void video_hw_bitblt (
154 unsigned int bpp, /* bytes per pixel */
155 unsigned int src_x, /* source pos x */
156 unsigned int src_y, /* source pos y */
157 unsigned int dst_x, /* dest pos x */
158 unsigned int dst_y, /* dest pos y */
159 unsigned int dim_x, /* frame width */
160 unsigned int dim_y /* frame height */
163 void video_hw_rectfill (
164 unsigned int bpp, /* bytes per pixel */
165 unsigned int dst_x, /* dest pos x */
166 unsigned int dst_y, /* dest pos y */
167 unsigned int dim_x, /* frame width */
168 unsigned int dim_y, /* frame height */
169 unsigned int color /* fill color */
173 unsigned int index, /* color number */
174 unsigned char r, /* red */
175 unsigned char g, /* green */
176 unsigned char b /* blue */
179 #endif /*_SMI_LYNX_EM_H_ */