linux/include/video/neomagic.h
<<
>>
Prefs
   1/*
   2 * linux/include/video/neo_reg.h -- NeoMagic Framebuffer Driver
   3 *
   4 * Copyright (c) 2001  Denis Oliver Kropp <dok@convergence.de>
   5 *
   6 * This file is subject to the terms and conditions of the GNU General
   7 * Public License.  See the file COPYING in the main directory of this
   8 * archive for more details.
   9 */
  10
  11#define NEO_BS0_BLT_BUSY        0x00000001
  12#define NEO_BS0_FIFO_AVAIL      0x00000002
  13#define NEO_BS0_FIFO_PEND       0x00000004
  14
  15#define NEO_BC0_DST_Y_DEC       0x00000001
  16#define NEO_BC0_X_DEC           0x00000002
  17#define NEO_BC0_SRC_TRANS       0x00000004
  18#define NEO_BC0_SRC_IS_FG       0x00000008
  19#define NEO_BC0_SRC_Y_DEC       0x00000010
  20#define NEO_BC0_FILL_PAT        0x00000020
  21#define NEO_BC0_SRC_MONO        0x00000040
  22#define NEO_BC0_SYS_TO_VID      0x00000080
  23
  24#define NEO_BC1_DEPTH8          0x00000100
  25#define NEO_BC1_DEPTH16         0x00000200
  26#define NEO_BC1_X_320           0x00000400
  27#define NEO_BC1_X_640           0x00000800
  28#define NEO_BC1_X_800           0x00000c00
  29#define NEO_BC1_X_1024          0x00001000
  30#define NEO_BC1_X_1152          0x00001400
  31#define NEO_BC1_X_1280          0x00001800
  32#define NEO_BC1_X_1600          0x00001c00
  33#define NEO_BC1_DST_TRANS       0x00002000
  34#define NEO_BC1_MSTR_BLT        0x00004000
  35#define NEO_BC1_FILTER_Z        0x00008000
  36
  37#define NEO_BC2_WR_TR_DST       0x00800000
  38
  39#define NEO_BC3_SRC_XY_ADDR     0x01000000
  40#define NEO_BC3_DST_XY_ADDR     0x02000000
  41#define NEO_BC3_CLIP_ON         0x04000000
  42#define NEO_BC3_FIFO_EN         0x08000000
  43#define NEO_BC3_BLT_ON_ADDR     0x10000000
  44#define NEO_BC3_SKIP_MAPPING    0x80000000
  45
  46#define NEO_MODE1_DEPTH8        0x0100
  47#define NEO_MODE1_DEPTH16       0x0200
  48#define NEO_MODE1_DEPTH24       0x0300
  49#define NEO_MODE1_X_320         0x0400
  50#define NEO_MODE1_X_640         0x0800
  51#define NEO_MODE1_X_800         0x0c00
  52#define NEO_MODE1_X_1024        0x1000
  53#define NEO_MODE1_X_1152        0x1400
  54#define NEO_MODE1_X_1280        0x1800
  55#define NEO_MODE1_X_1600        0x1c00
  56#define NEO_MODE1_BLT_ON_ADDR   0x2000
  57
  58/* These are offseted in MMIO space by par->CursorOff */
  59#define NEOREG_CURSCNTL         0x00
  60#define NEOREG_CURSX            0x04
  61#define NEOREG_CURSY            0x08
  62#define NEOREG_CURSBGCOLOR      0x0C
  63#define NEOREG_CURSFGCOLOR      0x10
  64#define NEOREG_CURSMEMPOS       0x14
  65
  66#define NEO_CURS_DISABLE        0x00000000
  67#define NEO_CURS_ENABLE         0x00000001
  68#define NEO_ICON64_ENABLE       0x00000008
  69#define NEO_ICON128_ENABLE      0x0000000C
  70#define NEO_ICON_BLANK          0x00000010
  71
  72#define NEO_GR01_SUPPRESS_VSYNC 0x10
  73#define NEO_GR01_SUPPRESS_HSYNC 0x20
  74
  75#ifdef __KERNEL__
  76
  77#ifdef NEOFB_DEBUG
  78# define DBG(x)         printk (KERN_DEBUG "neofb: %s\n", (x));
  79#else
  80# define DBG(x)
  81#endif
  82
  83#define PCI_CHIP_NM2070 0x0001
  84#define PCI_CHIP_NM2090 0x0002
  85#define PCI_CHIP_NM2093 0x0003
  86#define PCI_CHIP_NM2097 0x0083
  87#define PCI_CHIP_NM2160 0x0004
  88#define PCI_CHIP_NM2200 0x0005
  89#define PCI_CHIP_NM2230 0x0025
  90#define PCI_CHIP_NM2360 0x0006
  91#define PCI_CHIP_NM2380 0x0016
  92
  93/* --------------------------------------------------------------------- */
  94
  95typedef volatile struct {
  96        __u32 bltStat;
  97        __u32 bltCntl;
  98        __u32 xpColor;
  99        __u32 fgColor;
 100        __u32 bgColor;
 101        __u32 pitch;
 102        __u32 clipLT;
 103        __u32 clipRB;
 104        __u32 srcBitOffset;
 105        __u32 srcStart;
 106        __u32 reserved0;
 107        __u32 dstStart;
 108        __u32 xyExt;
 109
 110        __u32 reserved1[19];
 111
 112        __u32 pageCntl;
 113        __u32 pageBase;
 114        __u32 postBase;
 115        __u32 postPtr;
 116        __u32 dataPtr;
 117} Neo2200;
 118
 119#define MMIO_SIZE 0x200000
 120
 121#define NEO_EXT_CR_MAX 0x85
 122#define NEO_EXT_GR_MAX 0xC7
 123
 124struct neofb_par {
 125        struct vgastate state;
 126        unsigned int ref_count;
 127
 128        unsigned char MiscOutReg;       /* Misc */
 129        unsigned char CRTC[25];         /* Crtc Controller */
 130        unsigned char Sequencer[5];     /* Video Sequencer */
 131        unsigned char Graphics[9];      /* Video Graphics */
 132        unsigned char Attribute[21];    /* Video Attribute */
 133
 134        unsigned char GeneralLockReg;
 135        unsigned char ExtCRTDispAddr;
 136        unsigned char ExtCRTOffset;
 137        unsigned char SysIfaceCntl1;
 138        unsigned char SysIfaceCntl2;
 139        unsigned char ExtColorModeSelect;
 140        unsigned char biosMode;
 141
 142        unsigned char PanelDispCntlReg1;
 143        unsigned char PanelDispCntlReg2;
 144        unsigned char PanelDispCntlReg3;
 145        unsigned char PanelDispCntlRegRead;
 146        unsigned char PanelVertCenterReg1;
 147        unsigned char PanelVertCenterReg2;
 148        unsigned char PanelVertCenterReg3;
 149        unsigned char PanelVertCenterReg4;
 150        unsigned char PanelVertCenterReg5;
 151        unsigned char PanelHorizCenterReg1;
 152        unsigned char PanelHorizCenterReg2;
 153        unsigned char PanelHorizCenterReg3;
 154        unsigned char PanelHorizCenterReg4;
 155        unsigned char PanelHorizCenterReg5;
 156
 157        int ProgramVCLK;
 158        unsigned char VCLK3NumeratorLow;
 159        unsigned char VCLK3NumeratorHigh;
 160        unsigned char VCLK3Denominator;
 161        unsigned char VerticalExt;
 162        int wc_cookie;
 163        u8 __iomem *mmio_vbase;
 164        u8 cursorOff;
 165        u8 *cursorPad;          /* Must die !! */
 166
 167        Neo2200 __iomem *neo2200;
 168
 169        /* Panels size */
 170        int NeoPanelWidth;
 171        int NeoPanelHeight;
 172
 173        int maxClock;
 174
 175        int pci_burst;
 176        int lcd_stretch;
 177        int internal_display;
 178        int external_display;
 179        int libretto;
 180        u32 palette[16];
 181};
 182
 183typedef struct {
 184        int x_res;
 185        int y_res;
 186        int mode;
 187} biosMode;
 188
 189#endif
 190