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