1*627a4f61Srumble /* $Id: lightreg.h,v 1.3 2006/12/29 00:31:48 rumble Exp $ */ 278f4031eSrumble 378f4031eSrumble /* 478f4031eSrumble * Copyright (c) 2006 Stephen M. Rumble 578f4031eSrumble * All rights reserved. 678f4031eSrumble * 778f4031eSrumble * Redistribution and use in source and binary forms, with or without 878f4031eSrumble * modification, are permitted provided that the following conditions 978f4031eSrumble * are met: 1078f4031eSrumble * 1. Redistributions of source code must retain the above copyright 1178f4031eSrumble * notice, this list of conditions and the following disclaimer. 1278f4031eSrumble * 2. The name of the author may not be used to endorse or promote products 1378f4031eSrumble * derived from this software without specific prior written permission. 1478f4031eSrumble * 1578f4031eSrumble * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 1678f4031eSrumble * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 1778f4031eSrumble * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 1878f4031eSrumble * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 1978f4031eSrumble * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 2078f4031eSrumble * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2178f4031eSrumble * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2278f4031eSrumble * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2378f4031eSrumble * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 2478f4031eSrumble * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2578f4031eSrumble */ 2678f4031eSrumble 2778f4031eSrumble #ifndef _ARCH_SGIMIPS_GIO_LIGHTREG_H_ 2878f4031eSrumble #define _ARCH_SGIMIPS_GIO_LIGHTREG_H_ 2978f4031eSrumble 3078f4031eSrumble #define LIGHT_ADDR_0 0x1f3f0000 3178f4031eSrumble #define LIGHT_ADDR_1 0x1f3f8000 /* dual head */ 3278f4031eSrumble 3378f4031eSrumble #define REX_PAGE0_SET 0x00000000 /* REX registers */ 3478f4031eSrumble #define REX_PAGE0_GO 0x00000800 3578f4031eSrumble #define REX_PAGE1_SET 0x00004790 /* configuration registers */ 3678f4031eSrumble #define REX_PAGE1_GO 0x00004F90 3778f4031eSrumble 3878f4031eSrumble /* REX register offsets (from REX_PAGE0_{SET,GO}) */ 39d7e13036Srumble #define REX_P0REG_COMMAND 0x00000000 40d7e13036Srumble #define REX_P0REG_XSTARTI 0x0000000C 41d7e13036Srumble #define REX_P0REG_YSTARTI 0x0000001C 42d7e13036Srumble #define REX_P0REG_XYMOVE 0x00000034 43d7e13036Srumble #define REX_P0REG_COLORREDI 0x00000038 44d7e13036Srumble #define REX_P0REG_COLORGREENI 0x00000040 45d7e13036Srumble #define REX_P0REG_COLORBLUEI 0x00000048 46d7e13036Srumble #define REX_P0REG_COLORBACK 0x0000005C 47d7e13036Srumble #define REX_P0REG_ZPATTERN 0x00000060 48d7e13036Srumble #define REX_P0REG_XENDI 0x00000084 49d7e13036Srumble #define REX_P0REG_YENDI 0x00000088 5078f4031eSrumble 5178f4031eSrumble /* configuration register offsets (from REX_PAGE1_{SET,GO}) */ 52d7e13036Srumble #define REX_P1REG_WCLOCKREV 0x00000054 /* nsclock / revision */ 53d7e13036Srumble #define REX_P1REG_CFGSEL 0x0000005c /* function selector */ 54d7e13036Srumble #define REX_P1REG_VC1_ADDRDATA 0x00000060 /* vc1 r/w addr and data 8bit */ 55d7e13036Srumble #define REX_P1REG_CFGMODE 0x00000068 /* REX system config */ 56*627a4f61Srumble #define REX_P1REG_XYOFFSET 0x0000006c /* x, y start of screen */ 5778f4031eSrumble 5878f4031eSrumble /* REX opcodes */ 59d7e13036Srumble #define REX_OP_NOP 0x00000000 60d7e13036Srumble #define REX_OP_DRAW 0x00000001 6178f4031eSrumble 6278f4031eSrumble /* REX command flags */ 63d7e13036Srumble #define REX_OP_FLG_BLOCK 0x00000008 64d7e13036Srumble #define REX_OP_FLG_LENGTH32 0x00000010 65d7e13036Srumble #define REX_OP_FLG_QUADMODE 0x00000020 66d7e13036Srumble #define REX_OP_FLG_XYCONTINUE 0x00000080 67d7e13036Srumble #define REX_OP_FLG_STOPONX 0x00000100 68d7e13036Srumble #define REX_OP_FLG_STOPONY 0x00000200 69d7e13036Srumble #define REX_OP_FLG_ENZPATTERN 0x00000400 70d7e13036Srumble #define REX_OP_FLG_LOGICSRC 0x00080000 71d7e13036Srumble #define REX_OP_FLG_ZOPAQUE 0x00800000 72d7e13036Srumble #define REX_OP_FLG_ZCONTINUE 0x01000000 7378f4031eSrumble 7478f4031eSrumble /* REX logicops */ 7578f4031eSrumble #define REX_LOGICOP_SRC 0x30000000 7678f4031eSrumble 7778f4031eSrumble /* configmode bits */ 78d7e13036Srumble #define REX_CFGMODE_BUSY 0x00000001 79d7e13036Srumble 80d7e13036Srumble /* configsel bits */ 81d7e13036Srumble #define REX_CFGSEL_VC1_LADDR 0x00000004 /* low address bits */ 82d7e13036Srumble #define REX_CFGSEL_VC1_HADDR 0x00000005 /* high address bits */ 83d7e13036Srumble #define REX_CFGSEL_VC1_SYSCTL 0x00000006 84d7e13036Srumble 85d7e13036Srumble /* vc1 sysctl bits (byte) */ 86d7e13036Srumble #define VC1_SYSCTL_VIDEO_ON 0x04 87d7e13036Srumble #define VC1_SYSCTL_CURSOR 0x10 88d7e13036Srumble #define VC1_SYSCTL_CURSOR_ON 0x20 8978f4031eSrumble 9078f4031eSrumble #endif /* !_ARCH_SGIMIPS_GIO_LIGHTREG_H_ */ 91