[BACK]Return to daadioreg.h CVS log [TXT][DIR] Up to [local] / sys / arch / sparc / dev

Annotation of sys/arch/sparc/dev/daadioreg.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: daadioreg.h,v 1.2 2003/06/02 18:40:59 jason Exp $     */
        !             2:
        !             3: /*
        !             4:  * Copyright (c) 1999 Jason L. Wright (jason@thought.net)
        !             5:  * All rights reserved.
        !             6:  *
        !             7:  * This software was developed by Jason L. Wright under contract with
        !             8:  * RTMX Incorporated (http://www.rtmx.com).
        !             9:  *
        !            10:  * Redistribution and use in source and binary forms, with or without
        !            11:  * modification, are permitted provided that the following conditions
        !            12:  * are met:
        !            13:  * 1. Redistributions of source code must retain the above copyright
        !            14:  *    notice, this list of conditions and the following disclaimer.
        !            15:  * 2. Redistributions in binary form must reproduce the above copyright
        !            16:  *    notice, this list of conditions and the following disclaimer in the
        !            17:  *    documentation and/or other materials provided with the distribution.
        !            18:  *
        !            19:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
        !            20:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
        !            21:  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
        !            22:  * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
        !            23:  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
        !            24:  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
        !            25:  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
        !            26:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
        !            27:  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
        !            28:  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
        !            29:  * POSSIBILITY OF SUCH DAMAGE.
        !            30:  */
        !            31:
        !            32: /*
        !            33:  * Register definitions for Matrix Corporation MD-DAADIO VME
        !            34:  * digital/analog, analog/digitial, parallel i/o board.
        !            35:  * Definitions from "MD-DAADIO User's Manual" revision B.3
        !            36:  */
        !            37:
        !            38: struct daadioregs {
        !            39:        volatile u_int8_t       _unused0[32];   /* reserved */
        !            40:        /* PIO module: 0x20-0x27 */
        !            41:        volatile u_int8_t       pio_portb;      /* port b */
        !            42:        volatile u_int8_t       pio_porta;      /* port a */
        !            43:        volatile u_int8_t       pio_portd;      /* port d */
        !            44:        volatile u_int8_t       pio_portc;      /* port c */
        !            45:        volatile u_int8_t       pio_portf;      /* port f */
        !            46:        volatile u_int8_t       pio_porte;      /* port e */
        !            47:        volatile u_int8_t       _unused1[1];    /* reserved */
        !            48:        volatile u_int8_t       pio_oc;         /* output control */
        !            49:
        !            50:        volatile u_int8_t       _unused2[24];   /* reserved */
        !            51:
        !            52:        /* DAC module: 0x40-0x4f */
        !            53:        volatile u_int16_t      dac_channel[8]; /* dac channels 0-7 */
        !            54:
        !            55:        volatile u_int8_t       _unused3[16];   /* reserved */
        !            56:
        !            57:        /* Miscellaneous: 0x60-0x69 */
        !            58:        volatile u_int8_t       _unused4;       /* reserved */
        !            59:        volatile u_int8_t       gvrilr;         /* gain value/irq level */
        !            60:        volatile u_int8_t       _unused5;       /* reserved */
        !            61:        volatile u_int8_t       ier;            /* irq enable (wo) */
        !            62:        volatile u_int8_t       _unused6;       /* reserved */
        !            63:        volatile u_int8_t       pio_pattern;    /* pio pattern */
        !            64:        volatile u_int8_t       _unused7;       /* reserved */
        !            65:        volatile u_int8_t       sid;            /* status/id */
        !            66:        volatile u_int8_t       _unused8;       /* reserved */
        !            67:        volatile u_int8_t       isr;            /* interrupt status */
        !            68:
        !            69:        volatile u_int8_t       _unused9[22];   /* reserved */
        !            70:
        !            71:        /* ADC module: 0x80-0xff */
        !            72:        volatile u_int16_t      adc12bit[32];   /* adc 12 bit channels 0-31 */
        !            73:        volatile u_int16_t      adc8bit[32];    /* adc 8 bit channels 0-31 */
        !            74: };
        !            75:
        !            76: /*
        !            77:  * The board occupies the space from 0 - 3ff (from some board configured
        !            78:  * offset). There are four register mappings (the last three are redundant
        !            79:  * mappings of the first)
        !            80:  */
        !            81: struct daadioboard {
        !            82:        struct daadioregs       regs0;
        !            83:        struct daadioregs       regs1;
        !            84:        struct daadioregs       regs2;
        !            85:        struct daadioregs       regs3;
        !            86: };
        !            87:
        !            88: /* gain value register/irq level register (gvr/ilr) */
        !            89: #define ILR_TRIGGER            0x80            /* 0=internal,1=external */
        !            90: #define        ILR_IRQ_MASK            0x70            /* IRQ level */
        !            91: #define        ILR_IRQ_SHIFT           4               /* irq shift to/from lsbits */
        !            92: #define        ILR_ADC_GAINMASK        0x07            /* adc gain select bits */
        !            93: #define        ILR_ADC_GAIN1           0x00            /* 1x adc gain */
        !            94: #define        ILR_ADC_GAIN2           0x01            /* 2x adc gain */
        !            95: #define        ILR_ADC_GAIN4           0x02            /* 4x adc gain */
        !            96: #define        ILR_ADC_GAIN8           0x03            /* 8x adc gain */
        !            97: #define        ILR_ADC_GAIN16          0x04            /* 16x adc gain */
        !            98:
        !            99: /* interrupt enable register (ier): WRITE ONLY */
        !           100: #define        IER_MASK                0x07            /* interrupt bits */
        !           101: #define        IER_PIPELINE            0x04            /* adc pipeline empty */
        !           102: #define        IER_CONVERSION          0x02            /* adc conversion done */
        !           103: #define        IER_PIOEVENT            0x01            /* pio event triggered */
        !           104:
        !           105: /* interrupt status register (isr) */
        !           106: #define        ISR_MASK                0x07            /* interrupt bits */
        !           107: #define        ISR_PIPELINE            0x04            /* adc pipeline empty */
        !           108: #define        ISR_CONVERSION          0x02            /* adc conversion done */
        !           109: #define        ISR_PIOEVENT            0x01            /* pio event triggered */
        !           110:
        !           111: /* analog/digital data register */
        !           112: #define        ADC_IV                  0x1000          /* invalid (out of range) */
        !           113: #define        ADC_PR                  0x2000          /* pipeline empty */
        !           114: #define        ADC_DR                  0x4000          /* data ready (valid) */
        !           115: #define        ADC_OW                  0x8000          /* data overwritten */
        !           116: #define        ADC_DATAMASK            0x0fff          /* the actual data */
        !           117:
        !           118: /* output control register (pio_oc) */
        !           119: #define        PIOC_OCA                0x01            /* enable port A output */
        !           120: #define        PIOC_OCB                0x02            /* enable port B output */
        !           121: #define        PIOC_OCC                0x03            /* enable port C output */
        !           122: #define        PIOC_OCD                0x04            /* enable port D output */
        !           123: #define        PIOC_OCE                0x05            /* enable port E output */
        !           124: #define        PIOC_OCF                0x06            /* enable port F output */
        !           125:

CVSweb