root/include/linux/aztcd.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   1 /* $Id: aztcd.h,v 1.40 1995/07/15 20:35:01 root Exp root $
   2  *
   3  * Definitions for a AztechCD268 CD-ROM interface
   4  *      Copyright (C) 1994, 1995  Werner Zimmermann
   5  *
   6  *      based on Mitsumi CDROM driver by Martin Harriss
   7  *
   8  *  This program is free software; you can redistribute it and/or modify
   9  *  it under the terms of the GNU General Public License as published by
  10  *  the Free Software Foundation; either version 2 of the License, or
  11  *  (at your option) any later version.
  12  *
  13  *  This program is distributed in the hope that it will be useful,
  14  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  15  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16  *  GNU General Public License for more details.
  17  *
  18  *  You should have received a copy of the GNU General Public License
  19  *  along with this program; if not, write to the Free Software
  20  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  21  *
  22  *  History:    W.Zimmermann adaption to Aztech CD268-01A Version 1.3
  23  *              October 1994 Email: zimmerma@rz.fht-esslingen.de
  24  */
  25 
  26 /* *** change this to set the I/O port address of your CD-ROM drive*/
  27 #define AZT_BASE_ADDR           0x320
  28 
  29 /* Uncomment this, if your CDROM is connected to a Soundwave32-soundcard
  30    and configure AZT_BASE_ADDR and AZT_SW32_BASE_ADDR */
  31 /*#define AZT_SW32 1
  32 */
  33 
  34 #ifdef AZT_SW32 
  35 #define AZT_SW32_BASE_ADDR       0x220  /*I/O port base adress of your soundcard*/
  36 #endif
  37 
  38 /* Set this to 1, if you want your tray to be locked, set to 0 to prevent tray 
  39    from locking */
  40 #define AZT_ALLOW_TRAY_LOCK     1
  41 
  42 /*Set this to 1 to allow auto-eject when unmounting a disk, set to 0, if you 
  43   don't want the auto-eject feature*/
  44 #define AZT_AUTO_EJECT          0
  45 
  46 /*Set this to 1, if you want multisession support. Be warned, this function has
  47 not been tested !!!*/
  48 #define AZT_MULTISESSION        0
  49 
  50 /*Set this to 1, if you want to use incompatible ioctls for reading in raw and
  51   cooked mode */
  52 #define AZT_PRIVATE_IOCTLS      1
  53 
  54 /*---------------------------------------------------------------------------*/
  55 /*------------nothing to be configured below this line-----------------------*/
  56 
  57 
  58 /* Increase this if you get lots of timeouts; if you get kernel panic, replace
  59    STEN_LOW_WAIT by STEN_LOW in the source code */
  60 #define AZT_STATUS_DELAY        400       /*for timer wait, STEN_LOW_WAIT*/
  61 #define AZT_TIMEOUT             8000000   /*for busy wait STEN_LOW, DTEN_LOW*/
  62 #define AZT_FAST_TIMEOUT        10000     /*for reading the version string*/
  63 
  64 /* number of times to retry a command before giving up */
  65 #define AZT_RETRY_ATTEMPTS      3
  66 
  67 /* port access macros */
  68 #define CMD_PORT                azt_port
  69 #define DATA_PORT               azt_port
  70 #define STATUS_PORT             azt_port+1
  71 #define MODE_PORT               azt_port+2
  72 #ifdef  AZT_SW32                
  73  #define AZT_SW32_INIT           (unsigned int) (0xFF00 & (AZT_BASE_ADDR*16))
  74  #define AZT_SW32_CONFIG_REG     AZT_SW32_BASE_ADDR+0x16  /*Soundwave32 Config. Register*/
  75  #define AZT_SW32_ID_REG         AZT_SW32_BASE_ADDR+0x04  /*Soundwave32 ID Version Register*/
  76 #endif
  77 
  78 /* status bits */
  79 #define AST_CMD_CHECK           0x80            /* command error */
  80 #define AST_DSK_CHG             0x20            /* disk removed or changed */
  81 #define AST_NOT_READY           0x02            /* no disk in the drive */
  82 #define AST_DOOR_OPEN           0x40            /* door is open */
  83 #define AST_MODE_BITS           0x1C            /* Mode Bits */
  84 #define AST_INITIAL             0x0C            /* initial, only valid ... */
  85 #define AST_BUSY                0x04            /* now playing, only valid
  86                                                    in combination with mode
  87                                                    bits */
  88 /* flag bits */
  89 #define AFL_DATA                0x02            /* data available if low */
  90 #define AFL_STATUS              0x04            /* status available if low */
  91 #define AFL_OP_OK               0x01            /* OP_OK command correct*/
  92 #define AFL_PA_OK               0x02            /* PA_OK parameter correct*/
  93 #define AFL_OP_ERR              0x05            /* error in command*/
  94 #define AFL_PA_ERR              0x06            /* error in parameters*/
  95 #define POLLED                  0x04            /* polled mode */
  96 
  97 /* commands */
  98 #define ACMD_SOFT_RESET         0x10            /* reset drive */
  99 #define ACMD_PLAY_READ          0x20            /* read data track in cooked mode */
 100 #define ACMD_DATA_READ_RAW      0x21            /* reading in raw mode*/
 101 #define ACMD_SEEK_TO_LEADIN     0x31            /* seek to leadin track*/
 102 #define ACMD_GET_ERROR          0x40            /* get error code */
 103 #define ACMD_GET_STATUS         0x41            /* get status */
 104 #define ACMD_GET_Q_CHANNEL      0x50            /* read info from q channel */
 105 #define ACMD_EJECT              0x60            /* eject/open tray */
 106 #define ACMD_CLOSE              0x61            /* close tray */
 107 #define ACMD_LOCK               0x71            /* lock tray closed */
 108 #define ACMD_UNLOCK             0x72            /* unlock tray */
 109 #define ACMD_PAUSE              0x80            /* pause */
 110 #define ACMD_STOP               0x81            /* stop play */
 111 #define ACMD_PLAY_AUDIO         0x90            /* play audio track */
 112 #define ACMD_SET_VOLUME         0x93            /* set audio level */
 113 #define ACMD_GET_VERSION        0xA0            /* get firmware version */
 114 #define ACMD_SET_MODE           0xA1            /* set drive mode */
 115 
 116 #define MAX_TRACKS              104
 117 
 118 #define CD_DATA                 0x01
 119 #define CD_AUDIO                0x02
 120 #define CD_XA                   (CD_DATA|CD_AUDIO)
 121 
 122 struct msf {
 123         unsigned char   min;
 124         unsigned char   sec;
 125         unsigned char   frame;
 126 };
 127 
 128 struct azt_Play_msf {
 129         struct msf      start;
 130         struct msf      end;
 131 };
 132 
 133 struct azt_DiskInfo {
 134         unsigned char   first;
 135         unsigned char   last;
 136         struct msf      diskLength;
 137         struct msf      firstTrack;
 138         unsigned char   multi;
 139         struct msf      lastTrack;
 140         unsigned char   type;
 141 };
 142 
 143 struct azt_Toc {
 144         unsigned char   ctrl_addr;
 145         unsigned char   track;
 146         unsigned char   pointIndex;
 147         struct msf      trackTime;
 148         struct msf      diskTime;
 149 };

/* [previous][next][first][last][top][bottom][index][help] */