00001 #ifndef _DEV_VS10XX_H_
00002 #define _DEV_VS10XX_H_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #include <cfg/audio.h>
00043 #include <sys/types.h>
00044
00054
00055
00056
00057
00058
00059
00060 #define VS_OPCODE_READ 3
00061 #define VS_OPCODE_WRITE 2
00062
00063
00067
00070 #define VS_MODE_REG 0
00071
00072 #define VS_SM_DIFF 0x0001
00073
00081 #define VS_SM_LAYER12 0x0002
00082
00093 #define VS_SM_FFWD 0x0002
00094
00098 #define VS_SM_RESET 0x0004
00099
00106 #define VS_SM_MP12 0x0008
00107
00115 #define VS_SM_OUTOFWAV 0x0008
00116
00127 #define VS_SM_PDOWN 0x0010
00128
00129 #define VS_SM_DAC 0x0020
00130
00134 #define VS_SM_TESTS 0x0020
00135
00136 #define VS_SM_DACMONO 0x0040
00137
00148 #define VS_SM_STREAM 0x0040
00149
00150 #define VS_SM_BASS 0x0080
00151
00156 #define VS_SM_DACT 0x0100
00157
00158 #define VS_SM_BYTEORD 0x0200
00159
00163 #define VS_SM_SDIORD 0x0200
00164
00168 #define VS_SM_IBMODE 0x0400
00169
00170 #define VS_SM_SDISHARE 0x0400
00171
00175 #define VS_SM_IBCLK 0x0800
00176
00182 #define VS_SM_SDINEW 0x0800
00183
00187 #define VS_SM_ADPCM 0x1000
00188
00196 #define VS_SM_ADPCM_HP 0x2000
00197
00204 #define VS_SM_LINE_IN 0x4000
00205
00212 #define VS_SM_CLK_RANGE 0x8000
00213
00219
00221 #define VS_STATUS_REG 1
00222
00230 #define VS_SS_AVOL 0x0003
00231
00232 #define VS_SS_AVOL_LSB 0
00233
00237 #define VS_SS_APDOWM1 0x0004
00238
00245 #define VS_SS_APDOWN2 0x0008
00246
00253 #define VS_SS_VER 0x0070
00254
00255 #define VS_SS_VER_LSB 4
00256
00261
00267 #define VS_INT_FCTLH_REG 2
00268
00273
00279 #define VS_BASS_REG 2
00280
00284 #define VS_SB_FREQLIMIT 0x000F
00285
00286 #define VS_SB_FREQLIMIT_LSB 0
00287
00291 #define VS_SB_AMPLITUDE 0x00F0
00292
00293 #define VS_SB_AMPLITUDE_LSB 4
00294
00298 #define VS_ST_FREQLIMIT 0x000F
00299
00300 #define VS_ST_FREQLIMIT_LSB 0
00301
00305 #define VS_ST_AMPLITUDE 0x00F0
00306
00307 #define VS_ST_AMPLITUDE_LSB 4
00308
00313
00316 #define VS_CLOCKF_REG 3
00317
00324 #define VS_SC_FREQ 0x7FFF
00325
00332 #define VS_SC_X3FREQ 0x07FF
00333
00334 #define VS_SC_FREQ_LSB 0
00335
00339 #define VS_SC_ADD 0x1800
00340
00344 #define VS_SC_MULT 0xE000
00345
00349 #define VS_CF_DOUBLER 0x8000
00350
00355
00362 #define VS_DECODE_TIME_REG 4
00363
00368
00374 #define VS_AUDATA_REG 5
00375
00379 #define VS_AD_STEREO 0x0001
00380
00385 #define VS_AD_SRATE 0xFFFE
00386
00387 #define VS_AD_SRATE_LSB 1
00388
00393
00399 #define VS_WRAM_REG 6
00400
00405
00411 #define VS_WRAMADDR_REG 7
00412
00417
00423 #define VS_HDAT0_REG 8
00424
00429
00432 #define VS_IN0_REG 8
00433
00438
00444 #define VS_HDAT1_REG 9
00445
00450
00453 #define VS_IN1_REG 9
00454
00461
00464 #define VS_AIADDR_REG 10
00465
00470
00473 #define VS_VOL_REG 11
00474
00478 #define VS_VOL_RIGHT 0x00FF
00479
00480 #define VS_VOL_RIGHT_LSB 0
00481
00485 #define VS_VOL_LEFT 0xFF00
00486
00487 #define VS_VOL_LEFT_LSB 8
00488
00493
00498 #define VS_MIXERVOL_REG 12
00499 #define VS_SMV_GAIN1 0x001F
00500 #define VS_SMV_GAIN2 0x03E0
00501 #define VS_SMV_GAIN3 0x7C00
00502 #define VS_SMV_ACTIVE 0x8000
00503
00508
00513 #define VS_ADPCMRECCTL_REG 13
00514 #define VS_SARC_GAIN4 0x003F
00515 #define VS_SARC_MANUALGAIN 0x0040
00516 #define VS_SARC_OUTOFADPCM 0x0080
00517
00522
00528 #define VS_AICTRL0_REG 12
00529
00533 #define VS_AICTRL_REG 13
00534
00539 #define VS_AICTRL1_REG 13
00540
00544 #define VS_AICTRL2_REG 14
00545
00549 #define VS_AICTRL3_REG 15
00550
00553
00554
00555
00556 #define VS_FLUSH_BYTES 2048
00557
00558
00559
00560
00561 #define VS_STATUS_STOPPED 0
00562 #define VS_STATUS_RUNNING 1
00563 #define VS_STATUS_EOF 2
00564 #define VS_STATUS_EMPTY 4
00565
00566
00567
00568
00569 #ifdef __GNUC__
00570 typedef struct __attribute__((packed)) {
00571 u_short vshi_no_crc:1;
00572 u_short vshi_layer:2;
00573 u_short vshi_id:2;
00574 u_short vshi_syncword:11;
00575
00576 u_short vshi_emphasis:2;
00577 u_short vshi_original:1;
00578 u_short vshi_copyright:1;
00579 u_short vshi_extension:2;
00580 u_short vshi_mode:2;
00581 u_short vshi_private_bit:1;
00582 u_short vshi_pad_bit:1;
00583 u_short vshi_sample_rate:2;
00584 u_short vshi_bitrate:4;
00585 } VS_HEADERINFO;
00586 #endif
00587
00588 __BEGIN_DECLS
00589
00590
00591 extern int VsPlayerInit(void);
00592 extern int VsPlayerReset(u_short mode);
00593 extern int VsPlayerSetMode(u_short mode);
00594 extern int VsPlayerKick(void);
00595 extern int VsPlayerStop(void);
00596 extern int VsPlayerFlush(void);
00597 extern ureg_t VsPlayerInterrupts(ureg_t enable);
00598 extern ureg_t VsPlayerThrottle(ureg_t on);
00599
00600 extern u_short VsPlayTime(void);
00601 extern u_int VsGetStatus(void);
00602 #ifdef __GNUC__
00603 extern int VsGetHeaderInfo(VS_HEADERINFO *vshi);
00604 #endif
00605 extern u_short VsMemoryTest(void);
00606
00607 extern int VsSetVolume(ureg_t left, ureg_t right);
00608 extern int VsBeep(u_char fsin, u_char ms);
00609
00612 __END_DECLS
00613
00614
00615 #endif