Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/sgimips/dev add a bunch of GBE registers, no functi...



details:   https://anonhg.NetBSD.org/src/rev/d996d817cc9f
branches:  trunk
changeset: 763681:d996d817cc9f
user:      macallan <macallan%NetBSD.org@localhost>
date:      Wed Mar 30 18:25:31 2011 +0000

description:
add a bunch of GBE registers, no functional change (yet)

diffstat:

 sys/arch/sgimips/dev/crmfbreg.h |  140 ++++++++++++++++++++++++++++++++++++++--
 1 files changed, 133 insertions(+), 7 deletions(-)

diffs (198 lines):

diff -r 467412d9e75b -r d996d817cc9f sys/arch/sgimips/dev/crmfbreg.h
--- a/sys/arch/sgimips/dev/crmfbreg.h   Wed Mar 30 18:11:37 2011 +0000
+++ b/sys/arch/sgimips/dev/crmfbreg.h   Wed Mar 30 18:25:31 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: crmfbreg.h,v 1.11 2011/03/01 21:47:13 macallan Exp $ */
+/* $NetBSD: crmfbreg.h,v 1.12 2011/03/30 18:25:31 macallan Exp $ */
 
 /*-
  * Copyright (c) 2007 Jared D. McNeill <jmcneill%invisible.ca@localhost>
@@ -34,26 +34,137 @@
 #ifndef CRMFBREG_H
 #define CRMFBREG_H
 
+#define        CRMFB_CTRLSTAT          0x00000000
+#define                CRMFB_CTRLSTAT_CHIPID_MASK      0x0000000f
+#define                CRMFB_CTRLSTAT_SENSE            0x00000010 /* monitor sense pin */
+#define                CRMFB_CTRLSTAT_GPIO0_SENSE      0x00000040
+#define                CRMFB_CTRLSTAT_GPIO0_INPUT      0x00000080
+#define                CRMFB_CTRLSTAT_GPIO1_SENSE      0x00000100
+#define                CRMFB_CTRLSTAT_GPIO1_INPUT      0x00000200
+#define                CRMFB_CTRLSTAT_GPIO2_SENSE      0x00000400
+#define                CRMFB_CTRLSTAT_GPIO2_INPUT      0x00000800
+#define                CRMFB_CTRLSTAT_GPIO3_SENSE      0x00001000
+#define                CRMFB_CTRLSTAT_GPIO3_INPUT      0x00002000
+#define                CRMFB_CTRLSTAT_GPIO4_SENSE      0x00004000
+#define                CRMFB_CTRLSTAT_GPIO4_INPUT      0x00008000
+#define                CRMFB_CTRLSTAT_GPIO5_SENSE      0x00010000
+#define                CRMFB_CTRLSTAT_GPIO5_INPUT      0x00020000
+#define                CRMFB_CTRLSTAT_GPIO6_SENSE      0x00040000
+#define                CRMFB_CTRLSTAT_GPIO6_INPUT      0x00080000
+#define                CRMFB_CTRLSTAT_GPIO7_SENSE      0x00100000
+#define                CRMFB_CTRLSTAT_GPIO7_INPUT      0x00200000
+#define                CRMFB_CTRLSTAT_GPIO8_SENSE      0x00400000
+#define                CRMFB_CTRLSTAT_GPIO8_INPUT      0x00800000
+#define                CRMFB_CTRLSTAT_GPIO9_SENSE      0x01000000
+#define                CRMFB_CTRLSTAT_GPIO9_INPUT      0x02000000
+#define                CRMFB_CTRLSTAT_HALF_PHASE       0x04000000 /* for flat panel */
+#define                CRMFB_CTRLSTAT_CSYNC_ALOW       0x08000000 /* csync active low */
+#define                CRMFB_CTRLSTAT_EXTERNAL_PCLK    0x00000000
+#define                CRMFB_CTRLSTAT_DIFF_PCLK        0x10000000 /* differential pclock */
+#define                CRMFB_CTRLSTAT_INTERNAL_PCLK    0x30000000
+
 #define CRMFB_DOTCLOCK         0x00000004
+#define                CRMFB_DOTCLOCK_M_MASK           0x000000ff
+#define                CRMFB_DOTCLOCK_N_MASK           0x00003f00
+#define                CRMFB_DOTCLOCK_P_MASK           0x0000c000
 #define                CRMFB_DOTCLOCK_CLKRUN_SHIFT     20
