Home | History | Annotate | Line # | Download | only in ic
      1 /* $NetBSD: vgareg.h,v 1.9 2005/12/11 12:21:29 christos Exp $ */
      2 
      3 /*
      4  * Copyright (c) 1998
      5  *	Matthias Drochner.  All rights reserved.
      6  *
      7  * Redistribution and use in source and binary forms, with or without
      8  * modification, are permitted provided that the following conditions
      9  * are met:
     10  * 1. Redistributions of source code must retain the above copyright
     11  *    notice, this list of conditions and the following disclaimer.
     12  * 2. Redistributions in binary form must reproduce the above copyright
     13  *    notice, this list of conditions and the following disclaimer in the
     14  *    documentation and/or other materials provided with the distribution.
     15  *
     16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     17  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     18  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     19  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
     20  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     21  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     22  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     23  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     25  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     26  *
     27  */
     28 
     29 struct reg_vgaattr { /* indexed via port 0x3c0 */
     30 	u_int8_t palette[16];
     31 	u_int8_t mode, overscan, colplen, horpixpan;
     32 	u_int8_t colreset, misc;
     33 };
     34 #define VGA_ATC_NREGS	21
     35 #define VGA_ATC_INDEX	0x0
     36 #define VGA_ATC_DATAW	0x0
     37 #define VGA_ATC_DATAR	0x1
     38 #define VGA_ATC_OVERSCAN	0x11
     39 
     40 struct reg_vgats { /* indexed via port 0x3c4 */
     41 	u_int8_t syncreset, mode, wrplmask, fontsel, memmode;
     42 };
     43 #define VGA_TS_MODE_BLANK	0x20
     44 
     45 #define VGA_TS_NREGS	5
     46 #define VGA_TS_INDEX 	0x4
     47 #define VGA_TS_DATA	0x5
     48 
     49 struct reg_vgagdc { /* indexed via port 0x3ce */
     50 	u_int8_t setres, ensetres, colorcomp, rotfunc;
     51 	u_int8_t rdplanesel, mode, misc, colorcare;
     52 	u_int8_t bitmask;
     53 };
     54 #define VGA_GDC_NREGS	9
     55 #define VGA_GDC_INDEX	0xe
     56 #define VGA_GDC_DATA	0xf
     57 
     58 /*
     59  * CRTC registers are defined in sys/dev/ic/mc6845reg.h
     60  */
     61 
     62 /* video DAC palette registers */
     63 #define VGA_DAC_PELMASK	0x6
     64 #define VGA_DAC_STATE	0x7
     65 #define VGA_DAC_ADDRR	0x7
     66 #define VGA_DAC_ADDRW	0x8
     67 #define VGA_DAC_PALETTE	0x9
     68 
     69 /* misc output register */
     70 #define VGA_MISC_DATAR	0xc
     71 #define VGA_MISC_DATAW	0x2
     72