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

Annotation of sys/dev/ic/cd1190reg.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: cd1190reg.h,v 1.3 2003/10/21 18:58:49 jmc Exp $       */
        !             2:
        !             3: /*
        !             4:  * Copyright (c) 1998 Iain Hibbert.
        !             5:  * All rights reserved.
        !             6:  *
        !             7:  * Redistribution and use in source and binary forms, with or without
        !             8:  * modification, are permitted provided that the following conditions
        !             9:  * are met:
        !            10:  * 1. Redistributions of source code must retain the above copyright
        !            11:  *    notice, this list of conditions and the following disclaimer.
        !            12:  * 2. Redistributions in binary form must reproduce the above copyright
        !            13:  *    notice, this list of conditions and the following disclaimer in the
        !            14:  *    documentation and/or other materials provided with the distribution.
        !            15:  * 3. The name Iain Hibbert may not be used to endorse or promote products
        !            16:  *    derived from this software without specific prior written permission.
        !            17:  *
        !            18:  * THIS SOFTWARE IS PROVIDED BY ``AS IS'' AND ANY EXPRESS OR IMPLIED
        !            19:  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
        !            20:  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN
        !            21:  * NO EVENT SHALL I BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
        !            22:  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
        !            23:  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
        !            24:  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
        !            25:  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
        !            26:  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
        !            27:  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
        !            28:  */
        !            29:
        !            30: /*
        !            31:  * Definitions for Cirrus Logic CD1190 parallel chips.
        !            32:  */
        !            33:
        !            34: /* ACK Width Register */
        !            35: #define CD1190_AWR             0x03
        !            36:
        !            37: /* Controller Command Register */
        !            38: #define CD1190_CCR             0x0b
        !            39: #define CD1190_CCR_CGC         (1<<7)  /* Change Global Config Command */
        !            40: #define CD1190_CCR_CGC_RESET    (1<<0) /* CGC Reset Command */
        !            41: #define CD1190_CCR_PAR         (1<<6)  /* Parallel Command */
        !            42: #define CD1190_CCR_PAR_DISABLE  (1<<2) /* PAR Parallel Disable */
        !            43: #define CD1190_CCR_PAR_FLUSH    (1<<1) /* PAR Flush FIFO */
        !            44: #define CD1190_CCR_PAR_ENABLE   (1<<0) /* PAR Parallel Enable */
        !            45: #define CD1190_CCR_SIG         (1<<5)  /* Signal Command */
        !            46: #define CD1190_CCR_SIG_SET_BUSY         (1<<2) /* SIG Set Busy Output */
        !            47: #define CD1190_CCR_SIG_ACK      (1<<1) /* SIG Pulse ACK Output */
        !            48: #define CD1190_CCR_SIG_CLR_BUSY         (1<<0) /* SIG Clear Busy Output */
        !            49: #define CD1190_CCR_TIM         (1<<4)  /* Timer Command */
        !            50: #define CD1190_CCR_TIM_ENABLE   (1<<3) /* Timer Enabled */
        !            51:
        !            52: /* Data Time-0ut Register */
        !            53: #define CD1190_DTR             0x09
        !            54:
        !            55: /* End Of Service Request Register */
        !            56: #define CD1190_ESR             0x10
        !            57:
        !            58: /* FIFO Count Register */
        !            59: #define CD1190_FCR             0x0e
        !            60:
        !            61: /* FIFO Data Register */
        !            62: #define CD1190_FDR             0x12
        !            63:
        !            64: /* Firmware Revision Register */
        !            65: #define CD1190_FRR             0x0f
        !            66:
        !            67: /* FIFO Threshold Register */
        !            68: #define CD1190_FTR             0x08
        !            69:
        !            70: /* Global Config Register */
        !            71: #define CD1190_GCR             0x0a
        !            72: #define CD1190_GCR_NOACK       (1<<2) /* NO-ACK handshaking */
        !            73: #define CD1190_GCR_MODE                (1<<1) /* Peripheral/Controller Mode */
        !            74: #define CD1190_GCR_DIR         (1<<0) /* Input/Output Direction */
        !            75:
        !            76: /* defines for variable CD1190_IO */
        !            77: #define CD1190_CO              0x00
        !            78: #define CD1190_CI              0x01
        !            79: #define CD1190_PO              0x02
        !            80: #define CD1190_PI              0x03
        !            81:
        !            82: /* Interrupt Config Register */
        !            83: #define CD1190_ICR             0x01
        !            84: #define CD1190_ICR_ENABLE      (1<<7) /* Enable Interrupts */
        !            85: #define CD1190_ICR_ACK         (1<<3) /* Enable: Unsolicited ACK */
        !            86: #define CD1190_ICR_FIFO                (1<<2) /* Enable: FIFO Thresh/Time */
        !            87: #define CD1190_ICR_SIGNAL      (1<<1) /* Enable: Signal Status */
        !            88: #define CD1190_ICR_TIMER       (1<<0) /* Enable: Timer Expired */
        !            89:
        !            90: /* Interrupt Status Register */
        !            91: #define CD1190_ISR             0x0c
        !            92: #define CD1190_ISR_INTERRUPT   (1<<7) /* Interrupt Has Occurred */
        !            93: #define CD1190_ISR_ACK         (1<<3) /* Unsolicited ACK */
        !            94: #define CD1190_ISR_FIFO                (1<<2) /* FIFO Thresh/Time */
        !            95: #define CD1190_ISR_SIGNAL      (1<<1) /* Signal Status */
        !            96: #define CD1190_ISR_TIMER       (1<<0) /* Timer Expired */
        !            97:
        !            98: /* Interrupt Vector Register */
        !            99: #define CD1190_IVR             0x00
        !           100:
        !           101: /* Parallel Status Register */
        !           102: #define CD1190_PSR             0x1c
        !           103: #define CD1190_PSR_ENP         (1<<7) /* Parallel Enabled */
        !           104: #define CD1190_PSR_BUSY                (1<<6) /* Parallel Busy */
        !           105: #define CD1190_PSR_ACK         (1<<5) /* Parallel Acknowledge */
        !           106: #define CD1190_PSR_STATUS      (CD1190_PSR_ENP | CD1190_PSR_BUSY)
        !           107: #define CD1190_PSR_NORMAL      CD1190_PSR_ENP
        !           108:
        !           109: /* Signal Control Register */
        !           110: #define CD1190_SCR             0x1e
        !           111: #define CD1190_SCR_WRRD                (1<<7) /* Read Only: Write/Read */
        !           112: #define CD1190_SCR_IP3         (1<<6) /* Read Only: Input Line 3 */
        !           113: #define CD1190_SCR_IP2         (1<<5) /* Read Only: Input Line 2 */
        !           114: #define CD1190_SCR_IP1         (1<<4) /* Read Only: Input Line 1 */
        !           115: #define CD1190_SCR_WR_WRRD     (1<<3) /* Write/Read */
        !           116: #define CD1190_SCR_OP3         (1<<2) /* Output Line 3 */
        !           117: #define CD1190_SCR_OP2         (1<<1) /* Output Line 2 */
        !           118: #define CD1190_SCR_OP1         (1<<0) /* Output Line 1 */
        !           119:
        !           120: /* Input signals
        !           121:  *
        !           122:  *     IP3     -       *ERROR
        !           123:  *     IP2     -       PAPER EMPTY / FAULT
        !           124:  *     IP1     -       SELECT
        !           125:  *     WRRD    -       AFD
        !           126:  *     OP3     -       SLIN
        !           127:  *     OP2     -       *INIT / *RESET
        !           128:  *     OP1     -       N/A
        !           129:  */
        !           130: #define CD1190_SCR_NOERROR     CD1190_SCR_IP3 /* Printer Error (active low) */
        !           131: #define CD1190_SCR_PE          CD1190_SCR_IP2 /* Paper Empty */
        !           132: #define CD1190_SCR_SELECT      CD1190_SCR_IP1 /* Printer Select */
        !           133:
        !           134: #define CD1190_SCR_STATUS      (CD1190_SCR_IP3 | CD1190_SCR_IP2 | CD1190_SCR_IP1)
        !           135:
        !           136: /* Outout signals - Active High?
        !           137:  *
        !           138:  *     IP3     -       SLIN
        !           139:  *     IP2     -       *INIT / *RESET
        !           140:  *     IP1     -       N/A
        !           141:  *     WRRD    -       AFD
        !           142:  *     OP3     -       *ERROR
        !           143:  *     OP2     -       SELECT
        !           144:  *     OP1     -       PAPER EMPTY / FAULT
        !           145:  */
        !           146: #define CD1190_SCR_RESET       CD1190_SCR_OP2
        !           147: #define CD1190_SCR_SEL_IN      CD1190_SCR_OP3
        !           148:
        !           149: /* Specification Register ZEROes */
        !           150: #define CD1190_SR0             0x06
        !           151: #define CD1190_SR0_WRRD                (1<<7) /* WR/RD 1 to 0 Change */
        !           152: #define CD1190_SR0_IP3         (1<<6) /* IP3 1 to 0 Change */
        !           153: #define CD1190_SR0_IP2         (1<<5) /* IP2 1 to 0 Change */
        !           154: #define CD1190_SR0_IP1         (1<<4) /* IP1 1 to 0 Change */
        !           155:
        !           156: /* Specification Register ONEs */
        !           157: #define CD1190_SR1             0x07
        !           158: #define CD1190_SR1_WRRD                (1<<7) /* WR/RD 0 to 1 Change */
        !           159: #define CD1190_SR1_IP3         (1<<6) /* IP3 0 to 1 Change */
        !           160: #define CD1190_SR1_IP2         (1<<5) /* IP2 0 to 1 Change */
        !           161: #define CD1190_SR1_IP1         (1<<4) /* IP1 0 to 1 Change */
        !           162:
        !           163: /* Signal Status Register */
        !           164: #define CD1190_SSR             0x0d
        !           165: #define CD1190_SSR_WRRD                (1<<7) /* WR/RD Change */
        !           166: #define CD1190_SSR_IP3         (1<<6) /* IP3 Change */
        !           167: #define CD1190_SSR_IP2         (1<<5) /* IP2 Change */
        !           168: #define CD1190_SSR_IP1         (1<<4) /* IP1 Change */
        !           169:
        !           170: /* Strobe Width Register */
        !           171: #define CD1190_SWR             0x02
        !           172:
        !           173: /* Timer Multipler Register */
        !           174: #define CD1190_TMR             0x05
        !           175:
        !           176: /* Timer Prescale Register */
        !           177: #define CD1190_TPR             0x04

CVSweb