-#define CRMFB_VT_XY            0x00010000
+#define                CRMFB_DOTCLOCK_OUT_OF_RANGE     0x00400000
+#define                CRMFB_DOTCLOCK_OUT_OF_LOCK      0x00800000
+#define                CRMFB_DOTCLOCK_TDWNI            0x01000000 /* ? */
+#define                CRMFB_DOTCLOCK_TUPI             0x02000000 /* ? */
+
+#define CRMFB_I2C_VGA          0x00000008
+#define        CRMFB_I2C_SDA                   0x00000001
+#define        CRMFB_I2C_SCL                   0x00000002
+
+#define CRMFB_SYSCLK           0x0000000c
+
+#define CRMFB_I2C_FP           0x00000010 /* same bits as CRMFB_I2C_VGA */
+
+#define CRMFB_DEVICE_ID                0x00000014
+#define                CRMFB_DEVICE_ID_DEF             0x00000666 /* this chip is EVIL */
+
+
+#define CRMFB_VT_XY            0x00010000 /* pixel / line counters */
+#define                CRMFB_VT_XY_X_MASK              0x00000fff
+#define                CRMFB_VT_XY_Y_MASK              0x00fff000
 #define                CRMFB_VT_XY_FREEZE_SHIFT        31
+#define CRMFB_VT_MAX           0x00010004 /* same masks as CRMFB_VT_XY, counters in
+                                           * CRMFB_VT_XY reset when reaching max */
+#define CRMFB_VT_VSYNC         0x00010008
+#define                CRMFB_VT_VSYNC_OFF_MASK         0x00000fff
+#define                CRMFB_VT_VSYNC_ON_MASK          0x00fff000
+#define CRMFB_VT_HSYNC         0x0001000c
+#define                CRMFB_VT_HSYNC_OFF_MASK         0x00000fff
+#define                CRMFB_VT_HSYNC_ON_MASK          0x00fff000
+#define CRMFB_VT_VBLANK                0x00010010
+#define                CRMFB_VT_VBLANK_OFF_MASK        0x00000fff
+#define                CRMFB_VT_VBLANK_ON_MASK         0x00fff000
+#define CRMFB_VT_HBLANK                0x00010014
+#define                CRMFB_VT_HBLANK_OFF_MASK        0x00000fff
+#define                CRMFB_VT_HBLANK_ON_MASK         0x00fff000
+
 #define        CRMFB_VT_FLAGS          0x00010018
+#define        CRMFB_VT_FLAGS_VDRV_INVERT      0x00000001
+#define        CRMFB_VT_FLAGS_VDRV_LOW         0x00000002
+#define        CRMFB_VT_FLAGS_HDRV_INVERT      0x00000004
+#define        CRMFB_VT_FLAGS_HDRV_LOW         0x00000008 /* put monitor to sleep */
+#define        CRMFB_VT_FLAGS_SYNC_HIGH        0x00000010
+#define        CRMFB_VT_FLAGS_SYNC_LOW         0x00000020
 #define                CRMFB_VT_FLAGS_SYNC_LOW_MSB     5
 #define                CRMFB_VT_FLAGS_SYNC_LOW_LSB     5
+#define        CRMFB_VT_FLAGS_F2RF_HIGH        0x00000040 /* sync left/right ? */
+
+#define CRMFB_VT_FRAMELOCK     0x0001001c
+#define                CRMFB_VT_FRAMELOCK_F2RF_MASK    0x00000fff /* f2rf toggles when y
+                                                           * reaches this */
+#define                CRMFB_VT_FRAMELOCK_LOCK_MASK    0x00fff000
+
+/* scanline interrupts! */
 #define CRMFB_VT_INTR01                0x00010020
-#define                CRMFB_VT_INTR01_EN              0xffffffff
+#define                CRMFB_INTR_1_MASK               0x00000fff /* intr1 when y == this */
+#define                CRMFB_INTR_0_MASK               0x00fff000 /* intr0 when y == this */
 #define CRMFB_VT_INTR23                0x00010024
-#define                CRMFB_VT_INTR23_EN              0xffffffff
+#define                CRMFB_INTR_3_MASK               0x00000fff /* intr3 when y == this */
+#define                CRMFB_INTR_2_MASK               0x00fff000 /* intr2 when y == this */
+
+#define CRMFB_VT_HPIXEN                0x00010034
+#define                CRMFB_HPIXEN_OFF_MASK           0x00000fff
+#define                CRMFB_HPIXEN_ON_MASK            0x00fff000
 #define CRMFB_VT_VPIX_EN       0x00010038
 #define                CRMFB_VT_VPIX_EN_OFF_SHIFT      0
+#define                CRMFB_VPIXEN_OFF_MASK           0x00000fff
+#define                CRMFB_VPIXEN_ON_MASK            0x00fff000
 #define CRMFB_VT_HCMAP         0x0001003c
+#define                CRMFB_HCMAP_OFF_MASK            0x00000fff
+#define                CRMFB_HCMAP_ON_MASK             0x00fff000
 #define                CRMFB_VT_HCMAP_ON_SHIFT         12
 #define CRMFB_VT_VCMAP         0x00010040
+#define                CRMFB_VCMAP_OFF_MASK            0x00000fff
+#define                CRMFB_VCMAP_ON_MASK             0x00fff000
 #define                CRMFB_VT_VCMAP_ON_SHIFT         12
