[BACK]Return to cgfourteenreg.h CVS log [TXT][DIR] Up to [local] / sys / arch / sparc / dev

Annotation of sys/arch/sparc/dev/cgfourteenreg.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: cgfourteenreg.h,v 1.4 2005/03/15 18:50:43 miod Exp $  */
        !             2: /*     $NetBSD: cgfourteenreg.h,v 1.1 1996/09/30 22:41:02 abrown Exp $ */
        !             3:
        !             4: /*
        !             5:  * Copyright (c) 1996
        !             6:  *     The President and Fellows of Harvard College. All rights reserved.
        !             7:  *
        !             8:  * Redistribution and use in source and binary forms, with or without
        !             9:  * modification, are permitted provided that the following conditions
        !            10:  * are met:
        !            11:  * 1. Redistributions of source code must retain the above copyright
        !            12:  *    notice, this list of conditions and the following disclaimer.
        !            13:  * 2. Redistributions in binary form must reproduce the above copyright
        !            14:  *    notice, this list of conditions and the following disclaimer in the
        !            15:  *    documentation and/or other materials provided with the distribution.
        !            16:  * 3. All advertising materials mentioning features or use of this software
        !            17:  *    must display the following acknowledgement:
        !            18:  *     This product includes software developed by Harvard University and
        !            19:  *     its contributors.
        !            20:  * 4. Neither the name of the University nor the names of its contributors
        !            21:  *    may be used to endorse or promote products derived from this software
        !            22:  *    without specific prior written permission.
        !            23:  *
        !            24:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
        !            25:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        !            26:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
        !            27:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
        !            28:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        !            29:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
        !            30:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
        !            31:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
        !            32:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
        !            33:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
        !            34:  * SUCH DAMAGE.
        !            35:  */
        !            36:
        !            37: /*
        !            38:  * Register/dac/clut/cursor definitions for cgfourteen frame buffer
        !            39:  */
        !            40:
        !            41: /* Control registers */
        !            42: #define        CG14_REG_CONTROL        0
        !            43: #define        CG14_REG_VRAM           1
        !            44:
        !            45: #define        CG14_NREG               2
        !            46:
        !            47: /* Locations of control registers in cg14 register set */
        !            48: #define        CG14_OFFSET_CURS        0x1000
        !            49: #define CG14_OFFSET_DAC                0x2000
        !            50: #define CG14_OFFSET_XLUT       0x3000
        !            51: #define CG14_OFFSET_CLUT1      0x4000
        !            52: #define CG14_OFFSET_CLUT2      0x5000
        !            53: #define CG14_OFFSET_CLUT3      0x6000
        !            54: #define CG14_OFFSET_AUTOINCR   0xf000
        !            55:
        !            56: /* Main control register set */
        !            57: struct cg14ctl {
        !            58:        volatile u_int8_t       ctl_mctl;       /* main control register */
        !            59: #define CG14_MCTL_ENABLEINTR   0x80            /* interrupts */
        !            60: #define CG14_MCTL_R0_ENABLEHW  0x40            /* hardware enable */
        !            61: #define        CG14_MCTL_R1_ENABLEHW   0x01
        !            62: #define        CG14_MCTL_R1_ENABLEVID  0x40            /* display enable */
        !            63: #define CG14_MCTL_PIXMODE_MASK 0x30
        !            64: #define                CG14_MCTL_PIXMODE_8     0x00    /* data is 16 8-bit pixels */
        !            65: #define                CG14_MCTL_PIXMODE_16    0x20    /* data is 8 16-bit pixels */
        !            66: #define                CG14_MCTL_PIXMODE_32    0x30    /* data is 4 32-bit pixels */
        !            67: #define CG14_MCTL_PIXMODE_SHIFT        4
        !            68: #define        CG14_MCTL_TMR           0x0c
        !            69: #define CG14_MCTL_ENABLETMR    0x02
        !            70: #define CG14_MCTL_R0_RESET     0x01
        !            71:        volatile u_int8_t       ctl_ppr;        /* packed pixel register */
        !            72:        volatile u_int8_t       ctl_tmsr0;      /* test status reg. 0 */
        !            73:        volatile u_int8_t       ctl_tmsr1;      /* test status reg. 1 */
        !            74:        volatile u_int8_t       ctl_msr;        /* master status register */
        !            75: #define        CG14_MSR_PENDING        0x20            /* interrupt pending */
        !            76: #define        CG14_MSR_VRETRACE       0x10            /* vertical retrace interrupt */
        !            77: #define        CG14_MSR_FAULT          0x01            /* fault interrupt */
        !            78:        volatile u_int8_t       ctl_fsr;        /* fault status register */
        !            79:        volatile u_int8_t       ctl_rsr;        /* revision status register */
        !            80: #define CG14_RSR_REVMASK       0xf0            /*  mask to get revision */
        !            81: #define CG14_RSR_REVSHIFT      4
        !            82: #define CG14_RSR_IMPLMASK      0x0f            /*  mask to get impl. code */
        !            83:        volatile u_int8_t       ctl_ccr;        /* clock control register */
        !            84:        /* XXX etc. */
        !            85: };
        !            86:
        !            87: /* Hardware cursor map */
        !            88: #define CG14_CURS_SIZE         32
        !            89: #define        CG14_CURS_MASK          0x1f
        !            90: struct cg14curs {
        !            91:        volatile u_int32_t      curs_plane0[CG14_CURS_SIZE];    /* plane 0 */
        !            92:        volatile u_int32_t      curs_plane1[CG14_CURS_SIZE];
        !            93:        volatile u_int8_t       curs_ctl;       /* control register */
        !            94: #define CG14_CURS_ENABLE       0x4
        !            95: #define CG14_CURS_DOUBLEBUFFER 0x2             /* use X-channel for curs */
        !            96:        volatile u_int8_t       pad0[3];
        !            97:        volatile u_int16_t      curs_x;         /* x position */
        !            98:        volatile u_int16_t      curs_y;         /* y position */
        !            99:        volatile u_int32_t      curs_color1;    /* color register 1 */
        !           100:        volatile u_int32_t      curs_color2;    /* color register 2 */
        !           101:        volatile u_int32_t      pad[444];       /* pad to 2KB boundary */
        !           102:        volatile u_int32_t      curs_plane0incr[CG14_CURS_SIZE]; /* autoincr */
        !           103:        volatile u_int32_t      curs_plane1incr[CG14_CURS_SIZE]; /* autoincr */
        !           104: };
        !           105:
        !           106: /* DAC */
        !           107: struct cg14dac {
        !           108:        volatile u_int8_t       dac_addr;       /* address register */
        !           109:        volatile u_int8_t       pad0[255];
        !           110:        volatile u_int8_t       dac_gammalut;   /* gamma LUT */
        !           111:        volatile u_int8_t       pad1[255];
        !           112:        volatile u_int8_t       dac_regsel;     /* register select */
        !           113:        volatile u_int8_t       pad2[255];
        !           114:        volatile u_int8_t       dac_mode;       /* mode register */
        !           115: };
        !           116:
        !           117: #define CG14_CLUT_SIZE 256
        !           118:
        !           119: /* XLUT registers */
        !           120: struct cg14xlut {
        !           121:        volatile u_int8_t       xlut_lut[CG14_CLUT_SIZE];       /* the LUT */
        !           122:        volatile u_int8_t       xlut_lutd[CG14_CLUT_SIZE];      /* ??? */
        !           123:        volatile u_int8_t       pad0[0x600];
        !           124:        volatile u_int8_t       xlut_lutinc[CG14_CLUT_SIZE];    /* autoincrLUT*/
        !           125:        volatile u_int8_t       xlut_lutincd[CG14_CLUT_SIZE];
        !           126: };
        !           127:
        !           128: /* Color Look-Up Table (CLUT) */
        !           129: struct cg14clut {
        !           130:        volatile u_int32_t      clut_lut[CG14_CLUT_SIZE];       /* the LUT */
        !           131:        volatile u_int32_t      clut_lutd[CG14_CLUT_SIZE];      /* ??? */
        !           132:        volatile u_int32_t      clut_lutinc[CG14_CLUT_SIZE];    /* autoincr */
        !           133:        volatile u_int32_t      clut_lutincd[CG14_CLUT_SIZE];
        !           134: };

CVSweb