summaryrefslogtreecommitdiffstats
path: root/uClinux-2.4.20-uc1/drivers/sound/w90n745_audio_regs.h
blob: d173c4cb94525fe848cd3c0590257f4cef4f5b04 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
/**************************************************************************************************
 *                                                                          
 * Copyright (c) 2004 - 2007 Winbond Electronics Corp. All rights reserved.      
 *                                                                         
 * FILENAME
 *     w90n745_Audio_REGS.H
 *
 * VERSION
 *     1.0
 *
 * DESCRIPTION
 *     This file contains the register map of W90N710 audio controller.
 *
 * HISTORY
 *     05/26/2004		 Ver 1.0 Created by PC30 YCHuang
 *	 11/24/2005		 Ver 1.1 Modified by PC34 QFu	
 *
 * REMARK
 *     None
 *     
 *************************************************************************************************/
#ifndef _W90N745_AUDIO_REGS_H_
#define _W90N745_AUDIO_REGS_H_

#define REG_CLKSEL			0xfff0000c

#define GPIO_BA				0xFFF83000
/**********************************************************************************************************
 *                                                               
 * 4. GPIO Control Registers  
 *
 **********************************************************************************************************/
/* GPIO Pins */ 
#define REG_GPIO_CFG			(GPIO_BA+0x00)   /* GPIO Pins Output Enable Control Register */
#define REG_GPIO_DIR		(GPIO_BA+0x04)   /* GPIO Pins Data Register */
#define REG_GPIO_DATAOUT		(GPIO_BA+0x08)   /* GPIO Pins Status Register */


/* GPIO-A Pins */
#define REG_GPIOA_OE		(GPIO_BA+0x20)   /* GPIO-A Pins Output Enable Control Register */
#define REG_GPIOA_DAT		(GPIO_BA+0x24)   /* GPIO-A Pins Data Register */
#define REG_GPIOA_STS		(GPIO_BA+0x28)   /* GPIO-A Pins Status Register */
#define REG_GPIOA_PE		(GPIO_BA+0x2c)   /* GPIO-A Pull-Up/Down Enable Control Register */

/* GPIO-B Pins */
#define REG_GPIOB_OE		(GPIO_BA+0x30)   /* GPIO-B Pins Output Enable Control Register */
#define REG_GPIOB_DAT		(GPIO_BA+0x34)   /* GPIO-B Pins Data Register */
#define REG_GPIOB_STS		(GPIO_BA+0x38)   /* GPIO-B Pins Status Register */
#define REG_GPIOB_PE		(GPIO_BA+0x3c)   /* GPIO-B Pull-Up/Down Enable Control Register */

/* GPIO-S Pins */
#define REG_GPIOS_OE		(GPIO_BA+0x40)   /* GPIO-S Pins Output Enable Control Register */
#define REG_GPIOS_DAT		(GPIO_BA+0x44)   /* GPIO-S Pins Data Register */
#define REG_GPIOS_STS		(GPIO_BA+0x48)   /* GPIO-S Pins Status Register */
#define REG_GPIOS_PE		(GPIO_BA+0x4c)   /* GPIO-S Pull-Up/Down Enable Control Register */


/* to be modified in future */
//#include "w90n745_reg.h"	/* in SYSLIB */
#define ADO_BA					0xfff09000
#define ADO_RANGE				0x50

/**********************************************************************************************************
 *                                                               
 * 8. Audio Interface Control Registers  
 *
 **********************************************************************************************************/
#define REG_ACTL_CON			(ADO_BA + 0x00)   /* Audio controller control register */
#define REG_ACTL_RESET			(ADO_BA + 0x04)   /* Sub block reset control register */
#define REG_ACTL_RDSTB			(ADO_BA + 0x08)   /* DMA destination base address register for record */
#define REG_ACTL_RDST_LENGTH	(ADO_BA + 0x0C)   /* DMA destination length register for record */
#define REG_ACTL_RSR			(ADO_BA + 0x14)   /* Record status register */
#define REG_ACTL_PDSTB			(ADO_BA + 0x18)   /* DMA destination base address register for play */
#define REG_ACTL_PDST_LENGTH	(ADO_BA + 0x1C)   /* DMA destination length register for play */
#define REG_ACTL_PDSTC			(ADO_BA + 0x20)
#define REG_ACTL_PSR			(ADO_BA + 0x24)   /* Play status register */
#define REG_ACTL_IISCON			(ADO_BA + 0x28)   /* IIS control register */
#define REG_ACTL_ACCON			(ADO_BA + 0x2C)   /* AC-link control register */
#define REG_ACTL_ACOS0			(ADO_BA + 0x30)   /* AC-link out slot 0 */
#define REG_ACTL_ACOS1			(ADO_BA + 0x34)   /* AC-link out slot 1 */
#define REG_ACTL_ACOS2			(ADO_BA + 0x38)   /* AC-link out slot 2 */
#define REG_ACTL_ACIS0			(ADO_BA + 0x3C)   /* AC-link in slot 0 */
#define REG_ACTL_ACIS1			(ADO_BA + 0x40)   /* AC-link in slot 1 */
#define REG_ACTL_ACIS2			(ADO_BA + 0x44)   /* AC-link in slot 2 */

  

