[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

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