GNU Linux-libre 4.14.290-gnu1
[releases.git] / sound / oss / waveartist.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * linux/sound/oss/waveartist.h
4  *
5  * def file for Rockwell RWA010 chip set, as installed in Rebel.com NetWinder
6  */
7
8 //registers
9 #define CMDR    0
10 #define DATR    2
11 #define CTLR    4
12 #define STATR   5
13 #define IRQSTAT 12
14
15 //bit defs
16 //reg STATR
17 #define CMD_WE  0x80
18 #define CMD_RF  0x40
19 #define DAT_WE  0x20
20 #define DAT_RF  0x10
21
22 #define IRQ_REQ 0x08
23 #define DMA1    0x04
24 #define DMA0    0x02
25
26 //bit defs
27 //reg CTLR
28 #define CMD_WEIE        0x80
29 #define CMD_RFIE        0x40
30 #define DAT_WEIE        0x20
31 #define DAT_RFIE        0x10
32
33 #define RESET   0x08
34 #define DMA1_IE 0x04
35 #define DMA0_IE 0x02
36 #define IRQ_ACK 0x01
37
38 //commands
39
40 #define WACMD_SYSTEMID          0x00
41 #define WACMD_GETREV            0x00
42 #define WACMD_INPUTFORMAT       0x10    //0-8S, 1-16S, 2-8U
43 #define WACMD_INPUTCHANNELS     0x11    //1-Mono, 2-Stereo
44 #define WACMD_INPUTSPEED        0x12    //sampling rate
45 #define WACMD_INPUTDMA          0x13    //0-8bit, 1-16bit, 2-PIO
46 #define WACMD_INPUTSIZE         0x14    //samples to interrupt
47 #define WACMD_INPUTSTART        0x15    //start ADC
48 #define WACMD_INPUTPAUSE        0x16    //pause ADC
49 #define WACMD_INPUTSTOP         0x17    //stop ADC
50 #define WACMD_INPUTRESUME       0x18    //resume ADC
51 #define WACMD_INPUTPIO          0x19    //PIO ADC
52
53 #define WACMD_OUTPUTFORMAT      0x20    //0-8S, 1-16S, 2-8U
54 #define WACMD_OUTPUTCHANNELS    0x21    //1-Mono, 2-Stereo
55 #define WACMD_OUTPUTSPEED       0x22    //sampling rate
56 #define WACMD_OUTPUTDMA         0x23    //0-8bit, 1-16bit, 2-PIO
57 #define WACMD_OUTPUTSIZE        0x24    //samples to interrupt
58 #define WACMD_OUTPUTSTART       0x25    //start ADC
59 #define WACMD_OUTPUTPAUSE       0x26    //pause ADC
60 #define WACMD_OUTPUTSTOP        0x27    //stop ADC
61 #define WACMD_OUTPUTRESUME      0x28    //resume ADC
62 #define WACMD_OUTPUTPIO         0x29    //PIO ADC
63
64 #define WACMD_GET_LEVEL         0x30
65 #define WACMD_SET_LEVEL         0x31
66 #define WACMD_SET_MIXER         0x32
67 #define WACMD_RST_MIXER         0x33
68 #define WACMD_SET_MONO          0x34
69
70 /*
71  * Definitions for left/right recording input mux
72  */
73 #define ADC_MUX_NONE    0
74 #define ADC_MUX_MIXER   1
75 #define ADC_MUX_LINE    2
76 #define ADC_MUX_AUX2    3
77 #define ADC_MUX_AUX1    4
78 #define ADC_MUX_MIC     5
79
80 /*
81  * Definitions for mixer gain settings
82  */
83 #define MIX_GAIN_LINE   0       /* line in       */
84 #define MIX_GAIN_AUX1   1       /* aux1          */
85 #define MIX_GAIN_AUX2   2       /* aux2          */
86 #define MIX_GAIN_XMIC   3       /* crossover mic */
87 #define MIX_GAIN_MIC    4       /* normal mic    */
88 #define MIX_GAIN_PREMIC 5       /* preamp mic    */
89 #define MIX_GAIN_OUT    6       /* output        */
90 #define MIX_GAIN_MONO   7       /* mono in       */
91
92 int wa_sendcmd(unsigned int cmd);
93 int wa_writecmd(unsigned int cmd, unsigned int arg);