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