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

Annotation of sys/dev/pci/pccbbreg.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: pccbbreg.h,v 1.9 2006/04/26 21:21:53 brad Exp $       */
        !             2: /*     $NetBSD: pccbbreg.h,v 1.5 2000/06/07 09:02:47 haya Exp $        */
        !             3: /*
        !             4:  * Copyright (c) 1999 HAYAKAWA Koichi.  All rights reserved.
        !             5:  *
        !             6:  * Redistribution and use in source and binary forms, with or without
        !             7:  * modification, are permitted provided that the following conditions
        !             8:  * are met:
        !             9:  * 1. Redistributions of source code must retain the above copyright
        !            10:  *    notice, this list of conditions and the following disclaimer.
        !            11:  * 2. Redistributions in binary form must reproduce the above copyright
        !            12:  *    notice, this list of conditions and the following disclaimer in the
        !            13:  *    documentation and/or other materials provided with the distribution.
        !            14:  * 3. All advertising materials mentioning features or use of this software
        !            15:  *    must display the following acknowledgement:
        !            16:  *     This product includes software developed by HAYAKAWA Koichi.
        !            17:  * 4. The name of the author may not be used to endorse or promote products
        !            18:  *    derived from this software without specific prior written permission.
        !            19:  *
        !            20:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
        !            21:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
        !            22:  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
        !            23:  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
        !            24:  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
        !            25:  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        !            26:  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        !            27:  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        !            28:  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
        !            29:  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        !            30:  */
        !            31:
        !            32: #ifndef _DEV_PCI_PCCBBREG_H_
        !            33: #define        _DEV_PCI_PCCBBREG_H_
        !            34:
        !            35: #define PCI_SOCKBASE   0x10    /* Socket Base Address Register */
        !            36: #define PCI_BUSNUM     0x18    /* Latency timer, Subordinate bus number */
        !            37: #define PCI_BCR_INTR   0x3C    /* Intr line, intr pin, bridge control regs */
        !            38: #define PCI_LEGACY     0x44    /* Legacy IO register address (32 bits) */
        !            39: #define PCI_SYSCTRL    0x80    /* System control */
        !            40: #define PCI_CBCTRL     0x90    /* Retry status, Card ctrl, Device ctrl */
        !            41:
        !            42: #define PCI_CLASS_INTERFACE_MASK       0xFFFFFF00
        !            43: #define PCI_CLASS_INTERFACE_YENTA      0x06070000
        !            44:
        !            45: /* CardBus latency timer, Subordinate bus no, CardBus bus no and PCI bus no */
        !            46: #define PCI_CB_LSCP_REG                0x18
        !            47:
        !            48: /* CardBus memory and io windows */
        !            49: #define PCI_CB_MEMBASE0                0x1C
        !            50: #define PCI_CB_MEMLIMIT0       0x20
        !            51: #define PCI_CB_MEMBASE1                0x24
        !            52: #define PCI_CB_MEMLIMIT1       0x28
        !            53: #define PCI_CB_IOBASE0         0x2C
        !            54: #define PCI_CB_IOLIMIT0                0x30
        !            55: #define PCI_CB_IOBASE1         0x34
        !            56: #define PCI_CB_IOLIMIT1                0x38
        !            57:
        !            58: /* PCI_CB_LSCP_REG */
        !            59: #define PCI_CB_LATENCY_SHIFT   24
        !            60: #define PCI_CB_LATENCY_MASK    0xFF
        !            61: #define PCI_CB_LATENCY(x)(     \
        !            62:        ((x) >> PCI_CB_LATENCY_SHIFT) & PCI_CB_LATENCY_MASK)
        !            63:
        !            64: /*
        !            65:  * Cardbus socket registers
        !            66:  */
        !            67: #define CB_SOCKET_EVENT                0x00 /* Event */
        !            68: #define CB_SOCKET_EVENT_CSTS           0x01 /* CARDSTS event occurs */
        !            69: #define CB_SOCKET_EVENT_CD             0x06 /* CD event occurs */
        !            70: #define CB_SOCKET_EVENT_CD1            0x02 /* CD1 event occurs */
        !            71: #define CB_SOCKET_EVENT_CD2            0x04 /* CD2 event occurs */
        !            72: #define CB_SOCKET_EVENT_POWER          0x08 /* Power cycle event occurs */
        !            73:
        !            74: #define CB_SOCKET_MASK         0x04 /* Mask */
        !            75: #define CB_SOCKET_MASK_CSTS            0x01 /* CARDSTS event mask */
        !            76: #define CB_SOCKET_MASK_CD              0x06 /* CD event mask */
        !            77: #define CB_SOCKET_MASK_POWER           0x08 /* Power cycle event mask */
        !            78:
        !            79: #define CB_SOCKET_STAT         0x08 /* Present-state */
        !            80: #define CB_SOCKET_STAT_CARDSTS         0x00000001 /* Card status change bit */
        !            81: #define CB_SOCKET_STAT_CD1             0x00000002 /* Card detect 1 */
        !            82: #define CB_SOCKET_STAT_CD2             0x00000004 /* Card detect 2 */
        !            83: #define CB_SOCKET_STAT_CD              0x00000006 /* Card detect 1 and 2 */
        !            84: #define CB_SOCKET_STAT_PWRCYCLE                0x00000008 /* Power cycle */
        !            85: #define CB_SOCKET_STAT_16BIT           0x00000010 /* 16-bit card */
        !            86: #define CB_SOCKET_STAT_CB              0x00000020 /* Cardbus card */
        !            87: #define CB_SOCKET_STAT_IREQ            0x00000040 /* READY(~IREQ)//(~CINT) */
        !            88:                                                   /* bit */
        !            89: #define CB_SOCKET_STAT_NOTCARD         0x00000080 /* Inserted card is */
        !            90:                                                   /* unrecognisable */
        !            91: #define CB_SOCKET_STAT_DATALOST                0x00000100 /* Data lost */
        !            92: #define CB_SOCKET_STAT_BADVCC          0x00000200 /* Bad Vcc Request */
        !            93: #define CB_SOCKET_STAT_5VCARD          0x00000400 /* 5 V Card */
        !            94: #define CB_SOCKET_STAT_3VCARD          0x00000800 /* 3.3 V Card */
        !            95: #define CB_SOCKET_STAT_XVCARD          0x00001000 /* X.X V Card */
        !            96: #define CB_SOCKET_STAT_YVCARD          0x00002000 /* Y.Y V Card */
        !            97: #define CB_SOCKET_STAT_5VSOCK          0x10000000 /* 5 V Socket */
        !            98: #define CB_SOCKET_STAT_3VSOCK          0x20000000 /* 3.3 V Socket */
        !            99: #define CB_SOCKET_STAT_XVSOCK          0x40000000 /* X.X V Socket */
        !           100: #define CB_SOCKET_STAT_YVSOCK          0x80000000 /* Y.Y V Socket */
        !           101:
        !           102: #define CB_SOCKET_FORCE                0x0C /* Force event */
        !           103: #define CB_SOCKET_FORCE_BADVCC         0x0200 /* Bad Vcc Request */
        !           104:
        !           105: #define CB_SOCKET_CTRL         0x10 /* Control */
        !           106: #define CB_SOCKET_CTRL_VPPMASK         0x007
        !           107: #define CB_SOCKET_CTRL_VPP_OFF         0x000
        !           108: #define CB_SOCKET_CTRL_VPP_12V         0x001
        !           109: #define CB_SOCKET_CTRL_VPP_5V          0x002
        !           110: #define CB_SOCKET_CTRL_VPP_3V          0x003
        !           111: #define CB_SOCKET_CTRL_VPP_XV          0x004
        !           112: #define CB_SOCKET_CTRL_VPP_YV          0x005
        !           113:
        !           114: #define CB_SOCKET_CTRL_VCCMASK         0x070
        !           115: #define CB_SOCKET_CTRL_VCC_OFF         0x000
        !           116: #define CB_SOCKET_CTRL_VCC_5V          0x020
        !           117: #define CB_SOCKET_CTRL_VCC_3V          0x030
        !           118: #define CB_SOCKET_CTRL_VCC_XV          0x040
        !           119: #define CB_SOCKET_CTRL_VCC_YV          0x050
        !           120:
        !           121: #define CB_SOCKET_CTRL_STOPCLK 0x080
        !           122:
        !           123: #define PCCBB_SOCKEVENT_BITS   "\020\001CSTS\002CD1\003CD2\004PWR"
        !           124: #define PCCBB_SOCKSTATE_BITS   \
        !           125:     "\020\001CSTS\002CD1\003CD3\004PWR\00516BIT\006CB\007CINT\010NOTA" \
        !           126:     "\011DLOST\012BADVCC\0135v\0143v\015Xv\016Yv\0355vS\0363vS\037XvS\040YvS"
        !           127:
        !           128: /* PCI_BCR_INTR bits for generic PCI-CardBus bridge */
        !           129: #define CB_BCR_RESET_ENABLE            0x00400000
        !           130: #define CB_BCR_INTR_IREQ_ENABLE                0x00800000
        !           131: #define CB_BCR_PREFETCH_MEMWIN0                0x01000000
        !           132: #define CB_BCR_PREFETCH_MEMWIN1                0x02000000
        !           133: #define CB_BCR_WRITE_POST_ENABLE       0x04000000
        !           134:
        !           135: /* TI [14][245]xx */
        !           136: #define PCI12XX_MMCTRL         0x84
        !           137:
        !           138: /* TI 12xx/14xx/15xx (except 1250, 1251, 1251B/1450) */
        !           139: #define PCI12XX_MFUNC                  0x8c
        !           140: #define PCI12XX_MFUNC_PIN0             0x0000000F
        !           141: #define PCI12XX_MFUNC_PIN0_INTA                0x02
        !           142: #define PCI12XX_MFUNC_PIN1             0x000000F0
        !           143: #define PCI12XX_MFUNC_PIN1_INTB                0x20
        !           144: #define PCI12XX_MFUNC_PIN2             0x00000F00
        !           145: #define PCI12XX_MFUNC_PIN3             0x0000F000
        !           146: #define PCI12XX_MFUNC_PIN4             0x000F0000
        !           147: #define PCI12XX_MFUNC_PIN5             0x00F00000
        !           148: #define PCI12XX_MFUNC_PIN6             0x0F000000
        !           149:
        !           150: /*  PCI_CBCTRL bits for TI PCI113X */
        !           151: #define PCI113X_CBCTRL_INT_SERIAL      0x040000
        !           152: #define PCI113X_CBCTRL_INT_ISA         0x020000
        !           153: #define PCI113X_CBCTRL_INT_MASK                0x060000
        !           154: #define PCI113X_CBCTRL_RIENB           0x008000 /* Ring indicate output */
        !           155:                                                 /* enable */
        !           156: #define PCI113X_CBCTRL_ZVENAB          0x004000 /* ZV mode enable */
        !           157: #define PCI113X_CBCTRL_PCI_IRQ_ENA     0x002000 /* PCI intr enable */
        !           158:                                                 /* (funct and CSC) */
        !           159: #define PCI113X_CBCTRL_PCI_INTR                0x001000 /* PCI functional intr req */
        !           160: #define PCI113X_CBCTRL_PCI_CSC         0x000800 /* CSC intr route to PCI */
        !           161: #define PCI113X_CBCTRL_PCI_CSC_D       0x000400 /* Unknown */
        !           162: #define PCI113X_CBCTRL_SPK_ENA         0x000200 /* Speaker enable */
        !           163: #define PCI113X_CBCTRL_INTR_DET                0x000100 /* Functional interrupt */
        !           164:                                                 /* detect */
        !           165:
        !           166: /*  PCI_CBCTRL bits for TI PCI12XX */
        !           167: #define PCI12XX_SYSCTRL_INTRTIE                0x20000000u
        !           168: #define PCI12XX_SYSCTRL_VCCPROT                0x200000
        !           169: #define PCI12XX_SYSCTRL_PWRSAVE                0x000040
        !           170: #define PCI12XX_SYSCTRL_SUBSYSRW       0x000020
        !           171: #define PCI12XX_SYSCTRL_CB_DPAR                0x000010
        !           172: #define PCI12XX_SYSCTRL_CDMA_EN                0x000008
        !           173: #define PCI12XX_SYSCTRL_KEEPCLK                0x000002
        !           174: #define PCI12XX_SYSCTRL_RIMUX          0x000001
        !           175: #define PCI12XX_CBCTRL_CSC             0x20000000u
        !           176: #define PCI12XX_CBCTRL_ASYNC_CSC       0x01000000u
        !           177: #define PCI12XX_CBCTRL_INT_SERIAL      0x060000
        !           178: #define PCI12XX_CBCTRL_INT_PCI_SERIAL  0x040000
        !           179: #define PCI12XX_CBCTRL_INT_ISA         0x020000
        !           180: #define PCI12XX_CBCTRL_INT_PCI         0x000000
        !           181: #define PCI12XX_CBCTRL_INT_MASK                0x060000
        !           182: #define PCI12XX_CBCTRL_RIENB           0x008000 /* Ring indicate output */
        !           183:                                                 /* enable */
        !           184: #define PCI12XX_CBCTRL_ZVENAB          0x004000 /* ZV mode enable */
        !           185: #define PCI12XX_CBCTRL_AUD2MUX         0x000400 /* Unknown */
        !           186: #define PCI12XX_CBCTRL_SPK_ENA         0x000200 /* Speaker enable */
        !           187: #define PCI12XX_CBCTRL_INTR_DET                0x000100 /* Functional interrupt */
        !           188:                                                 /* detect */
        !           189:
        !           190:
        !           191: /* PCI_BCR_INTR additional bit for Rx5C46[567] */
        !           192: #define CB_BCRI_RL_3E0_ENA             0x08000000
        !           193: #define CB_BCRI_RL_3E2_ENA             0x10000000
        !           194:
        !           195: /*
        !           196:  * Special register definition for Toshiba ToPIC95/97
        !           197:  * These values are borrowed from pcmcia-cs/Linux.
        !           198:  */
        !           199: #define TOPIC_SOCKET_CTRL      0x90
        !           200: #define TOPIC_SOCKET_CTRL_SCR_IRQSEL   0x00000001 /* PCI intr */
        !           201:
        !           202: #define TOPIC_SLOT_CTRL                0xA0
        !           203: #define TOPIC_SLOT_CTRL_SLOTON         0x00000080
        !           204: #define TOPIC_SLOT_CTRL_SLOTEN         0x00000040
        !           205: #define TOPIC_SLOT_CTRL_ID_LOCK                0x00000020
        !           206: #define TOPIC_SLOT_CTRL_ID_WP          0x00000010
        !           207: #define TOPIC_SLOT_CTRL_PORT_MASK      0x0000000C
        !           208: #define TOPIC_SLOT_CTRL_PORT_SHIFT     2
        !           209: #define TOPIC_SLOT_CTRL_OSF_MASK       0x00000003
        !           210: #define TOPIC_SLOT_CTRL_OSF_SHIFT      0
        !           211:
        !           212: #define TOPIC_SLOT_CTRL_INTB           0x00002000
        !           213: #define TOPIC_SLOT_CTRL_INTA           0x00001000
        !           214: #define TOPIC_SLOT_CTRL_INT_MASK       0x00003000
        !           215: #define TOPIC_SLOT_CTRL_CLOCK_MASK     0x00000C00
        !           216: #define TOPIC_SLOT_CTRL_CLOCK_2                0x00000800 /* PCI Clock/2 */
        !           217: #define TOPIC_SLOT_CTRL_CLOCK_1                0x00000400 /* PCI Clock */
        !           218: #define TOPIC_SLOT_CTRL_CLOCK_0                0x00000000 /* No clock */
        !           219: #define TOPIC97_SLOT_CTRL_STSIRQP      0x00000400 /* Status change intr */
        !           220:                                                   /* pulse */
        !           221: #define TOPIC97_SLOT_CTRL_IRQP         0x00000200 /* Function intr pulse */
        !           222: #define TOPIC97_SLOT_CTRL_PCIINT       0x00000100 /* Intr routing to PCI INT */
        !           223:
        !           224: #define TOPIC_SLOT_CTRL_CARDBUS                0x80000000
        !           225: #define TOPIC_SLOT_CTRL_VS1            0x04000000
        !           226: #define TOPIC_SLOT_CTRL_VS2            0x02000000
        !           227: #define TOPIC_SLOT_CTRL_SWDETECT       0x01000000
        !           228:
        !           229: #define TOPIC_REG_CTRL         0x00A4
        !           230: #define TOPIC_REG_CTRL_RESUME_RESET    0x80000000
        !           231: #define TOPIC_REG_CTRL_REMOVE_RESET    0x40000000
        !           232: #define TOPIC97_REG_CTRL_CLKRUN_ENA    0x20000000
        !           233: #define TOPIC97_REG_CTRL_TESTMODE      0x10000000
        !           234: #define TOPIC97_REG_CTRL_IOPLUP                0x08000000
        !           235: #define TOPIC_REG_CTRL_BUFOFF_PWROFF   0x02000000
        !           236: #define TOPIC_REG_CTRL_BUFOFF_SIGOFF   0x01000000
        !           237: #define TOPIC97_REG_CTRL_CB_DEV_MASK   0x0000F800
        !           238: #define TOPIC97_REG_CTRL_CB_DEV_SHIFT  11
        !           239: #define TOPIC97_REG_CTRL_RI_DISABLE    0x00000004
        !           240: #define TOPIC97_REG_CTRL_CAUDIO_OFF    0x00000002
        !           241: #define TOPIC_REG_CTRL_CAUDIO_INVERT   0x00000001
        !           242:
        !           243: /*
        !           244:  * Additional (subset of) Topic100 registers from
        !           245:  * Toshiba datasheet (Draft Rev. 01.4) 98/10/07
        !           246:  */
        !           247: #define TOPIC100_PMCSR         0x84    /* Power mgmt ctrl/stat register */
        !           248: #define TOPIC100_PMCSR_MASK            0x00000003
        !           249: #define TOPIC100_PMCSR_D0              0x0
        !           250:
        !           251: /*
        !           252:  * Additional O2Micro registers
        !           253:  *
        !           254:  * 'reserved' register at 0x94/D4. allows setting read prefetch and write
        !           255:  * bursting. read prefetching for example makes the RME Hammerfall DSP
        !           256:  * working. for some bridges it is at 0x94, for others at 0xD4. it's
        !           257:  * ok to write to both registers on all O2 bridges.
        !           258:  * from Eric Still, 02Micro.
        !           259:  */
        !           260: #define O2MICRO_RESERVED1      0x94
        !           261: #define O2MICRO_RESERVED2      0xD4
        !           262: #define O2MICRO_RES_READ_PREFETCH      0x02
        !           263: #define O2MICRO_RES_WRITE_BURST                0x08
        !           264:
        !           265: #endif /* _DEV_PCI_PCCBBREG_H_ */

CVSweb