summaryrefslogtreecommitdiffstats
path: root/private/ntos/nthals/halfire/ppc/fpdcc.h
diff options
context:
space:
mode:
Diffstat (limited to 'private/ntos/nthals/halfire/ppc/fpdcc.h')
-rw-r--r--private/ntos/nthals/halfire/ppc/fpdcc.h142
1 files changed, 142 insertions, 0 deletions
diff --git a/private/ntos/nthals/halfire/ppc/fpdcc.h b/private/ntos/nthals/halfire/ppc/fpdcc.h
new file mode 100644
index 000000000..09a27bc11
--- /dev/null
+++ b/private/ntos/nthals/halfire/ppc/fpdcc.h
@@ -0,0 +1,142 @@
+/*
+ * Copyright (c) 1995 FirePower Systems, Inc.
+ * (Do Not Distribute without permission)
+ *
+ * $RCSfile: fpdcc.h $
+ * $Revision: 1.11 $
+ * $Date: 1996/01/11 07:06:16 $
+ * $Locker: $
+ *
+ * This file contains references to registers in the display controller chip
+ * known as the DCC. This chip control's vram setup and works in conjunction
+ * with the ram dac which, in this case is a Brooktree Bt445.
+ *
+ */
+
+#ifndef FPDCC_H
+#define FPDCC_H
+
+//
+// Prototype declarations for routines in fpDcc.c
+
+
+// The dcc registers are not memory mapped but are indexed map through the
+// dcc Index register. To access any dcc specific register, write the register
+// value to the index register and either read or write data through the data
+// register. See fpio.h for the macros to write to these registers
+//
+// register and address offset
+//-----------------------------
+//
+#define dccIndex DCC_INDEX
+
+#define dccID 0x00 // ID register
+#define dccMonId 0x01 // Monitor and Panel ID
+#define dccGpioA 0x02 // General Purpose I/O register A
+#define dccIntReg 0x03 // Interrupt Status
+#define dccPLL 0x04 // PLL Interface Register
+#define dccTimingA 0x05 // Timing Register A
+#define dccConfigA 0x06 // Configuration Register A
+#define dccConfigB 0x07 // Configuration Register B
+#define dccHCntLow 0x08 // Hoizontal Count Low
+#define dccHCntHigh 0x09 // Hoizontal Count High
+#define dccVCntLow 0x0A // Vertical Count Low
+#define dccVCntHigh 0x0B // Vertical Count High
+#define dccHSyncStop 0x0C // Hoizontal Sync Stop
+#define dccHBlankStopLow 0x0D // Horizontal Blank Stop low
+#define dccHBlankStopHigh 0x0E // Horizontal Blank Stop High
+#define dccHDataStopLow 0x0F // Horizontal Data Stop Low
+#define dccHDataStopHigh 0x10 // Horizontal Data Stop High
+#define dccVSyncStop 0x11 // Vertical Sync Stop
+#define dccVBlankStop 0x12 // Vertical Blank Stop
+#define dccVDataStopLow 0x13 // Vertical Data Stop Low
+#define dccVDataStopHigh 0x14 // Vertical Data Stop High
+#define dccCSynicStartLow 0x15 // Composite Sync Start Low
+#define dccCSyncStartHigh 0x16 // Composite Sync Start High
+#define dccLineStart 0x17 // Line Start
+#define dccLineStop 0x18 // Line Stop
+#define dccFrameStart 0x19 // Frame Start
+#define dccFrameStop 0x1a // Frame Stop
+#define dccIntTriggerLow 0x1B // Interrupt Trigger Low
+#define dccIntTriggerHigh 0x1C // Interrupt Trigger High
+#define dccTimingB 0x1D // Timing Register B
+#define dccGpioB 0x1E // General Purpose I/O register B
+
+//
+// 0x1E - 0x3F reserved;
+//
+
+//
+// Inidividual bit mappings for register use:
+
+#define INT_BIT 0x01 // LSB of Interrupt Register: dccIntReg
+
+#define PLL_CLK 0x01 // PLL clock bit in Pll Interface: dccPLL
+#define PLL_DATA 0x02 // Data Bit for the PLL port.
+#define PLL_WnotR 0x04 // this bit activates the Pll data driver.
+
+#define HV_SYNC_DELAY 0x0f
+#define CSYNC_DELAY 0xf0
+
+//
+// Configuration Register A
+//
+#define HSYNC_ENABLE 0x01 // enable Horizontal Sync pulse
+#define VSYNC_ENABLE 0x02 // enable Vertical Sync pulse
+#define CSYNC_ENABLE 0x04 // enable Composite Sync pulse
+#define FRAME_ENABLE 0x08 // enable Frame pulse
+#define LINE_ENABLE 0x10 // enable Line pulse
+
+#define A_1to1_32BitDac 0x00 // 1:1 mux mode, frequency = DispClk
+#define AB_2to1_32BitDac 0x20 // 2:1 mux mode, frequency = 1/2DispClk
+#define A_1to1_64BitDac 0x80 // 1:1 mux, 64 bit Data width, f=DispClk
+#define A_2to1_32BitDac 0xA0 // 2:1 mux, 32 bit width, f=1/2(DispClk)
+#define A_2to1_64BitDac 0xC0 // 2:1 mux, 64 bit width, f=1/2(DispClk)
+#define A_4to1_32BitDac 0xE0 // 4:1 mux, 32 bit width, f=1/4(DispClk)
+
+//
+// Configuration Register B
+//
+#define HSYNC_ACTV_HIGH 0x01 // Active High state for Horizontal Sync
+#define VSYNC_ACTV_HIGH 0x02 // Active High state for Vertical Sync
+#define CSYNC_ACTV_HIGH 0x04 // Active High state for Composite Sync
+#define FRAME_ACTV_HIGH 0x08 // Active High state for Frame Pulse
+#define LINE_ACTV_HIGH 0x10 // Active High state for Line Pulse
+#define BLANK_ACTV_HIGH 0x20 // Active High state for Blanking Pulse
+#define DCC_HALT_CLK 0x80 // Disables and Resets all counters and state
+ // machines. Xbus interface is still active.
+
+// DCC Definitions
+#define INT_STATUS 0x03
+#define PLL_INTERFACE 0x04
+#define TIMING_A 0x05
+#define CONFIG_A 0x06
+#define CONFIG_B 0x07
+#define HZNTL_COUNT_L 0x08
+#define HZNTL_COUNT_H 0x09
+#define VERT_COUNT_L 0x0a
+#define VERT_COUNT_H 0x0b
+#define HZNTL_SYNC_STOP 0x0c
+#define HZNTL_BLK_STP_L 0x0d
+#define HZNTL_BLK_STP_H 0x0e
+#define HZNTL_DTA_STP_L 0x0f
+#define HZNTL_DTA_STP_H 0x10
+#define VERT_SYNC_STOP 0x11
+#define VERT_BLK_STOP 0x12
+#define VERT_DTA_STP_L 0x13
+#define VERT_DTA_STP_H 0x14
+#define GPIO_B 0x1e
+
+
+//
+// VRAM width list.
+//
+
+typedef enum _DCC_VRAM_WIDTH {
+ VRAM_32BIT = 0,
+ VRAM_64BIT,
+ VRAM_128BIT,
+ NUMBER_OF_VRAM_WIDTH_TYPES
+} DCC_VRAM_WIDTH;
+
+#endif