#define AU_PLAY_INT_NUM	6
#define AU_REC_INT_NUM		6
#define GPIO_INT_NUM		4

#define USED_GPIO_NUM		5

#define MISCR				0xC
#define PADMFC				0x20
#define DCCS				0x5000
#define DEVICE_CTRL			0x5004


/* bit definition of REG_ACTL_CON register */
#define AUDCLK_EN			0x8000
#define PFIFO_EN			0x4000
#define RFIFO_EN			0x2000
#define R_DMA_IRQ			0x1000
#define T_DMA_IRQ			0x0800
#define IIS_AC_PIN_SEL		0x0100
#define FIFO_TH				0x0080
#define DMA_EN				0x0040
#define DAC_EN				0x0020
#define ADC_EN				0x0010
#define M80_EN				0x0008
#define ACLINK_EN			0x0004
#define IIS_EN				0x0002
#define AUDIO_EN			0x0001

/* bit definition of REG_ACTL_RESET register */
#define W5691_PLAY			0x20000
#define ACTL_RESET_BIT		0x10000			
#define RECORD_RIGHT_CHNNEL 0x8000
#define RECORD_LEFT_CHNNEL 	0x4000
#define PLAY_RIGHT_CHNNEL 	0x2000
#define PLAY_LEFT_CHNNEL 	0x1000
#define DAC_PLAY		 	0x0800
#define ADC_RECORD			0x0400
#define M80_PLAY			0x0200
#define AC_RECORD			0x0100
#define AC_PLAY				0x0080
#define IIS_RECORD			0x0040
#define IIS_PLAY			0x0020
#define DAC_RESET			0x0010
#define ADC_RESET			0x0008
#define M80_RESET			0x0004
#define AC_RESET			0x0002
#define IIS_RESET			0x0001

/* bit definition of REG_ACTL_ACCON register */
#define AC_BCLK_PU_EN		0x20
#define AC_R_FINISH			0x10
#define AC_W_FINISH			0x08
#define AC_W_RES			0x04
#define AC_C_RES			0x02

/* bit definition of REG_ACTL_RSR register */
#define R_FIFO_EMPTY		0x04
#define R_DMA_END_IRQ		0x02
#define R_DMA_MIDDLE_IRQ	0x01

/* bit definition of REG_ACTL_PSR register */
#define P_FIFO_EMPTY		0x04
#define P_DMA_END_IRQ		0x02
#define P_DMA_MIDDLE_IRQ	0x01

/* bit definition of REG_ACTL_M80CON register */
#define X86_PCM_TRANS		0x10000
#define BITS16				0x400
#define MA3_W5691			0x200
#define W_IF13_ACT			0x100
#define BUSY				0x80
#define R_IF11_ACT			0x40
#define R_IF10_ACT			0x20
#define W_IF12_ACT			0x10
#define W_IF11_ACT			0x08
#define W_IF10_ACT			0x04
#define SOFT_CON			0x02
#define W_GFIFO				0x20000

#define CLK_DIV				0xF800

#define SOFT_CON_A0			0x0
#define SOFT_CON_A1			0x100
#define SOFT_CON_R			0x200
#define SOFT_CON_W			0x400
#define SOFT_CON_CS			0x800
#define SOFT_CON_REQ		0x1000
#define SOFT_CON_REL		0x2000

/* bit definition of REG_ACTL_ADCON register */
#define ADC_ZCD_EN			0x8
#define ADC_MUTE			0x2

/* bit definition of REG_ACTL_DACON register */
#define DAC1_OEB			0x2000
#define DAC0_OEB			0x1000
#define DAC_ZCD_EN			0x8
#define DAC_MUTE			0x2

#define AD_DA_48000			(0x0 << 4)
#define AD_DA_44100			(0x1 << 4)
#define AD_DA_32000			(0x2 << 4)
#define AD_DA_24000			(0x3 << 4)
#define AD_DA_22050			(0x4 << 4)
#define AD_DA_16000			(0x5 << 4)
#define AD_DA_12000			(0x6 << 4)
#define AD_DA_11025			(0x7 << 4)
#define AD_DA_8000			(0x8 << 4)

#endif	/* _W90N745_AUDIO_REGS_H_ */