OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [drivers/] [cdrom/] [sonycd535.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
#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 */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.