Source-Changes-HG archive

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

[src/trunk]: src/sys/dev/pci add a bunch of register definitions



details:   https://anonhg.NetBSD.org/src/rev/45d437cbf216
branches:  trunk
changeset: 773439:45d437cbf216
user:      macallan <macallan%NetBSD.org@localhost>
date:      Thu Feb 02 07:09:53 2012 +0000

description:
add a bunch of register definitions
not used yet but I better commit them now than have he tell me that I forgot
them when pm2fb.c starts using them

diffstat:

 sys/dev/pci/pm2reg.h |  122 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 120 insertions(+), 2 deletions(-)

diffs (159 lines):

diff -r a8eb79ada883 -r 45d437cbf216 sys/dev/pci/pm2reg.h
--- a/sys/dev/pci/pm2reg.h      Thu Feb 02 03:50:32 2012 +0000
+++ b/sys/dev/pci/pm2reg.h      Thu Feb 02 07:09:53 2012 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pm2reg.h,v 1.5 2011/11/24 03:23:08 macallan Exp $      */
+/*     $NetBSD: pm2reg.h,v 1.6 2012/02/02 07:09:53 macallan Exp $      */
 
 /*
  * Copyright (c) 2009 Michael Lorenz
@@ -39,6 +39,13 @@
 #define PM2_INPUT_FIFO_SPACE   0x00000018
 #define PM2_OUTPUT_FIFO_WORDS  0x00000020
 
+#define PM2_VCLKCTL            0x00000040
+#define                VCC_CLOCK_A             0x00000000
+#define                VCC_CLOCK_B             0x00000001
+#define                VCC_CLOCK_C             0x00000002
+/* PCI clocks to wait between RAMDAC accesses */ 
+#define                VCC_RAMDAC_WAIT_MASK    0x000003fc
+
 #define PM2_APERTURE1_CONTROL  0x00000050
 #define PM2_APERTURE2_CONTROL  0x00000058
 #define                PM2_AP_BYTESWAP         0x00000001
@@ -60,6 +67,38 @@
 
 #define PM2_SCREEN_BASE                0x00003000 /* in 64bit units */
 #define PM2_SCREEN_STRIDE      0x00003008 /* in 64bit units */
+#define PM2_HTOTAL             0x00003010
+#define PM2_HGATE_END          0x00003018
+#define PM2_HBLANK_END         0x00003020
+#define PM2_HSYNC_START                0x00003028
+#define PM2_HSYNC_END          0x00003030
+#define PM2_VTOTAL             0x00003038
+#define PM2_VBLANK_END         0x00003040
+#define PM2_VSYNC_START                0x00003048
+#define PM2_VSYNC_END          0x00003050
+#define PM2_VIDEO_CONTROL      0x00003058
+#define        PM2_VC_VIDEO_ENABLE     0x00000001
+#define        PM2_VC_BLANK_ACR_LOW    0x00000002
+#define        PM2_VC_LINE_DOUBLE      0x00000004
+#define        PM2_VC_HSYNC_FORCE_H    0x00000000
+#define        PM2_VC_HSYNC_ACT_HIGH   0x00000008
+#define        PM2_VC_HSYNC_FORCE_L    0x00000010
+#define        PM2_VC_HSYNC_ACT_LOW    0x00000018
+#define        PM2_VC_VSYNC_FORCE_H    0x00000000
+#define        PM2_VC_VSYNC_ACT_HIGH   0x00000020
+#define        PM2_VC_VSYNC_FORCE_L    0x00000040
+#define        PM2_VC_VSYNC_ACT_LOW    0x00000060
+#define        PM2_VC_BP_BASE_PENDING  0x00000080
+#define        PM2_VC_RE_BASE_PENDING  0x00000100
+#define        PM2_VC_SWAP_SYNC_BLANK  0x00000000
+#define        PM2_VC_SWAP_FREERUNNING 0x00000200
+#define        PM2_VC_SWAP_LIMIT_FR    0x00000400
+#define        PM2_VC_STEREO_ENABLE    0x00000800
+#define        PM2_VC_RIGHT_EYE_ACT_L  0x00001000
+#define        PM2_VC_DISP_RIGHT_FRAME 0x00002000      /* RO, left otherwise */
+#define        PM2_VC_BP_RIGHT_PENDING 0x00004000
+#define        PM2_VC_RE_RIGHT_PENDING 0x00008000
+#define        PM2_VC_RAMDAC_64BIT     0x00010000      /* 32bit otherwise */
 
 #define PM2_DISPLAY_DATA       0x00003068
 #define                PM2_DD_SDA_IN           0x00000001
@@ -79,9 +118,16 @@
 #define PM2_DAC_PAL_WRITE_IDX  0x00004000
 #define PM2_DAC_DATA           0x00004008
 #define PM2_DAC_MASK           0x00004010
-#define PM2_DAC_PAL_READ       0x00004018
+#define PM2_DAC_PAL_READ_IDX   0x00004018
+/* these are different on PM2V: */
 #define PM2_DAC_CURSOR_PAL     0x00004020
 #define PM2_DAC_CURSOR_DATA    0x00004028
