Annotation of sys/dev/ic/ibm525reg.h, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: ibm525reg.h,v 1.1 2005/07/19 09:34:14 miod Exp $ */
! 2: /*
! 3: * Copyright (c) 2005, Miodrag Vallat.
! 4: *
! 5: * Redistribution and use in source and binary forms, with or without
! 6: * modification, are permitted provided that the following conditions
! 7: * are met:
! 8: * 1. Redistributions of source code must retain the above copyright
! 9: * notice, this list of conditions and the following disclaimer.
! 10: * 2. Redistributions in binary form must reproduce the above copyright
! 11: * notice, this list of conditions and the following disclaimer in the
! 12: * documentation and/or other materials provided with the distribution.
! 13: *
! 14: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
! 15: * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
! 16: * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
! 17: * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
! 18: * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
! 19: * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
! 20: * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
! 21: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
! 22: * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
! 23: * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
! 24: * POSSIBILITY OF SUCH DAMAGE.
! 25: */
! 26:
! 27: /*
! 28: * IBM RGB525 Ramdac registers
! 29: */
! 30:
! 31: #define IBM525_REVISION 0x00
! 32: #define IBM525_ID 0x01
! 33:
! 34: /* Miscellaneous clock control */
! 35: #define IBM525_MISC_CLOCK 0x02
! 36: #define MC_B24P_PLL 0x00
! 37: #define MC_B24P_SCLK 0x20
! 38: #define MC_DDOT_DIV_1 0x00 /* (VRAM size / 1) bpp */
! 39: #define MC_DDOT_DIV_2 0x02 /* (VRAM size / 2) bpp */
! 40: #define MC_DDOT_DIV_4 0x04 /* (VRAM size / 4) bpp */
! 41: #define MC_DDOT_DIV_8 0x06 /* (VRAM size / 8) bpp */
! 42: #define MC_DDOT_DIV_16 0x08 /* (VRAM size / 16) bpp */
! 43: #define MC_DDOT_DIV_MASK 0x0e
! 44: #define MC_PLL_ENABLE 0x01
! 45:
! 46: /* Sync control */
! 47: #define IBM525_SYNC 0x03
! 48: #define S_CSYN_INVERT 0x40 /* Composite sync invert */
! 49: #define S_VSYN_INVERT 0x20 /* Vertical sync invert (positive) */
! 50: #define S_HSYN_INVERT 0x10 /* Horizontal sync invert (positive) */
! 51: #define S_VSYN_NORMAL 0x00
! 52: #define S_VSYN_HIGH 0x04
! 53: #define S_VSYN_LOW 0x08
! 54: #define S_VSYN_DISABLE 0x0c
! 55: #define S_VSYN_MASK 0x0c
! 56: #define S_HSYN_NORMAL 0x00
! 57: #define S_HSYN_HIGH 0x01
! 58: #define S_HSYN_LOW 0x02
! 59: #define S_HSYN_DISABLE 0x03
! 60: #define S_HSYN_MASK 0x03
! 61:
! 62: /* Horizontal sync position */
! 63: #define IBM525_HSYNC_POS 0x04
! 64:
! 65: /* Power management */
! 66: #define IBM525_POWER 0x05
! 67: #define P_SCLK_DISABLE 0x10
! 68: #define P_DDOT_DISABLE 0x08
! 69: #define P_SYNC_DISABLE 0x04
! 70: #define P_ICLK_DISABLE 0x02 /* Disable internal DAC clock */
! 71: #define P_DAC_PWR_DISABLE 0x01 /* Disable internal DAC power */
! 72:
! 73: /* DAC operation */
! 74: #define IBM525_DAC_OP 0x06
! 75: #define DO_SOG 0x08 /* Sync on Green */
! 76: #define DO_FAST_SLEW 0x02 /* fast (>= 20 MHz) pixel clock */
! 77: #define DO_BLANK_BR 0x04 /* blank blue and red channels */
! 78: #define DO_PEDESTAL 0x01
! 79:
! 80: /* Palette control */
! 81: #define IBM525_PALETTE 0x07
! 82:
! 83: /* System clock control */
! 84: #define IBM525_SYSCLK 0x08
! 85: #define SC_ENABLE 0x01
! 86:
! 87: /* Pixel format */
! 88: #define IBM525_PIXEL 0x0a
! 89: #define PIX_4BPP 0x02
! 90: #define PIX_8BPP 0x03
! 91: #define PIX_16BPP 0x04
! 92: #define PIX_24BPP 0x05
! 93: #define PIX_32BPP 0x06
! 94:
! 95: /* 8bpp pixel format */
! 96: #define IBM525_PF8 0x0b
! 97: #define PF8_INDIRECT 0x00
! 98: #define PF8_DIRECT 0x01
! 99:
! 100: /* 16bpp pixel format */
! 101: #define IBM525_PF16 0x0c
! 102: #define PF16_INDIRECT 0x00
! 103: #define PF16_DIRECT 0xc0
! 104: #define PF16_LINEAR 0x04
! 105: #define PF16_555 0x00 /* 5:5:5 15bpp */
! 106: #define PF16_565 0x02 /* 5:6:5 15bpp */
! 107:
! 108: /* 24bpp pixel format */
! 109: #define IBM525_PF24 0x0d
! 110: #define PF24_INDIRECT 0x00
! 111: #define PF24_DIRECT 0x01
! 112:
! 113: /* 32bpp pixel format */
! 114: #define IBM525_PF32 0x0e
! 115: #define PF32_INDIRECT 0x00
! 116: #define PF32_DIRECT 0x03
! 117: #define PF32_BYPASS 0x00
! 118: #define PF32_LOOKUP 0x04
! 119:
! 120: /* Pixel PLL control #1 */
! 121: #define IBM525_PLL1 0x10
! 122: #define P1_CLK_REF 0x00
! 123: #define P1_CLK_EXT 0x10
! 124: #define P1_SRC_EXT_F 0x00 /* Use F registers for timing */
! 125: #define P1_SRC_EXT_MN 0x01 /* Use M:N registers for timing */
! 126: #define P1_SRC_DIRECT_F 0x02 /* Use F registers for timing */
! 127: #define P1_SRC_DIRECT_MN 0x03 /* Use M:N registers for timing */
! 128:
! 129: /* Pixel PLL control #2 */
! 130: #define IBM525_PLL2 0x11
! 131:
! 132: /* Fixed PLL reference */
! 133: #define IBM525_PLL_FIXED_REF 0x14
! 134:
! 135: /* PLL reference divider */
! 136: #define IBM525_PLL_REF_DIV 0x15
! 137:
! 138: /* PLL VCO divider */
! 139: #define IBM525_PLL_VCO_DIV 0x16
! 140:
! 141: /* N0-N15 */
! 142: #define IBM525_F(n) (0x20 + (n))
! 143:
! 144: /* Miscellaneous control #1 */
! 145: #define IBM525_MISC1 0x70
! 146: #define M1_VRAM_32 0x00
! 147: #define M1_VRAM_64 0x01
! 148: #define M1_VRAM_SIZE_MASK 0x01
! 149: #define M1_SENSE_DISABLE 0x10
! 150:
! 151: /* Miscellaneous control #2 */
! 152: #define IBM525_MISC2 0x71
! 153: #define M2_PCLK_LOCAL 0x00
! 154: #define M2_PCLK_PLL 0x40
! 155: #define M2_PCLK_EXT 0x80
! 156: #define M2_PCLK_MASK 0xc0
! 157: #define M2_PALETTE_6 0x00 /* VGA compatible 6bit palette */
! 158: #define M2_PALETTE_8 0x04 /* 8bit palette */
! 159: #define M2_PALETTE_MASK 0x04
! 160: #define M2_MODE_VRAM 0x01
! 161: #define M2_MODE_VGA 0x00
! 162: #define M2_MODE_MASK 0x01
! 163:
! 164: /* Miscellaneous control #3 */
! 165: #define IBM525_MISC3 0x72
! 166: #define M3_SWAP_BR 0x80 /* swap blue and red */
! 167: #define M3_SWAP_WORDS 0x10
! 168: #define M3_SWAP_NIBBLES 0x02
! 169:
! 170: /* Miscellaneous control #4 */
! 171: #define IBM525_MISC4 0x73
! 172: #define M4_INVERT_DCLK 0x10
! 173: #define M4_FAST 0x20 /* Fast (>= 50 MHz) pixel clock */
! 174:
! 175: /*
! 176: * Pixel clock encoding
! 177: */
! 178: #define MHZ_TO_PLL(m) \
! 179: (m) < 32 ? 0x00 | (4 * (m) - 65) : \
! 180: (m) < 64 ? 0x40 | (2 * (m) - 65) : \
! 181: (m) < 128 ? 0x80 | ((m) - 65) : \
! 182: 0xc0 | ((m) / 2 - 65)
CVSweb