Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 #ifndef SONYCD535_H
  2 #define SONYCD535_H
  3 
  4 /*
  5  * define all the commands recognized by the CDU-531/5
  6  */
  7 #define SONY535_REQUEST_DRIVE_STATUS_1          (0x80)
  8 #define SONY535_REQUEST_SENSE                   (0x82)
  9 #define SONY535_REQUEST_DRIVE_STATUS_2          (0x84)
 10 #define SONY535_REQUEST_ERROR_STATUS            (0x86)
 11 #define SONY535_REQUEST_AUDIO_STATUS            (0x88)
 12 #define SONY535_INQUIRY                         (0x8a)
 13 
 14 #define SONY535_SET_INACTIVITY_TIME             (0x90)
 15 
 16 #define SONY535_SEEK_AND_READ_N_BLOCKS_1        (0xa0)
 17 #define SONY535_SEEK_AND_READ_N_BLOCKS_2        (0xa4)
 18 #define SONY535_PLAY_AUDIO                      (0xa6)
 19 
 20 #define SONY535_REQUEST_DISC_CAPACITY           (0xb0)
 21 #define SONY535_REQUEST_TOC_DATA                (0xb2)
 22 #define SONY535_REQUEST_SUB_Q_DATA              (0xb4)
 23 #define SONY535_REQUEST_ISRC                    (0xb6)
 24 #define SONY535_REQUEST_UPC_EAN                 (0xb8)
 25 
 26 #define SONY535_SET_DRIVE_MODE                  (0xc0)
 27 #define SONY535_REQUEST_DRIVE_MODE              (0xc2)
 28 #define SONY535_SET_RETRY_COUNT                 (0xc4)
 29 
 30 #define SONY535_DIAGNOSTIC_1                    (0xc6)
 31 #define SONY535_DIAGNOSTIC_4                    (0xcc)
 32 #define SONY535_DIAGNOSTIC_5                    (0xce)
 33 
 34 #define SONY535_EJECT_CADDY                     (0xd0)
 35 #define SONY535_DISABLE_EJECT_BUTTON            (0xd2)
 36 #define SONY535_ENABLE_EJECT_BUTTON             (0xd4)
 37 
 38 #define SONY535_HOLD                            (0xe0)
 39 #define SONY535_AUDIO_PAUSE_ON_OFF              (0xe2)
 40 #define SONY535_SET_VOLUME                      (0xe8)
 41 
 42 #define SONY535_STOP                            (0xf0)
 43 #define SONY535_SPIN_UP                         (0xf2)
 44 #define SONY535_SPIN_DOWN                       (0xf4)
 45 
 46 #define SONY535_CLEAR_PARAMETERS                (0xf6)
 47 #define SONY535_CLEAR_ENDING_ADDRESS            (0xf8)
 48 
 49 /*
 50  * define some masks
 51  */
 52 #define SONY535_DATA_NOT_READY_BIT              (0x1)
 53 #define SONY535_RESULT_NOT_READY_BIT            (0x2)
 54 
 55 /*
 56  *  drive status 1
 57  */
 58 #define SONY535_STATUS1_COMMAND_ERROR           (0x1)
 59 #define SONY535_STATUS1_DATA_ERROR              (0x2)
 60 #define SONY535_STATUS1_SEEK_ERROR              (0x4)
 61 #define SONY535_STATUS1_DISC_TYPE_ERROR         (0x8)
 62 #define SONY535_STATUS1_NOT_SPINNING            (0x10)
 63 #define SONY535_STATUS1_EJECT_BUTTON_PRESSED    (0x20)
 64 #define SONY535_STATUS1_CADDY_NOT_INSERTED      (0x40)
 65 #define SONY535_STATUS1_BYTE_TWO_FOLLOWS        (0x80)
 66 
 67 /*
 68  * drive status 2
 69  */
 70 #define SONY535_CDD_LOADING_ERROR               (0x7)
 71 #define SONY535_CDD_NO_DISC                     (0x8)
 72 #define SONY535_CDD_UNLOADING_ERROR             (0x9)
 73 #define SONY535_CDD_CADDY_NOT_INSERTED          (0xd)
 74 #define SONY535_ATN_RESET_OCCURRED              (0x2)
 75 #define SONY535_ATN_DISC_CHANGED                (0x4)
 76 #define SONY535_ATN_RESET_AND_DISC_CHANGED      (0x6)
 77 #define SONY535_ATN_EJECT_IN_PROGRESS           (0xe)
 78 #define SONY535_ATN_BUSY                        (0xf)
 79 
 80 /*
 81  * define some parameters
 82  */
 83 #define SONY535_AUDIO_DRIVE_MODE                (0)
 84 #define SONY535_CDROM_DRIVE_MODE                (0xe0)
 85 
 86 #define SONY535_PLAY_OP_PLAYBACK                (0)
 87 #define SONY535_PLAY_OP_ENTER_HOLD              (1)
 88 #define SONY535_PLAY_OP_SET_AUDIO_ENDING_ADDR   (2)
 89 #define SONY535_PLAY_OP_SCAN_FORWARD            (3)
 90 #define SONY535_PLAY_OP_SCAN_BACKWARD           (4)
 91 
 92 /*
 93  *  convert from msf format to block number 
 94  */
 95 #define SONY_BLOCK_NUMBER(m,s,f) (((m)*60L+(s))*75L+(f))
 96 #define SONY_BLOCK_NUMBER_MSF(x) (((x)[0]*60L+(x)[1])*75L+(x)[2])
 97 
 98 /*
 99  *  error return values from the doSonyCmd() routines
100  */
101 #define TIME_OUT                        (-1)
102 #define NO_CDROM                        (-2)
103 #define BAD_STATUS                      (-3)
104 #define CD_BUSY                         (-4)
105 #define NOT_DATA_CD                     (-5)
106 #define NO_ROOM                         (-6)
107 
108 #define LOG_START_OFFSET        150     /* Offset of first logical sector */
109 
110 #define SONY_JIFFIES_TIMEOUT    (5*HZ)  /* Maximum time
111                                            the drive will wait/try for an
112                                            operation */
113 #define SONY_READY_RETRIES      (50000)  /* How many times to retry a
114                                                   spin waiting for a register
115                                                   to come ready */
116 #define SONY535_FAST_POLLS      (10000)   /* how many times recheck 
117                                                   status waiting for a data
118                                                   to become ready */
119 
120 typedef unsigned char Byte;
121 
122 /*
123  * This is the complete status returned from the drive configuration request
124  * command.
125  */
126 struct s535_sony_drive_config
127 {
128    char vendor_id[8];
129    char product_id[16];
130    char product_rev_level[4];
131 };
132 
133 /* The following is returned from the request sub-q data command */
134 struct s535_sony_subcode
135 {
136    unsigned char address        :4;
137    unsigned char control        :4;
138    unsigned char track_num;
139    unsigned char index_num;
140    unsigned char rel_msf[3];
141    unsigned char abs_msf[3];
142 };
143 
144 struct s535_sony_disc_capacity
145 {
146    Byte mFirstTrack, sFirstTrack, fFirstTrack;
147    Byte mLeadOut, sLeadOut, fLeadOut;
148 };
149 
150 /*
151  * The following is returned from the request TOC (Table Of Contents) command.
152  * (last_track_num-first_track_num+1) values are valid in tracks.
153  */
154 struct s535_sony_toc
155 {
156    unsigned char reserved0      :4;
157    unsigned char control0       :4;
158    unsigned char point0;
159    unsigned char first_track_num;
160    unsigned char reserved0a;
161    unsigned char reserved0b;
162    unsigned char reserved1      :4;
163    unsigned char control1       :4;
164    unsigned char point1;
165    unsigned char last_track_num;
166    unsigned char dummy1;
167    unsigned char dummy2;
168    unsigned char reserved2      :4;
169    unsigned char control2       :4;
170    unsigned char point2;
171    unsigned char lead_out_start_msf[3];
172    struct
173    {
174       unsigned char reserved    :4;
175       unsigned char control     :4;
176       unsigned char track;
177       unsigned char track_start_msf[3];
178    } tracks[100];
179 
180    unsigned int lead_out_start_lba;
181 };
182 
183 #endif /* SONYCD535_H */
184 
  This page was automatically generated by the LXR engine.