+/* here we go: */
+#define PM2V_DAC_INDEX_LOW     0x00004020
+#define PM2V_DAC_INDEX_HIGH    0x00004028
+#define PM2V_DAC_INDEX_DATA    0x00004030
+#define PM2V_DAC_INDEX_CONTROL 0x00004038
+
 #define PM2_DAC_INDEX_DATA     0x00004050
 #define PM2_DAC_CURSOR_RAM     0x00004058
 #define PM2_DAC_CURSOR_X_LOW   0x00004060
@@ -89,6 +135,78 @@
 #define PM2_DAC_CURSOR_Y_LOW   0x00004070
 #define PM2_DAC_CURSOR_Y_HIGH  0x00004078
 
+/* RAMDAC registers ( through INDEX_DATA */
+#define        PM2_DAC_COLOR_MODE      0x18
+#define                CM_PALETTE      0x00
+#define                CM_RGB332       0x01
+#define                CM_RGB232OFFSET 0x02
+#define                CM_RGBA2321     0x03
+#define                CM_RGBA5551     0x04
+#define                CM_RGBA4444     0x05
+#define                CM_RGB565       0x06
+#define                CM_RGBA8888     0x08
+#define                CM_RGB888       0x09
+#define                CM_GUI_DISABLE  0x10
+#define                CM_RGB          0x20    /* BGR otherwise */
+#define                CM_TRUECOLOR    0x80    /* use palette for gamma correction */
+
+#define PM2_DAC_MISC_CONTROL   0x1e
+#define                MC_POWERDOWN    0x01
+#define                MC_PALETTE_8BIT 0x02    /* 6bit otherwise */
+#define                MC_HSYNC_INV    0x04
+#define                MC_VSYNC_INV    0x08
+#define                MC_SYNCONGREEN  0x10
+#define PM2_DAC_PIXELCLKA_M    0x20
+#define PM2_DAC_PIXELCLKA_N    0x21
+#define PM2_DAC_PIXELCLKA_P    0x22
+#define        PCLK_ENABLE     0x08
+#define PM2_DAC_PIXELCLKB_M    0x23
+#define PM2_DAC_PIXELCLKB_N    0x24
+#define PM2_DAC_PIXELCLKB_P    0x25
+#define PM2_DAC_PIXELCLKC_M    0x26
+#define PM2_DAC_PIXELCLKC_N    0x27
+#define PM2_DAC_PIXELCLKC_P    0x28
+#define PM2_DAC_PIXELCLK_STATUS        0x29
+#define                PCLK_LOCKED     0x10
+#define PM2_DAC_MEMCLK_M       0x30
+#define PM2_DAC_MEMCLK_N       0x31
+#define PM2_DAC_MEMCLK_P       0x32
+#define PM2_DAC_MEMCLK_STATUS  0x33
+
+/* PM2V RAMDAC */
+#define PM2V_DAC_MISC_CONTROL          0x000
+#define                PM2V_DAC_8BIT           0x01    /* 6bit otherwise */
+#define                PM2V_DAC_BYPASS_CLUT    0x08    /* ??? guess from xorg */
+#define                PM2V_DAC_8_24_OVERLAY   0x10    /* ??? guess from xorg */
+#define PM2V_DAC_SYNC_CONTROL          0x001
+#define                PM2V_DAC_HSYNC_INV      0x01
+#define                PM2V_DAC_VSYNC_INV      0x08
+#define PM2V_DAC_CONTROL               0x002
+#define PM2V_DAC_PIXEL_SIZE            0x003
+#define                PM2V_PS_8BIT            0x00
+#define                PM2V_PS_16BIT           0x01
+#define                PM2V_PS_32BIT           0x02
+#define                PM2V_PS_24BIT           0x04
+#define PM2V_DAC_COLOR_FORMAT          0x004
+#define                PM2V_DAC_PALETTE        0x2e
+#define                PM2V_DAC_RGB555         0x61
+#define                PM2V_DAC_RGB565         0x70
+#define                PM2V_DAC_RGB888         0x60
+#define                PM2V_DAC_RGBA8888       0x20
+
+#define PM2V_DAC_CHECK_CONTROL         0x018
+#define PM2V_DAC_CLOCK_CONTROL         0x200
+#define PM2V_DAC_CLOCK_A_M             0x201
+#define PM2V_DAC_CLOCK_A_N             0x202
+#define PM2V_DAC_CLOCK_A_P             0x203
+#define PM2V_DAC_CLOCK_B_M             0x204
+#define PM2V_DAC_CLOCK_B_N             0x205
+#define PM2V_DAC_CLOCK_B_P             0x206
+#define PM2V_DAC_MCLK_CONTROL          0x20D
+#define PM2V_DAC_MCLK_M                        0x20E
+#define PM2V_DAC_MCLK_N                        0x20F
+#define PM2V_DAC_MCLK_P                        0x210
+
 /* drawing engine */
 #define PM2_RE_STARTXDOM       0x00008000
 #define        PM2_RE_DXDOM            0x00008008



Home | Main Index | Thread Index | Old Index