123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- /*
- * (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_ */
|