[BACK]Return to cfxgareg.h CVS log [TXT][DIR] Up to [local] / sys / dev / pcmcia

Annotation of sys/dev/pcmcia/cfxgareg.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: cfxgareg.h,v 1.5 2006/11/28 12:01:27 miod Exp $       */
        !             2:
        !             3: /*
        !             4:  * Copyright (c) 2005, 2006, Matthieu Herrb and Miodrag Vallat
        !             5:  *
        !             6:  * Permission to use, copy, modify, and distribute this software for any
        !             7:  * purpose with or without fee is hereby granted, provided that the above
        !             8:  * copyright notice and this permission notice appear in all copies.
        !             9:  *
        !            10:  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES
        !            11:  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
        !            12:  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
        !            13:  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
        !            14:  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
        !            15:  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
        !            16:  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
        !            17:  */
        !            18:
        !            19: /*
        !            20:  * S1D13806 Registers.
        !            21:  * Registers larger than 8 bits are little-endian.
        !            22:  */
        !            23:
        !            24: /* Revision code register - RO */
        !            25: #define        CFREG_REV                       0x0000
        !            26: #define        CR_REV_MASK             0x03    /* revision code */
        !            27: #define        CR_REV_SHIFT            0
        !            28: #define        CR_PRODUCT_MASK         0xfc    /* product code */
        !            29: #define        CR_PRODUCT_SHIFT        2
        !            30: #define        PRODUCT_S1D13806        0x07
        !            31:
        !            32: /* Miscellaneous register - RW */
        !            33: #define        CFREG_MISC                      0x0001
        !            34: #define        CM_MEMSEL               0x00
        !            35: #define        CM_REGSEL               0x80    /* register/memory select */
        !            36:
        !            37: /* General IO pins configuration register - RW, 12 bits */
        !            38: #define        CFREG_GPIO_CONF                 0x0004
        !            39:
        !            40: /* General IO pins control register - RW, 12 bits */
        !            41: #define        CFREG_GPIO_CTRL                 0x0008
        !            42:
        !            43: /* Configuration status register - RO */
        !            44: #define        CFREG_STATUS                    0x000c
        !            45:
        !            46: /* Memory clock configuration register - RW, needs 16 bits access */
        !            47: #define        CFREG_MEMCLK                    0x0010
        !            48: #define        MEMCLK_DIVIDE           0x10
        !            49: #define        MEMCLK_SRC_CLKI         0x00
        !            50: #define        MEMCLK_SRC_BUSCLK       0x01
        !            51: #define        MEMCLK_SRC_CLK3         0x02
        !            52:
        !            53: /* LCD Pixel clock configuration register - RW */
        !            54: #define        CFREG_LCD_PCLK                  0x0014
        !            55: #define        LCD_PCLK_SRC_CLKI       0x00
        !            56: #define        LCD_PCLK_SRC_BUSCLK     0x01
        !            57: #define        LCD_PCLK_SRC_CLKI2      0x02
        !            58: #define        LCD_PCLK_SRC_MCLK       0x03
        !            59: #define        LCD_PCLK_DIV_1          0x00
        !            60: #define        LCD_PCLK_DIV_2          0x10
        !            61: #define        LCD_PCLK_DIV_3          0x20
        !            62: #define        LCD_PCLK_DIV_4          0x30
        !            63:
        !            64: /* CRT/TV Pixel clock configuration register - RW */
        !            65: #define        CFREG_CRTTV_PCLK                0x0018
        !            66: #define        CRT_PCLK_SRC_CLKI       0x00
        !            67: #define        CRT_PCLK_SRC_BUSCLK     0x01
        !            68: #define        CRT_PCLK_SRC_CLKI2      0x02
        !            69: #define        CRT_PCLK_SRC_MCLK       0x03
        !            70: #define        CRT_PCLK_DIV_1          0x00
        !            71: #define        CRT_PCLK_DIV_2          0x10
        !            72: #define        CRT_PCLK_DIV_3          0x20
        !            73: #define        CRT_PCLK_DIV_4          0x30
        !            74: #define        CRT_PCLK_DOUBLE         0x80
        !            75:
        !            76: /* MediaPlug clock configuration register - RW */
        !            77: #define        CFREG_MPLUG_CLK                 0x001c
        !            78: #define        MPLUG_PCLK_SRC_CLKI     0x00
        !            79: #define        MPLUG_PCLK_SRC_BUSCLK   0x01
        !            80: #define        MPLUG_PCLK_SRC_CLKI2    0x02
        !            81: #define        MPLUG_PCLK_SRC_MCLK     0x03
        !            82: #define        MPLUG_PCLK_DIV_1        0x00
        !            83: #define        MPLUG_PCLK_DIV_2        0x10
        !            84: #define        MPLUG_PCLK_DIV_3        0x20
        !            85: #define        MPLUG_PCLK_DIV_4        0x30
        !            86:
        !            87: /* CPU to memory wait state select register - RW */
        !            88: #define        CFREG_WSTATE                    0x001e
        !            89: #define        WSTATE_NONE             0x00
        !            90: #define        WSTATE_DUAL_MCLK        0x01
        !            91: #define        WSTATE_MCLK             0x02
        !            92:
        !            93: /* Memory configuration register - RW */
        !            94: #define        CFREG_MEMCNF                    0x0020
        !            95: #define        MEMCNF_SDRAM_INIT       0x80
        !            96:
        !            97: /* DRAM refresh rate register - RW */
        !            98: #define        CFREG_DRAM_RFRSH                0x0021
        !            99: #define        DRAM_RFRSH_8MHZ         0x00
        !           100: #define        DRAM_RFRSH_16MHZ        0x01
        !           101: #define        DRAM_RFRSH_32MHZ        0x02
        !           102: #define        DRAM_RFRSH_50MHZ        0x03
        !           103:
        !           104: /* DRAM timing control register - RW, 10 bits */
        !           105: #define        CFREG_DRAM_TIMING               0x002a
        !           106: #define        DRAM_TIMING_33MHZ       0x0311
        !           107: #define        DRAM_TIMING_44MHZ       0x0200
        !           108: #define        DRAM_TIMING_50MHZ       0x0100
        !           109:
        !           110: /* Panel type register - RW */
        !           111: #define        CFREG_PANEL                     0x0030
        !           112: #define        PANEL_PASSIVE           0x00
        !           113: #define        PANEL_TFT               0x01
        !           114: #define        PANEL_SINGLE            0x00
        !           115: #define        PANEL_DUAL              0x02
        !           116: #define        PANEL_MONO              0x00
        !           117: #define        PANEL_COLOR             0x04
        !           118: #define        PANEL_FORMAT_1X         0x00
        !           119: #define        PANEL_FORMAT_2X         0x08
        !           120: #define        PANEL_WIDTH_4_9         0x00    /* passive: 4 bits, TDT: 9/2x9 bits */
        !           121: #define        PANEL_WIDTH_8_12        0x10    /* passive: 8 bits, TDT: 12/2x12 bits */
        !           122: #define        PANEL_WIDTH_16_18       0x20    /* passive: 16 bits, TDT: 18 bits */
        !           123:
        !           124: /* MOD rate register - RW */
        !           125: #define        CFREG_MODRATE                   0x0031
        !           126:
        !           127: /* LCD horizontal display width register - RW */
        !           128: #define        CFREG_LCD_HWIDTH                0x0032
        !           129:
        !           130: /* LCD horizontal non-display period register - RW */
        !           131: #define        CFREG_LCD_HNDISP                0x0034
        !           132:
        !           133: /* TFT FPLINE start position register - RW */
        !           134: #define        CFREG_TFT_FPLINE_START          0x0035
        !           135:
        !           136: /* TFT FPLINE pulse width register - RW */
        !           137: #define        CFREG_TFT_FPLINE_WIDTH          0x0036
        !           138: #define        TFT_FPLINE_POL_TFT_LOW          0x00
        !           139: #define        TFT_FPLINE_POL_TFT_HIGH         0x80
        !           140: #define        TFT_FPLINE_POL_PASSIVE_LOW      0x80
        !           141: #define        TFT_FPLINE_POL_PASSIVE_HIGH     0x00
        !           142:
        !           143: /* LCD vertical display height - RW, 10 bits */
        !           144: #define        CFREG_LCD_VHEIGHT               0x0038
        !           145:
        !           146: /* LCD vertical non-display period register - RW */
        !           147: #define        CFREG_LCD_VNDISP                0x003a
        !           148: #define        LCD_VNDISP_STATUS       0x80                    /* read only */
        !           149:
        !           150: /* TFT FPFRAME start position register - RW */
        !           151: #define        CFREG_TFT_FPFRAME_START         0x003b
        !           152:
        !           153: /* TFT FPFRAME pulse width register - RW */
        !           154: #define        CFREG_TFT_FPFRAME_WIDTH         0x003c
        !           155: #define        TFT_FPFRAME_POL_TFT_LOW         0x00
        !           156: #define        TFT_FPFRAME_POL_TFT_HIGH        0x80
        !           157: #define        TFT_FPFRAME_POL_PASSIVE_LOW     0x80
        !           158: #define        TFT_FPFRAME_POL_PASSIVE_HIGH    0x00
        !           159:
        !           160: /* LCD line count register - RO */
        !           161: #define        CFREG_LCD_LINECNT               0x003e
        !           162:
        !           163: /* LCD display mode register - RW */
        !           164: #define        CFREG_LCD_MODE                  0x0040
        !           165: #define        LCD_MODE_4BPP           0x02
        !           166: #define        LCD_MODE_8BPP           0x03
        !           167: #define        LCD_MODE_15BPP          0x04
        !           168: #define        LCD_MODE_16BPP          0x05
        !           169: #define        LCD_MODE_SWIVEL_BIT1    0x10
        !           170: #define        LCD_MODE_BLANK          0x80
        !           171:
        !           172: /* LCD miscellaneous register - RW */
        !           173: #define        CFREG_LCD_MISC                  0x0041
        !           174: #define        LCD_MISC_DUAL_PANEL_BUFFER_DISABLE      0x01
        !           175: #define        LCD_MISC_DITHERING_DISABLE              0x02
        !           176:
        !           177: /* LCD display start address - RW, 20 bits */
        !           178: #define        CFREG_LCD_START_LOW             0x0042
        !           179: #define        CFREG_LCD_START_HIGH            0x0044
        !           180:
        !           181: /* LCD memory address register - RW, 11 bits */
        !           182: #define        CFREG_LCD_MEMORY                0x0046
        !           183:
        !           184: /* LCD pixel panning register - RW */
        !           185: #define        CFREG_LCD_PANNING               0x0048
        !           186: #define        PIXEL_PANNING_MASK_4BPP                 0x03
        !           187: #define        PIXEL_PANNING_MASK_8BPP                 0x01
        !           188: #define        PIXEL_PANNING_MASK_15BPP                0x00
        !           189: #define        PIXEL_PANNING_MASK_16BPP                0x00
        !           190:
        !           191: /* LCD display FIFO high threshold control register - RW */
        !           192: #define        CFREG_LCD_FIFO_THRESHOLD_HIGH   0x004a
        !           193:
        !           194: /* LCD display FIFO low threshold control register - RW */
        !           195: #define        CFREG_LCD_FIFO_THRESHOLD_LOW    0x004b
        !           196:
        !           197: /* CRT/TV horizontal display width register - RW */
        !           198: #define        CFREG_CRT_HWIDTH                0x0050
        !           199:
        !           200: /* CRT/TV horizontal non-display period register - RW */
        !           201: #define        CFREG_CRT_HNDISP                0x0052
        !           202:
        !           203: /* CRT/TV HRTC start position register - RW */
        !           204: #define        CFREG_CRT_HSTART                0x0053
        !           205:
        !           206: /* CRT/TV HRTC pulse width register - RW */
        !           207: #define        CFREG_CRT_HPULSE                0x0054
        !           208: #define        HRTC_POLARITY           0x80
        !           209:
        !           210: /* CRT/TV vertical display height register - RW, 10 bits */
        !           211: #define        CFREG_CRT_VHEIGHT               0x0056
        !           212:
        !           213: /* CRT/TV vertical non-display period register - RW */
        !           214: #define        CFREG_CRT_VNDISP                0x0058
        !           215: #define        CRT_VNDISP_STATUS       0x80                    /* RO */
        !           216:
        !           217: /* CRT/TV VRTC start position register - RW */
        !           218: #define        CFREG_CRT_VSTART                0x0059
        !           219:
        !           220: /* CRT VRTC pulse width register - RW */
        !           221: #define        CFREG_CRT_VPULSE                0x005a
        !           222:
        !           223: /* TV output control register - RW */
        !           224: #define        CFREG_TV_CONTROL                0x005b
        !           225: #define        TV_NTSC_OUTPUT          0x00
        !           226: #define        TV_PAL_OUTPUT           0x01
        !           227: #define        TV_COMPOSITE_OUTPUT     0x00
        !           228: #define        TV_SVIDEO_OUTPUT        0x02
        !           229: #define        TV_DAC_OUTPUT_HIGH      0x00    /* 9.2 mA IREF */
        !           230: #define        TV_DAC_OUTPUT_LOW       0x08    /* 4.6 mA IREF - CRT only */
        !           231: #define        TV_LUMINANCE_FILTER     0x10
        !           232: #define        TV_CHROMINANCE_FILTER   0x20
        !           233:
        !           234: /* CRT/TV line count register - RW */
        !           235: #define        CFREG_CRT_LINECNT               0x005e
        !           236:
        !           237: /* CRT/TV display mode register - RW */
        !           238: #define        CFREG_CRT_MODE                  0x0060
        !           239: #define        CRT_MODE_4BPP           0x02
        !           240: #define        CRT_MODE_8BPP           0x03
        !           241: #define        CRT_MODE_15BPP          0x04
        !           242: #define        CRT_MODE_16BPP          0x05
        !           243: #define        CRT_MODE_BLANK          0x80
        !           244:
        !           245: /* CRT/TV display start address - RW, 20 bits */
        !           246: #define        CFREG_CRT_START_LOW             0x0062
        !           247: #define        CFREG_CRT_START_HIGH            0x0064
        !           248:
        !           249: /* CRT/TV memory address register - RW, 11 bits */
        !           250: #define        CFREG_CRT_MEMORY                0x0066
        !           251:
        !           252: /* CRT/TV pixel panning register - RW */
        !           253: #define        CFREG_CRT_PANNING               0x0068
        !           254:
        !           255: /* CRT/TV display FIFO high threshold control register - RW */
        !           256: #define        CFREG_CRT_FIFO_THRESHOLD_HIGH   0x006a
        !           257:
        !           258: /* CRT/TV display FIFO low threshold control register - RW */
        !           259: #define        CFREG_CRT_FIFO_THRESHOLD_LOW    0x006b
        !           260:
        !           261: /* LCD ink/cursor control register - RW */
        !           262: #define        CFREG_LCD_CURSOR_CONTROL        0x0070
        !           263: #define        CURSOR_INACTIVE         0x00
        !           264: #define        CURSOR_CURSOR           0x01
        !           265: #define        CURSOR_INK              0x02
        !           266:
        !           267: /* LCD ink/cursor start address register - RW */
        !           268: #define        CFREG_LCD_CURSOR_ADDRESS        0x0071
        !           269:
        !           270: /* LCD cursor X position register - RW, 10 bits + sign */
        !           271: #define        CFREG_LCD_CURSOR_X              0x0072
        !           272: #define        LCD_CURSOR_X_SIGN       0x8000
        !           273:
        !           274: /* LCD cursor Y position register - RW, 10 bits + sign */
        !           275: #define        CFREG_LCD_CURSOR_Y              0x0074
        !           276: #define        LCD_CURSOR_Y_SIGN       0x8000
        !           277:
        !           278: /* LCD ink/cursor color registers - RW */
        !           279: #define        CFREG_LCD_CURSOR_B0             0x0076  /* 5 bits */
        !           280: #define        CFREG_LCD_CURSOR_G0             0x0077  /* 6 bits */
        !           281: #define        CFREG_LCD_CURSOR_R0             0x0078  /* 5 bits */
        !           282: #define        CFREG_LCD_CURSOR_B1             0x007a  /* 5 bits */
        !           283: #define        CFREG_LCD_CURSOR_G1             0x007b  /* 6 bits */
        !           284: #define        CFREG_LCD_CURSOR_R1             0x007c  /* 5 bits */
        !           285:
        !           286: /* LCD ink/cursor FIFO threshold register - RW */
        !           287: #define        CFREG_LCD_CURSOR_FIFO           0x007e
        !           288:
        !           289: /* CRT/TV ink/cursor control register - RW */
        !           290: #define        CFREG_CRT_CURSOR_CONTROL        0x0080
        !           291:
        !           292: /* CRT/TV ink/cursor start address register - RW */
        !           293: #define        CFREG_CRT_CURSOR_ADDRESS        0x0081
        !           294:
        !           295: /* CRT/TV cursor X position register - RW, 10 bits + sign */
        !           296: #define        CFREG_CRT_CURSOR_X              0x0082
        !           297: #define        CRT_CURSOR_X_SIGN       0x8000
        !           298:
        !           299: /* CRT/TV cursor Y position register - RW, 10 bits + sign */
        !           300: #define        CFREG_CRT_CURSOR_Y              0x0084
        !           301: #define        CRT_CURSOR_Y_SIGN       0x8000
        !           302:
        !           303: /* CRT/TV ink/cursor color registers - RW */
        !           304: #define        CFREG_CRT_CURSOR_B0             0x0086  /* 5 bits */
        !           305: #define        CFREG_CRT_CURSOR_G0             0x0087  /* 6 bits */
        !           306: #define        CFREG_CRT_CURSOR_R0             0x0088  /* 5 bits */
        !           307: #define        CFREG_CRT_CURSOR_B1             0x008a  /* 5 bits */
        !           308: #define        CFREG_CRT_CURSOR_G1             0x008b  /* 6 bits */
        !           309: #define        CFREG_CRT_CURSOR_R1             0x008c  /* 5 bits */
        !           310:
        !           311: /* CRT/TV ink/cursor FIFO threshold register - RW */
        !           312: #define        CFREG_CRT_CURSOR_FIFO           0x008e
        !           313:
        !           314: /* Bitblt control register - RW, 16 bits */
        !           315: #define        CFREG_BITBLT_CONTROL            0x0100
        !           316: #define        BITBLT_SRC_LINEAR       0x0001
        !           317: #define        BITBLT_DST_LINEAR       0x0002
        !           318: #define        BITBLT_FIFO_FULL        0x0010                  /* RO */
        !           319: #define        BITBLT_FIFO_HALF_FULL   0x0020                  /* RO */
        !           320: #define        BITBLT_FIFO_NOT_EMPTY   0x0040                  /* RO */
        !           321: #define        BITBLT_ACTIVE           0x0080
        !           322: #define        BITBLT_COLOR_8          0x0000
        !           323: #define        BITBLT_COLOR_16         0x0100
        !           324:
        !           325: /* Bitblt ROP code / color expansion register - RW */
        !           326: #define        CFREG_BITBLT_ROP                0x0102
        !           327: #define        CFREG_COLOR_EXPANSION           0x0102
        !           328: #define        ROP_ZERO                0x00
        !           329: #define        ROP_DST                 0x0a
        !           330: #define        ROP_SRC                 0x0c
        !           331: #define        ROP_ONES                0x0f
        !           332:
        !           333: /* Bitblt operation register - RW */
        !           334: #define        CFREG_BITBLT_OPERATION          0x103
        !           335: #define        OP_WRITE_ROP                            0x00
        !           336: #define        OP_READ                                 0x01
        !           337: #define        OP_MOVE_POSITIVE_ROP                    0x02
        !           338: #define        OP_MOVE_NEGATIVE_ROP                    0x03
        !           339: #define        OP_TRANSPARENT_WRITE                    0x04
        !           340: #define        OP_TRANSPARENT_MOVE_POSITIVE            0x05
        !           341: #define        OP_PATTERN_FILL_ROP                     0x06
        !           342: #define        OP_PATTERN_FILL_TRANSPARENCY            0x07
        !           343: #define        OP_COLOR_EXPANSION                      0x08
        !           344: #define        OP_COLOR_EXPANSION_TRANSPARENCY         0x09
        !           345: #define        OP_MOVE_COLOR_EXPANSION                 0x0a
        !           346: #define        OP_MOVE_COLOR_EXPANSION_TRANSPARENCY    0x0b
        !           347: #define        OP_SOLID_FILL                           0x0c
        !           348:
        !           349: /* Bitblt source address register - RW, 21 bits */
        !           350: #define        CFREG_BITBLT_SRC_LOW            0x104
        !           351: #define        CFREG_BITBLT_SRC_HIGH           0x106
        !           352:
        !           353: /* Bitblt destination start address register - RW, 21 bits */
        !           354: #define        CFREG_BITBLT_DST_LOW            0x108
        !           355: #define        CFREG_BITBLT_DST_HIGH           0x10a
        !           356:
        !           357: /* Bitblt memory address offset register - RW, 11 bits */
        !           358: #define        CFREG_BITBLT_OFFSET             0x10c
        !           359:
        !           360: /* Bitblt width register - RW, 10 bits */
        !           361: #define        CFREG_BITBLT_WIDTH              0x110
        !           362:
        !           363: /* Bitblt height register - RW, 10 bits */
        !           364: #define        CFREG_BITBLT_HEIGHT             0x112
        !           365:
        !           366: /* Bitblt color registers - RW, 16 bits */
        !           367: #define        CFREG_BITBLT_BG                 0x114
        !           368: #define        CFREG_BITBLT_FG                 0x118
        !           369:
        !           370: /* Lookup table mode register - RW */
        !           371: #define        CFREG_LUT_MODE                  0x1e0
        !           372: #define        LUT_BOTH                0x00    /* read LCD, write LCD and CRT/TV */
        !           373: #define        LUT_LCD                 0x01    /* read LCD, write LCD */
        !           374: #define        LUT_CRT                 0x02    /* read CRT/TV, write CRT/TV */
        !           375:
        !           376: /* LUT address register - RW */
        !           377: #define        CFREG_LUT_ADDRESS               0x1e2
        !           378:
        !           379: /* LUT data register - RW */
        !           380: #define        CFREG_LUT_DATA                  0x1e4   /* data in the high 4 bits */
        !           381:
        !           382: /* Power save configuration register - RW */
        !           383: #define        CFREG_POWER_CONF                0x1f0
        !           384: #define        POWERSAVE_ENABLE        0x01
        !           385: #define        POWERSAVE_MBO           0x10
        !           386:
        !           387: /* Power save status register - RW */
        !           388: #define        CFREG_POWER_STATUS              0x1f1
        !           389: #define        POWERSAVE_STATUS        0x01
        !           390: #define        LCD_POWERSAVE_STATUS    0x02
        !           391:
        !           392: /* CPU to memory access watchdog timer register - RW */
        !           393: #define        CFREG_WATCHDOG                  0x1f4
        !           394:
        !           395: /* Display mode register - RW */
        !           396: #define        CFREG_MODE                      0x1fc
        !           397: #define        MODE_NO_DISPLAY         0x00
        !           398: #define        MODE_LCD                0x01    /* can be combined with all modes */
        !           399: #define        MODE_CRT                0x02
        !           400: #define        MODE_TV_NO_FLICKER      0x04
        !           401: #define        MODE_TV_FLICKER         0x06
        !           402: #define        LCD_MODE_SWIVEL_BIT_0   0x40
        !           403:
        !           404: /* BitBlt aperture */
        !           405: #define        CFREG_BITBLT_DATA               0x0400
        !           406:
        !           407: #ifdef _KERNEL
        !           408: #define        CFXGA_MEM_RANGE         0x0800
        !           409: #endif

CVSweb