[BACK]Return to harmonyreg.h CVS log [TXT][DIR] Up to [local] / sys / arch / hppa / gsc

Annotation of sys/arch/hppa/gsc/harmonyreg.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: harmonyreg.h,v 1.5 2003/06/02 19:54:29 jason Exp $    */
        !             2:
        !             3: /*
        !             4:  * Copyright (c) 2003 Jason L. Wright (jason@thought.net)
        !             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:  *
        !            16:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
        !            17:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
        !            18:  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
        !            19:  * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
        !            20:  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
        !            21:  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
        !            22:  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
        !            23:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
        !            24:  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
        !            25:  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
        !            26:  * POSSIBILITY OF SUCH DAMAGE.
        !            27:  */
        !            28:
        !            29: /*
        !            30:  * Harmony CS4215/AD1849 register definitions based on:
        !            31:  *  "712 I/O Subsystem ERS", Revision 1.1, 12 February 1993
        !            32:  */
        !            33:
        !            34: /* harmony always uses a 4K buffer */
        !            35: #define        HARMONY_BUFSIZE                 4096
        !            36:
        !            37: #define        HARMONY_NREGS   0x40
        !            38:
        !            39: #define        HARMONY_ID              0x00            /* identification */
        !            40: #define        HARMONY_RESET           0x04            /* reset */
        !            41: #define        HARMONY_CNTL            0x08            /* control */
        !            42: #define        HARMONY_GAINCTL         0x0c            /* gain control */
        !            43: #define        HARMONY_PNXTADD         0x10            /* play next address */
        !            44: #define        HARMONY_PCURADD         0x14            /* play current address */
        !            45: #define        HARMONY_RNXTADD         0x18            /* record next address */
        !            46: #define        HARMONY_RCURADD         0x1c            /* record current address */
        !            47: #define        HARMONY_DSTATUS         0x20            /* device status */
        !            48: #define        HARMONY_OV              0x24            /* overrange input */
        !            49: #define        HARMONY_PIO             0x28            /* general purpose i/o */
        !            50: #define        HARMONY_DIAG            0x3c            /* chi diagnostic */
        !            51:
        !            52: /* HARMONY_ID */
        !            53: #define        ID_REV_MASK             0x00ff0000      /* revision mask: */
        !            54: #define        ID_REV_SHIFT            16
        !            55: #define        ID_REV_TS               0x00150000      /*  teleshare installed */
        !            56: #define        ID_REV_NOTS             0x00140000      /*  teleshare not installed */
        !            57: #define        ID_CHIID                0x0000f000      /* CHI identification */
        !            58: #define        ID_CHIID_SHIFT          12
        !            59:
        !            60: /* HARMONY_RESET */
        !            61: #define        RESET_RST               0x00000001      /* reset codec */
        !            62:
        !            63: /* HARMONY_CNTL */
        !            64: #define        CNTL_C                  0x80000000      /* control mode */
        !            65: #define        CNTL_CODEC_REV_MASK     0x0ff00000      /* codec revision */
        !            66: #define        CNTL_CODEC_REV_SHIFT    20
        !            67: #define        CNTL_EXP_3              0x00020000      /* expansion bit 3 */
        !            68: #define        CNTL_EXP_2              0x00010000      /* expansion bit 2 */
        !            69: #define        CNTL_EXP_1              0x00008000      /* expansion bit 1 */
        !            70: #define        CNTL_EXP_0              0x00004000      /* expansion bit 0 */
        !            71: #define        CNTL_AC                 0x00002000      /* autocalibration ad1849 */
        !            72: #define        CNTL_AD                 0x00001000      /* ad1849 compat? */
        !            73: #define        CNTL_OLB                0x00000800      /* output level */
        !            74: #define        CNTL_ITS                0x00000400      /* codec immediate tristate */
        !            75: #define        CNTL_LS_MASK            0x00000300      /* loopback select: */
        !            76: #define        CNTL_LS_NONE            0x00000000      /*  none */
        !            77: #define        CNTL_LS_INTERNAL        0x00000100      /*  internal */
        !            78: #define        CNTL_LS_DIGITAL         0x00000200      /*  digital */
        !            79: #define        CNTL_LS_ANALOG          0x00000300      /*  analog */
        !            80: #define        CNTL_FORMAT_MASK        0x000000c0      /* encoding format: */
        !            81: #define        CNTL_FORMAT_SLINEAR16BE 0x00000000      /*  16 bit signed linear be */
        !            82: #define        CNTL_FORMAT_ULAW        0x00000040      /*  8 bit ulaw */
        !            83: #define        CNTL_FORMAT_ALAW        0x00000080      /*  8 bit alaw */
        !            84: #define        CNTL_FORMAT_ULINEAR8    0x000000c0      /*  8 bit unsigned linear */
        !            85: #define        CNTL_CHANS_MASK         0x00000020      /* number of channels: */
        !            86: #define        CNTL_CHANS_MONO         0x00000000      /*  mono */
        !            87: #define        CNTL_CHANS_STEREO       0x00000020      /*  stereo */
        !            88: #define        CNTL_RATE_MASK          0x0000001f      /* sample rate (kHz): */
        !            89: #define        CNTL_RATE_5125          0x00000010      /*  5.5125 */
        !            90: #define        CNTL_RATE_6615          0x00000017      /*  6.615 */
        !            91: #define        CNTL_RATE_8000          0x00000008      /*  8 */
        !            92: #define        CNTL_RATE_9600          0x0000000f      /*  9.6 */
        !            93: #define        CNTL_RATE_11025         0x00000011      /*  11.025 */
        !            94: #define        CNTL_RATE_16000         0x00000009      /*  16 */
        !            95: #define        CNTL_RATE_18900         0x00000012      /*  18.9 */
        !            96: #define        CNTL_RATE_22050         0x00000013      /*  22.05 */
        !            97: #define        CNTL_RATE_27428         0x0000000a      /*  27.42857 */
        !            98: #define        CNTL_RATE_32000         0x0000000b      /*  32 */
        !            99: #define        CNTL_RATE_33075         0x00000016      /*  33.075 */
        !           100: #define        CNTL_RATE_37800         0x00000014      /*  37.8 */
        !           101: #define        CNTL_RATE_44100         0x00000015      /*  44.1 */
        !           102: #define        CNTL_RATE_48000         0x0000000e      /*  48 */
        !           103:
        !           104: /* HARMONY_GAINCTL */
        !           105: #define        GAINCTL_HE              0x08000000      /* headphones enable */
        !           106: #define        GAINCTL_LE              0x04000000      /* line output enable */
        !           107: #define        GAINCTL_SE              0x02000000      /* speaker enable */
        !           108: #define        GAINCTL_IS_MASK         0x01000000      /* input select: */
        !           109: #define        GAINCTL_IS_LINE         0x00000000      /*  line input */
        !           110: #define        GAINCTL_IS_MICROPHONE   0x01000000      /*  microphone */
        !           111: #define        GAINCTL_INPUT_LEFT_M    0x0000f000      /* left input gain */
        !           112: #define        GAINCTL_INPUT_LEFT_S    12
        !           113: #define        GAINCTL_INPUT_RIGHT_M   0x000f0000      /* left input gain */
        !           114: #define        GAINCTL_INPUT_RIGHT_S   16
        !           115: #define        GAINCTL_INPUT_BITS      4
        !           116: #define        GAINCTL_MONITOR_M       0x00f00000      /* monitor gain (inverted) */
        !           117: #define        GAINCTL_MONITOR_S       20
        !           118: #define        GAINCTL_MONITOR_BITS    4
        !           119: #define        GAINCTL_OUTPUT_LEFT_M   0x00000fc0      /* left out gain (inverted) */
        !           120: #define        GAINCTL_OUTPUT_LEFT_S   6
        !           121: #define        GAINCTL_OUTPUT_RIGHT_M  0x0000003f      /* right out gain (inverted) */
        !           122: #define        GAINCTL_OUTPUT_RIGHT_S  0
        !           123: #define        GAINCTL_OUTPUT_BITS     6
        !           124:
        !           125: /* HARMONY_PCURADD */
        !           126: #define        PCURADD_BUFMASK         (~(HARMONY_BUFSIZE - 1))
        !           127:
        !           128: /* HARMONY_RCURADD */
        !           129: #define        PCURADD_BUFMASK         (~(HARMONY_BUFSIZE - 1))
        !           130:
        !           131: /* HARMONY_DSTATUS */
        !           132: #define        DSTATUS_IE              0x80000000      /* interrupt enable */
        !           133: #define        DSTATUS_PN              0x00000200      /* playback next empty */
        !           134: #define        DSTATUS_PC              0x00000100      /* playback dma active */
        !           135: #define        DSTATUS_RN              0x00000002      /* record next empty */
        !           136: #define        DSTATUS_RC              0x00000001      /* record dma active */
        !           137:
        !           138: /* HARMONY_OV */
        !           139: #define        OV_OV                   0x00000001      /* input over range */
        !           140:
        !           141: /* HARMONY_PIO */
        !           142: #define        PIO_PO                  0x00000002      /* parallel output */
        !           143: #define        PIO_PI                  0x00000001      /* parallel input */
        !           144:
        !           145: /* HARMONY_DIAG */
        !           146: #define        DIAG_CO                 0x00000001      /* sclk from codec */
        !           147:
        !           148: /* CS4215_REV */
        !           149: #define        CS4215_REV_VER          0x0f
        !           150: #define        CS4215_REV_VER_C        0x00            /* CS4215 rev C */
        !           151: #define        CS4215_REV_VER_D        0x01            /* CS4215 rev D */
        !           152: #define        CS4215_REV_VER_E        0x02            /* CS4215 rev E/AD1849K */

CVSweb