+
+#define CRMFB_VT_DID_START     0x00010044
+#define                CRMFB_VT_DID_START_X_MASK       0x00000fff
+#define                CRMFB_VT_DID_START_Y_MASK       0x00fff000
+#define CRMFB_VT_CRS_START     0x00010048
+#define                CRMFB_VT_CRS_START_X_MASK       0x00000fff
+#define                CRMFB_VT_CRS_START_Y_MASK       0x00fff000
+#define CRMFB_VT_VC_START      0x0001004c
+#define                CRMFB_VT_VC_START_X_MASK        0x00000fff
+#define                CRMFB_VT_VC_START_Y_MASK        0x00fff000
+
 #define CRMFB_OVR_WIDTH_TILE   0x00020000
-#define CRMFB_OVR_CONTROL      0x00020008
+#define                CRMFB_OVR_WIDTH_TILE_RHS_MASK   0x0000001f /* width of rightmost tile
+                                                           * in 32 byte units */
+#define                CRMFB_OVR_WIDTH_TILES_MASK      0x00001fe0 /* width in whole tiles */
+#define CRMFB_OVR_TILE_PTR     0x00020004
+#define                CRMFB_OVR_TILE_LIST_MASK        0xfffff000
+#define        CRMFB_OVR_DMA_ENABLE            0x00000001
+#define CRMFB_OVR_CONTROL      0x00020008 /* same bits as CRMFB_OVR_TILE_PTR, copied 
+                                           * from here when blanking */
 #define                CRMFB_OVR_CONTROL_DMAEN_SHIFT   0
+
 #define CRMFB_FRM_TILESIZE     0x00030000
 #define                CRMFB_FRM_TILESIZE_RHS_SHIFT    0
 #define                CRMFB_FRM_TILESIZE_WIDTH_SHIFT  5
@@ -64,12 +175,21 @@
 #define                CRMFB_FRM_TILESIZE_FIFOR_SHIFT  15
 #define CRMFB_FRM_PIXSIZE      0x00030004
 #define                CRMFB_FRM_PIXSIZE_HEIGHT_SHIFT  16
+#define CRMFB_TILE_PTR         0x00020008
+#define                CRMFB_TILE_LIST_MASK            0xfffff000
+#define        CRMFB_DMA_ENABLE                0x00000001
 #define CRMFB_FRM_CONTROL      0x0003000c
 #define                CRMFB_FRM_CONTROL_DMAEN_SHIFT   0
 #define                CRMFB_FRM_CONTROL_LINEAR_SHIFT  1
 #define                CRMFB_FRM_CONTROL_TILEPTR_SHIFT 9
+
+#define CRMFB_DID_PTR          0x00040000
+#define                CRMFB_DID_BASE_MASK             0x0000ffff
+#define        CRMFB_DID_DMA_ENABLE            0x00010000
 #define CRMFB_DID_CONTROL      0x00040004
 #define                CRMFB_DID_CONTROL_DMAEN_SHIFT   0
+
+#define CRMFB_WID              0x00048000      /* 32 WIDs */
 #define CRMFB_MODE             0x00048000
 #define                CRMFB_MODE_TYP_SHIFT            2
 #define                        CRMFB_MODE_TYP_I8       0
@@ -77,9 +197,14 @@
 #define                        CRMFB_MODE_TYP_RGB8     5
 #define                CRMFB_MODE_BUF_SHIFT            0
 #define                        CRMFB_MODE_BUF_BOTH     3
-#define CRMFB_CMAP             0x00050000
+#define                CRMFB_MODE_CMAP_SELECT_SHIFT    5 /* upper 5 bit */
+#define                CRMFB_MODE_GAMMA_ENABLE_SHIFT   10
+#define                CRMFB_MODE_FP_ENABLE_SHIFT      11 /* two bits */
+
+#define CRMFB_CMAP             0x00050000      /* 32*256 entries */
+#define CRMFB_CMAP_OVL         0x00051400
 #define CRMFB_CMAP_FIFO                0x00058000
-#define CRMFB_GMAP             0x00060000
+#define CRMFB_GMAP             0x00060000      /* gamma map */
 #define CRMFB_CURSOR_POS       0x00070000
 /*
  * upper 16 bit are Y, lower 16 bit are X - both signed so there's no need for
@@ -87,6 +212,7 @@
  */
 #define CRMFB_CURSOR_CONTROL   0x00070004
        #define CRMFB_CURSOR_ON         0x00000001
+       #define CRMFB_CURSOR_CROSSHAIR  0x00000002
 #define CRMFB_CURSOR_CMAP0     0x00070008
 #define CRMFB_CURSOR_CMAP1     0x0007000c
 #define CRMFB_CURSOR_CMAP2     0x00070010



Home | Main Index | Thread Index | Old Index