diff options
Diffstat (limited to 'sound/soc/tegra/tegra30_spdif.h')
-rw-r--r-- | sound/soc/tegra/tegra30_spdif.h | 777 |
1 files changed, 777 insertions, 0 deletions
diff --git a/sound/soc/tegra/tegra30_spdif.h b/sound/soc/tegra/tegra30_spdif.h new file mode 100644 index 00000000000..c4763c31b25 --- /dev/null +++ b/sound/soc/tegra/tegra30_spdif.h | |||
@@ -0,0 +1,777 @@ | |||
1 | /* | ||
2 | * tegra30_spdif.h - Definitions for Tegra30 SPDIF driver | ||
3 | * | ||
4 | * Author: Sumit Bhattacharya <sumitb@nvidia.com> | ||
5 | * Copyright (C) 2011 - NVIDIA, Inc. | ||
6 | * | ||
7 | * Based on code copyright/by: | ||
8 | * | ||
9 | * Copyright (c) 2009-2011, NVIDIA Corporation. | ||
10 | * Scott Peterson <speterson@nvidia.com> | ||
11 | * | ||
12 | * Copyright (C) 2010 Google, Inc. | ||
13 | * Iliyan Malchev <malchev@google.com> | ||
14 | * | ||
15 | * This program is free software; you can redistribute it and/or | ||
16 | * modify it under the terms of the GNU General Public License | ||
17 | * version 2 as published by the Free Software Foundation. | ||
18 | * | ||
19 | * This program is distributed in the hope that it will be useful, but | ||
20 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
21 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
22 | * General Public License for more details. | ||
23 | * | ||
24 | * You should have received a copy of the GNU General Public License | ||
25 | * along with this program; if not, write to the Free Software | ||
26 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA | ||
27 | * 02110-1301 USA | ||
28 | * | ||
29 | */ | ||
30 | |||
31 | #ifndef __TEGRA30_SPDIF_H__ | ||
32 | #define __TEGRA30_SPDIF_H__ | ||
33 | |||
34 | #include "tegra_pcm.h" | ||
35 | #include "tegra30_ahub.h" | ||
36 | |||
37 | /* Register offsets from TEGRA_SPDIF_BASE */ | ||
38 | |||
39 | #define TEGRA30_SPDIF_CTRL 0x0 | ||
40 | #define TEGRA30_SPDIF_STROBE_CTRL 0x4 | ||
41 | #define TEGRA30_SPDIF_CIF_TXD_CTRL 0x08 | ||
42 | #define TEGRA30_SPDIF_CIF_RXD_CTRL 0x0C | ||
43 | #define TEGRA30_SPDIF_CIF_TXU_CTRL 0x10 | ||
44 | #define TEGRA30_SPDIF_CIF_RXU_CTRL 0x14 | ||
45 | #define TEGRA30_SPDIF_CH_STA_RX_A 0x18 | ||
46 | #define TEGRA30_SPDIF_CH_STA_RX_B 0x1C | ||
47 | #define TEGRA30_SPDIF_CH_STA_RX_C 0x20 | ||
48 | #define TEGRA30_SPDIF_CH_STA_RX_D 0x24 | ||
49 | #define TEGRA30_SPDIF_CH_STA_RX_E 0x28 | ||
50 | #define TEGRA30_SPDIF_CH_STA_RX_F 0x2C | ||
51 | #define TEGRA30_SPDIF_CH_STA_TX_A 0x30 | ||
52 | #define TEGRA30_SPDIF_CH_STA_TX_B 0x34 | ||
53 | #define TEGRA30_SPDIF_CH_STA_TX_C 0x38 | ||
54 | #define TEGRA30_SPDIF_CH_STA_TX_D 0x3C | ||
55 | #define TEGRA30_SPDIF_CH_STA_TX_E 0x40 | ||
56 | #define TEGRA30_SPDIF_CH_STA_TX_F 0x44 | ||
57 | #define TEGRA30_SPDIF_FLOWCTL_CTRL 0x70 | ||
58 | #define TEGRA30_SPDIF_TX_STEP 0x74 | ||
59 | #define TEGRA30_SPDIF_FLOW_STATUS 0x78 | ||
60 | #define TEGRA30_SPDIF_FLOW_TOTAL 0x7c | ||
61 | #define TEGRA30_SPDIF_FLOW_OVER 0x80 | ||
62 | #define TEGRA30_SPDIF_FLOW_UNDER 0x84 | ||
63 | #define TEGRA30_SPDIF_LCOEF_1_4_0 0x88 | ||
64 | #define TEGRA30_SPDIF_LCOEF_1_4_1 0x8c | ||
65 | #define TEGRA30_SPDIF_LCOEF_1_4_2 0x90 | ||
66 | #define TEGRA30_SPDIF_LCOEF_1_4_3 0x94 | ||
67 | #define TEGRA30_SPDIF_LCOEF_1_4_4 0x98 | ||
68 | #define TEGRA30_SPDIF_LCOEF_1_4_5 0x9c | ||
69 | #define TEGRA30_SPDIF_LCOEF_2_4_0 0xa0 | ||
70 | #define TEGRA30_SPDIF_LCOEF_2_4_1 0xa4 | ||
71 | #define TEGRA30_SPDIF_LCOEF_2_4_2 0xa8 | ||
72 | |||
73 | /* Fields in TEGRA30_SPDIF_CTRL */ | ||
74 | #define TEGRA30_SPDIF_CTRL_FLOWCTL_EN_ENABLE (1<<31) | ||
75 | #define TEGRA30_SPDIF_CTRL_CAP_LC_LEFT_CH (1<<30) | ||
76 | #define TEGRA30_SPDIF_CTRL_RX_EN_ENABLE (1<<29) | ||
77 | #define TEGRA30_SPDIF_CTRL_TX_EN_ENABLE (1<<28) | ||
78 | #define TEGRA30_SPDIF_CTRL_TC_EN_ENABLE (1<<27) | ||
79 | #define TEGRA30_SPDIF_CTRL_TU_EN_ENABLE (1<<26) | ||
80 | #define TEGRA30_SPDIF_CTRL_IE_P_RSVD_ENABLE (1<<23) | ||
81 | #define TEGRA30_SPDIF_CTRL_IE_B_RSVD_ENABLE (1<<22) | ||
82 | #define TEGRA30_SPDIF_CTRL_IE_C_RSVD_ENABLE (1<<21) | ||
83 | #define TEGRA30_SPDIF_CTRL_IE_U_RSVD_ENABLE (1<<20) | ||
84 | #define TEGRA30_SPDIF_CTRL_LBK_EN_ENABLE (1<<15) | ||
85 | #define TEGRA30_SPDIF_CTRL_PACK_ENABLE (1<<14) | ||
86 | |||
87 | #define TEGRA30_SPDIF_BIT_MODE16 0 | ||
88 | #define TEGRA30_SPDIF_BIT_MODE20 1 | ||
89 | #define TEGRA30_SPDIF_BIT_MODE24 2 | ||
90 | #define TEGRA30_SPDIF_BIT_MODERAW 3 | ||
91 | |||
92 | #define TEGRA30_SPDIF_CTRL_BIT_MODE_SHIFT 12 | ||
93 | #define TEGRA30_SPDIF_CTRL_BIT_MODE_MASK (3 << TEGRA30_SPDIF_CTRL_BIT_MODE_SHIFT) | ||
94 | #define TEGRA30_SPDIF_CTRL_BIT_MODE_16BIT (TEGRA30_SPDIF_BIT_MODE16 << TEGRA30_SPDIF_CTRL_BIT_MODE_SHIFT) | ||
95 | #define TEGRA30_SPDIF_CTRL_BIT_MODE_20BIT (TEGRA30_SPDIF_BIT_MODE20 << TEGRA30_SPDIF_CTRL_BIT_MODE_SHIFT) | ||
96 | #define TEGRA30_SPDIF_CTRL_BIT_MODE_24BIT (TEGRA30_SPDIF_BIT_MODE24 << TEGRA30_SPDIF_CTRL_BIT_MODE_SHIFT) | ||
97 | #define TEGRA30_SPDIF_CTRL_BIT_MODE_RAW (TEGRA30_SPDIF_BIT_MODERAW << TEGRA30_SPDIF_CTRL_BIT_MODE_SHIFT) | ||
98 | |||
99 | #define TEGRA30_SPDIF_CTRL_CG_EN_ENABLE (1<<11) | ||
100 | |||
101 | #define TEGRA30_SPDIF_CTRL_OBS_SEL_SHIFT 8 | ||
102 | #define TEGRA30_SPDIF_CTRL_OBS_SEL_NASK (0x7 << TEGRA30_SPDIF_CTRL_OBS_SEL_SHIFT) | ||
103 | |||
104 | #define TEGRA30_SPDIF_CTRL_SOFT_RESET_ENABLE (1<<7) | ||
105 | |||
106 | /* Fields in TEGRA30_SPDIF_STROBE_CTRL */ | ||
107 | #define TEGRA30_SPDIF_STROBE_CTRL_PERIOD_SHIFT 16 | ||
108 | #define TEGRA30_SPDIF_STROBE_CTRL_PERIOD_MASK (0xff << TEGRA30_SPDIF_STROBE_CTRL_PERIOD_SHIFT) | ||
109 | |||
110 | #define TEGRA30_SPDIF_STROBE_CTRL_STROBE (1<<15) | ||
111 | |||
112 | #define TEGRA30_SPDIF_STROBE_CTRL_DATA_STROBES_SHIFT 8 | ||
113 | #define TEGRA30_SPDIF_STROBE_CTRL_DATA_STROBES_MASK (0x1f << TEGRA30_SPDIF_STROBE_CTRL_DATA_STROBES_SHIFT) | ||
114 | |||
115 | #define TEGRA30_SPDIF_STROBE_CTRL_CLOCK_PERIOD_SHIFT 0 | ||
116 | #define TEGRA30_SPDIF_STROBE_CTRL_CLOCK_PERIOD_MASK (0x3f << TEGRA30_SPDIF_STROBE_CTRL_CLOCK_PERIOD_SHIFT) | ||
117 | |||
118 | /* Fields in TEGRA30_SPDIF_CIF_TXD_CTRL */ | ||
119 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_MONO_CONV_COPY (1<<0) | ||
120 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_TRUNCATE_CHOP (1<<1) | ||
121 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_DIRECTION_RXCIF (1<<2) | ||
122 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_REPLICATE_ENABLE (1<<3) | ||
123 | |||
124 | #define TEGRA30_SPDIF_CIF_STEREO_CH0 0 | ||
125 | #define TEGRA30_SPDIF_CIF_STEREO_CH1 1 | ||
126 | #define TEGRA30_SPDIF_CIF_STEREO_AVG 2 | ||
127 | #define TEGRA30_SPDIF_CIF_STEREO_RSVD 3 | ||
128 | |||
129 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_STEREO_CONV_SHIFT 4 | ||
130 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_STEREO_CONV_MASK \ | ||
131 | (0x3 << TEGRA30_SPDIF_CIF_TXD_CTRL_STEREO_CONV_SHIFT) | ||
132 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_STEREO_CONV_CH0 \ | ||
133 | (TEGRA30_SPDIF_CIF_STEREO_CH0 << TEGRA30_SPDIF_CIF_TXD_CTRL_STEREO_CONV_SHIFT) | ||
134 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_STEREO_CONV_CH1 \ | ||
135 | (TEGRA30_SPDIF_CIF_STEREO_CH1 << TEGRA30_SPDIF_CIF_TXD_CTRL_STEREO_CONV_SHIFT) | ||
136 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_STEREO_CONV_AVG \ | ||
137 | (TEGRA30_SPDIF_CIF_STEREO_AVG << TEGRA30_SPDIF_CIF_TXD_CTRL_STEREO_CONV_SHIFT) | ||
138 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_STEREO_CONV_RSVD \ | ||
139 | (TEGRA30_SPDIF_CIF_STEREO_RSVD << TEGRA30_SPDIF_CIF_TXD_CTRL_STEREO_CONV_SHIFT) | ||
140 | |||
141 | #define TEGRA30_SPDIF_CIF_EXPAND_ZERO 0 | ||
142 | #define TEGRA30_SPDIF_CIF_EXPAND_ONE 1 | ||
143 | #define TEGRA30_SPDIF_CIF_EXPAND_LFSR 2 | ||
144 | #define TEGRA30_SPDIF_CIF_EXPAND_RSVD 3 | ||
145 | |||
146 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_EXPAND_SHIFT 6 | ||
147 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_EXPAND_MASK \ | ||
148 | (0x3 << TEGRA30_SPDIF_CIF_TXD_CTRL_EXPAND_SHIFT) | ||
149 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_EXPAND_ZERO \ | ||
150 | (TEGRA30_SPDIF_CIF_EXPAND_ZERO << TEGRA30_SPDIF_CIF_TXD_CTRL_EXPAND_SHIFT) | ||
151 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_EXPAND_ONE \ | ||
152 | (TEGRA30_SPDIF_CIF_EXPAND_ONE << TEGRA30_SPDIF_CIF_TXD_CTRL_EXPAND_SHIFT) | ||
153 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_EXPAND_LFSR \ | ||
154 | (TEGRA30_SPDIF_CIF_EXPAND_LFSR << TEGRA30_SPDIF_CIF_TXD_CTRL_EXPAND_SHIFT) | ||
155 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_EXPAND_RSVD \ | ||
156 | (TEGRA30_SPDIF_CIF_EXPAND_RSVD << TEGRA30_SPDIF_CIF_TXD_CTRL_EXPAND_SHIFT) | ||
157 | |||
158 | #define TEGRA30_SPDIF_CIF_BIT4 0 | ||
159 | #define TEGRA30_SPDIF_CIF_BIT8 1 | ||
160 | #define TEGRA30_SPDIF_CIF_BIT12 2 | ||
161 | #define TEGRA30_SPDIF_CIF_BIT16 3 | ||
162 | #define TEGRA30_SPDIF_CIF_BIT20 4 | ||
163 | #define TEGRA30_SPDIF_CIF_BIT24 5 | ||
164 | #define TEGRA30_SPDIF_CIF_BIT28 6 | ||
165 | #define TEGRA30_SPDIF_CIF_BIT32 7 | ||
166 | |||
167 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_BITS_SHIFT 8 | ||
168 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_BITS_MASK \ | ||
169 | (0x7 << TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_BITS_SHIFT) | ||
170 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_BIT4 \ | ||
171 | (TEGRA30_SPDIF_CIF_BIT4 << TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_BITS_SHIFT) | ||
172 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_BIT8 \ | ||
173 | (TEGRA30_SPDIF_CIF_BIT8 << TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_BITS_SHIFT) | ||
174 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_BIT12 \ | ||
175 | (TEGRA30_SPDIF_CIF_BIT12 << TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_BITS_SHIFT) | ||
176 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_BIT16 \ | ||
177 | (TEGRA30_SPDIF_CIF_BIT16 << TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_BITS_SHIFT) | ||
178 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_BIT20 \ | ||
179 | (TEGRA30_SPDIF_CIF_BIT20 << TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_BITS_SHIFT) | ||
180 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_BIT24 \ | ||
181 | (TEGRA30_SPDIF_CIF_BIT24 << TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_BITS_SHIFT) | ||
182 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_BIT28 \ | ||
183 | (TEGRA30_SPDIF_CIF_BIT28 << TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_BITS_SHIFT) | ||
184 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_BIT32 \ | ||
185 | (TEGRA30_SPDIF_CIF_BIT32 << TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_BITS_SHIFT) | ||
186 | |||
187 | |||
188 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_BITS_SHIFT 12 | ||
189 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_BITS_MASK \ | ||
190 | (0x7 << TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_BITS_SHIFT) | ||
191 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_BIT4 \ | ||
192 | (TEGRA30_SPDIF_CIF_BIT4 << TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_BITS_SHIFT) | ||
193 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_BIT8 \ | ||
194 | (TEGRA30_SPDIF_CIF_BIT8 << TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_BITS_SHIFT) | ||
195 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_BIT12 \ | ||
196 | (TEGRA30_SPDIF_CIF_BIT12 << TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_BITS_SHIFT) | ||
197 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_BIT16 \ | ||
198 | (TEGRA30_SPDIF_CIF_BIT16 << TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_BITS_SHIFT) | ||
199 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_BIT20 \ | ||
200 | (TEGRA30_SPDIF_CIF_BIT20 << TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_BITS_SHIFT) | ||
201 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_BIT24 \ | ||
202 | (TEGRA30_SPDIF_CIF_BIT24 << TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_BITS_SHIFT) | ||
203 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_BIT28 \ | ||
204 | (TEGRA30_SPDIF_CIF_BIT28 << TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_BITS_SHIFT) | ||
205 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_BIT32 \ | ||
206 | (TEGRA30_SPDIF_CIF_BIT32 << TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_BITS_SHIFT) | ||
207 | |||
208 | #define TEGRA30_SPDIF_CIF_CH1 0 | ||
209 | #define TEGRA30_SPDIF_CIF_CH2 1 | ||
210 | #define TEGRA30_SPDIF_CIF_CH3 2 | ||
211 | #define TEGRA30_SPDIF_CIF_CH4 3 | ||
212 | #define TEGRA30_SPDIF_CIF_CH5 4 | ||
213 | #define TEGRA30_SPDIF_CIF_CH6 5 | ||
214 | #define TEGRA30_SPDIF_CIF_CH7 6 | ||
215 | #define TEGRA30_SPDIF_CIF_CH8 7 | ||
216 | |||
217 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_CH_SHIFT 16 | ||
218 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_CH_MASK \ | ||
219 | (0x7 << TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_CH_SHIFT) | ||
220 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_CH1 \ | ||
221 | (TEGRA30_SPDIF_CIF_CH1 << TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_CH_SHIFT) | ||
222 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_CH2 \ | ||
223 | (TEGRA30_SPDIF_CIF_CH2 << TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_CH_SHIFT) | ||
224 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_CH3 \ | ||
225 | (TEGRA30_SPDIF_CIF_CH3 << TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_CH_SHIFT) | ||
226 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_CH4 \ | ||
227 | (TEGRA30_SPDIF_CIF_CH4 << TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_CH_SHIFT) | ||
228 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_CH5 \ | ||
229 | (TEGRA30_SPDIF_CIF_CH5 << TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_CH_SHIFT) | ||
230 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_CH6 \ | ||
231 | (TEGRA30_SPDIF_CIF_CH6 << TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_CH_SHIFT) | ||
232 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_CH7 \ | ||
233 | (TEGRA30_SPDIF_CIF_CH7 << TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_CH_SHIFT) | ||
234 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_CH8 \ | ||
235 | (TEGRA30_SPDIF_CIF_CH8 << TEGRA30_SPDIF_CIF_TXD_CTRL_CLIENT_CH_SHIFT) | ||
236 | |||
237 | |||
238 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_CH_SHIFT 24 | ||
239 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_CH_MASK \ | ||
240 | (0x7 << TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_CH_SHIFT) | ||
241 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_CH1 \ | ||
242 | (TEGRA30_SPDIF_CIF_CH1 << TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_CH_SHIFT) | ||
243 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_CH2 \ | ||
244 | (TEGRA30_SPDIF_CIF_CH2 << TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_CH_SHIFT) | ||
245 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_CH3 \ | ||
246 | (TEGRA30_SPDIF_CIF_CH3 << TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_CH_SHIFT) | ||
247 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_CH4 \ | ||
248 | (TEGRA30_SPDIF_CIF_CH4 << TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_CH_SHIFT) | ||
249 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_CH5 \ | ||
250 | (TEGRA30_SPDIF_CIF_CH5 << TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_CH_SHIFT) | ||
251 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_CH6 \ | ||
252 | (TEGRA30_SPDIF_CIF_CH6 << TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_CH_SHIFT) | ||
253 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_CH7 \ | ||
254 | (TEGRA30_SPDIF_CIF_CH7 << TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_CH_SHIFT) | ||
255 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_CH8 \ | ||
256 | (TEGRA30_SPDIF_CIF_CH8 << TEGRA30_SPDIF_CIF_TXD_CTRL_AUDIO_CH_SHIFT) | ||
257 | |||
258 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_FIFO_TH_SHIFT 28 | ||
259 | #define TEGRA30_SPDIF_CIF_TXD_CTRL_FIFO_TH_MASK (0x7 << TEGRA30_SPDIF_CIF_TXD_CTRL_FIFO_TH_SHIFT) | ||
260 | |||
261 | /* Fields in TEGRA30_TEGRA30_SPDIF_CIF_RXD_CTRL */ | ||
262 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_MONO_CONV_COPY (1<<0) | ||
263 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_TRUNCATE_CHOP (1<<1) | ||
264 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_DIRECTION_RXCIF (1<<2) | ||
265 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_REPLICATE_ENABLE (1<<3) | ||
266 | |||
267 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_STEREO_CONV_SHIFT 4 | ||
268 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_STEREO_CONV_MASK \ | ||
269 | (0x3 << TEGRA30_SPDIF_CIF_RXD_CTRL_STEREO_CONV_SHIFT) | ||
270 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_STEREO_CONV_CH0 \ | ||
271 | (TEGRA30_SPDIF_CIF_STEREO_CH0 << TEGRA30_SPDIF_CIF_RXD_CTRL_STEREO_CONV_SHIFT) | ||
272 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_STEREO_CONV_CH1 \ | ||
273 | (TEGRA30_SPDIF_CIF_STEREO_CH1 << TEGRA30_SPDIF_CIF_RXD_CTRL_STEREO_CONV_SHIFT) | ||
274 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_STEREO_CONV_AVG \ | ||
275 | (TEGRA30_SPDIF_CIF_STEREO_AVG << TEGRA30_SPDIF_CIF_RXD_CTRL_STEREO_CONV_SHIFT) | ||
276 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_STEREO_CONV_RSVD \ | ||
277 | (TEGRA30_SPDIF_CIF_STEREO_RSVD << TEGRA30_SPDIF_CIF_RXD_CTRL_STEREO_CONV_SHIFT) | ||
278 | |||
279 | |||
280 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_EXPAND_SHIFT 6 | ||
281 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_EXPAND_MASK \ | ||
282 | (0x3 << TEGRA30_SPDIF_CIF_RXD_CTRL_EXPAND_SHIFT) | ||
283 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_EXPAND_ZERO \ | ||
284 | (TEGRA30_SPDIF_CIF_EXPAND_ZERO << TEGRA30_SPDIF_CIF_RXD_CTRL_EXPAND_SHIFT) | ||
285 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_EXPAND_ONE \ | ||
286 | (TEGRA30_SPDIF_CIF_EXPAND_ONE << TEGRA30_SPDIF_CIF_RXD_CTRL_EXPAND_SHIFT) | ||
287 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_EXPAND_LFSR \ | ||
288 | (TEGRA30_SPDIF_CIF_EXPAND_LFSR << TEGRA30_SPDIF_CIF_RXD_CTRL_EXPAND_SHIFT) | ||
289 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_EXPAND_RSVD \ | ||
290 | |||
291 | |||
292 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_BITS_SHIFT 8 | ||
293 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_BITS_MASK \ | ||
294 | (0x7 << TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_BITS_SHIFT) | ||
295 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_BIT4 \ | ||
296 | (TEGRA30_SPDIF_CIF_BIT4 << TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_BITS_SHIFT) | ||
297 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_BIT8 \ | ||
298 | (TEGRA30_SPDIF_CIF_BIT8 << TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_BITS_SHIFT) | ||
299 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_BIT12 \ | ||
300 | (TEGRA30_SPDIF_CIF_BIT12 << TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_BITS_SHIFT) | ||
301 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_BIT16 \ | ||
302 | (TEGRA30_SPDIF_CIF_BIT16 << TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_BITS_SHIFT) | ||
303 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_BIT20 \ | ||
304 | (TEGRA30_SPDIF_CIF_BIT20 << TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_BITS_SHIFT) | ||
305 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_BIT24 \ | ||
306 | (TEGRA30_SPDIF_CIF_BIT24 << TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_BITS_SHIFT) | ||
307 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_BIT28 \ | ||
308 | (TEGRA30_SPDIF_CIF_BIT28 << TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_BITS_SHIFT) | ||
309 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_BIT32 \ | ||
310 | (TEGRA30_SPDIF_CIF_BIT32 << TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_BITS_SHIFT) | ||
311 | |||
312 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_BITS_SHIFT 12 | ||
313 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_BITS_MASK \ | ||
314 | (0x7 << TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_BITS_SHIFT) | ||
315 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_BIT4 \ | ||
316 | (TEGRA30_SPDIF_CIF_BIT4 << TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_BITS_SHIFT) | ||
317 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_BIT8 \ | ||
318 | (TEGRA30_SPDIF_CIF_BIT8 << TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_BITS_SHIFT) | ||
319 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_BIT12 \ | ||
320 | (TEGRA30_SPDIF_CIF_BIT12 << TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_BITS_SHIFT) | ||
321 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_BIT16 \ | ||
322 | (TEGRA30_SPDIF_CIF_BIT16 << TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_BITS_SHIFT) | ||
323 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_BIT20 \ | ||
324 | (TEGRA30_SPDIF_CIF_BIT20 << TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_BITS_SHIFT) | ||
325 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_BIT24 \ | ||
326 | (TEGRA30_SPDIF_CIF_BIT24 << TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_BITS_SHIFT) | ||
327 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_BIT28 \ | ||
328 | (TEGRA30_SPDIF_CIF_BIT28 << TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_BITS_SHIFT) | ||
329 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_BIT32 \ | ||
330 | (TEGRA30_SPDIF_CIF_BIT32 << TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_BITS_SHIFT) | ||
331 | |||
332 | |||
333 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_CH_SHIFT 16 | ||
334 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_CH_MASK \ | ||
335 | (0x7 << TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_CH_SHIFT) | ||
336 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_CH1 \ | ||
337 | (TEGRA30_SPDIF_CIF_CH1 << TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_CH_SHIFT) | ||
338 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_CH2 \ | ||
339 | (TEGRA30_SPDIF_CIF_CH2 << TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_CH_SHIFT) | ||
340 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_CH3 \ | ||
341 | (TEGRA30_SPDIF_CIF_CH3 << TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_CH_SHIFT) | ||
342 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_CH4 \ | ||
343 | (TEGRA30_SPDIF_CIF_CH4 << TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_CH_SHIFT) | ||
344 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_CH5 \ | ||
345 | (TEGRA30_SPDIF_CIF_CH5 << TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_CH_SHIFT) | ||
346 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_CH6 \ | ||
347 | (TEGRA30_SPDIF_CIF_CH6 << TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_CH_SHIFT) | ||
348 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_CH7 \ | ||
349 | (TEGRA30_SPDIF_CIF_CH7 << TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_CH_SHIFT) | ||
350 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_CH8 \ | ||
351 | (TEGRA30_SPDIF_CIF_CH8 << TEGRA30_SPDIF_CIF_RXD_CTRL_CLIENT_CH_SHIFT) | ||
352 | |||
353 | |||
354 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_CHANNELS_SHIFT 24 | ||
355 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_CHANNELS_MASK \ | ||
356 | (0x7 << TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_CHANNELS_SHIFT) | ||
357 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_CH1 \ | ||
358 | (TEGRA30_SPDIF_CIF_CH1 << TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_CHANNELS_SHIFT) | ||
359 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_CH2 \ | ||
360 | (TEGRA30_SPDIF_CIF_CH2 << TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_CHANNELS_SHIFT) | ||
361 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_CH3 \ | ||
362 | (TEGRA30_SPDIF_CIF_CH3 << TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_CHANNELS_SHIFT) | ||
363 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_CH4 \ | ||
364 | (TEGRA30_SPDIF_CIF_CH4 << TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_CHANNELS_SHIFT) | ||
365 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_CH5 \ | ||
366 | (TEGRA30_SPDIF_CIF_CH5 << TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_CHANNELS_SHIFT) | ||
367 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_CH6 \ | ||
368 | (TEGRA30_SPDIF_CIF_CH6 << TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_CHANNELS_SHIFT) | ||
369 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_CH7 \ | ||
370 | (TEGRA30_SPDIF_CIF_CH7 << TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_CHANNELS_SHIFT) | ||
371 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_CH8 \ | ||
372 | (TEGRA30_SPDIF_CIF_CH8 << TEGRA30_SPDIF_CIF_RXD_CTRL_AUDIO_CHANNELS_SHIFT) | ||
373 | |||
374 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_FIFO_TH_SHIFT 28 | ||
375 | #define TEGRA30_SPDIF_CIF_RXD_CTRL_FIFO_TH_MASK (0x7 << TEGRA30_SPDIF_CIF_RXD_CTRL_FIFO_TH_SHIFT) | ||
376 | |||
377 | /* Fields in TEGRA30_TEGRA30_SPDIF_CIF_TXU_CTRL */ | ||
378 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_MONO_CONV_COPY (1<<0) | ||
379 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_TRUNCATE_CHOP (1<<1) | ||
380 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_DIRECTION_RXCIF (1<<2) | ||
381 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_REPLICATE_ENABLE (1<<3) | ||
382 | |||
383 | |||
384 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_STEREO_CONV_SHIFT 4 | ||
385 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_STEREO_CONV_MASK \ | ||
386 | (0x3 << TEGRA30_SPDIF_CIF_TXU_CTRL_0_STEREO_CONV_SHIFT) | ||
387 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_STEREO_CONV_CH0 \ | ||
388 | (TEGRA30_SPDIF_CIF_STEREO_CH0 << TEGRA30_SPDIF_CIF_TXU_CTRL_0_STEREO_CONV_SHIFT) | ||
389 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_STEREO_CONV_CH1 \ | ||
390 | (TEGRA30_SPDIF_CIF_STEREO_CH1 << TEGRA30_SPDIF_CIF_TXU_CTRL_0_STEREO_CONV_SHIFT) | ||
391 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_STEREO_CONV_AVG \ | ||
392 | (TEGRA30_SPDIF_CIF_STEREO_AVG << TEGRA30_SPDIF_CIF_TXU_CTRL_0_STEREO_CONV_SHIFT) | ||
393 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_STEREO_CONV_RSVD \ | ||
394 | (TEGRA30_SPDIF_CIF_STEREO_RSVD << TEGRA30_SPDIF_CIF_TXU_CTRL_0_STEREO_CONV_SHIFT) | ||
395 | |||
396 | |||
397 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_EXPAND_SHIFT 6 | ||
398 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_EXPAND_MASK \ | ||
399 | (0x3 << TEGRA30_SPDIF_CIF_TXU_CTRL_EXPAND_SHIFT) | ||
400 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_EXPAND_ZERO \ | ||
401 | (TEGRA30_SPDIF_CIF_EXPAND_ZERO << TEGRA30_SPDIF_CIF_TXU_CTRL_EXPAND_SHIFT) | ||
402 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_EXPAND_ONE \ | ||
403 | (TEGRA30_SPDIF_CIF_EXPAND_ONE << TEGRA30_SPDIF_CIF_TXU_CTRL_EXPAND_SHIFT) | ||
404 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_EXPAND_LFSR \ | ||
405 | (TEGRA30_SPDIF_CIF_EXPAND_LFSR << TEGRA30_SPDIF_CIF_TXU_CTRL_EXPAND_SHIFT) | ||
406 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_EXPAND_RSVD \ | ||
407 | (TEGRA30_SPDIF_CIF_EXPAND_RSVD << TEGRA30_SPDIF_CIF_TXU_CTRL_EXPAND_SHIFT) | ||
408 | |||
409 | |||
410 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_BITS_SHIFT 8 | ||
411 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_BITS_MASK \ | ||
412 | (0x7 << TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_BITS_SHIFT) | ||
413 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_BIT4 \ | ||
414 | (TEGRA30_SPDIF_CIF_BIT4 << TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_BITS_SHIFT) | ||
415 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_BIT8 \ | ||
416 | (TEGRA30_SPDIF_CIF_BIT8 << TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_BITS_SHIFT) | ||
417 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_BIT12 \ | ||
418 | (TEGRA30_SPDIF_CIF_BIT12 << TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_BITS_SHIFT) | ||
419 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_BIT16 \ | ||
420 | (TEGRA30_SPDIF_CIF_BIT16 << TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_BITS_SHIFT) | ||
421 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_BIT20 \ | ||
422 | (TEGRA30_SPDIF_CIF_BIT20 << TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_BITS_SHIFT) | ||
423 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_BIT24 \ | ||
424 | (TEGRA30_SPDIF_CIF_BIT24 << TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_BITS_SHIFT) | ||
425 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_BIT28 \ | ||
426 | (TEGRA30_SPDIF_CIF_BIT28 << TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_BITS_SHIFT) | ||
427 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_BIT32 \ | ||
428 | (TEGRA30_SPDIF_CIF_BIT32 << TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_BITS_SHIFT) | ||
429 | |||
430 | |||
431 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_BITS_SHIFT 12 | ||
432 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_BITS_MASK \ | ||
433 | (0x7 << TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_BITS_SHIFT) | ||
434 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_BIT4 \ | ||
435 | (TEGRA30_SPDIF_CIF_BIT4 << TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_BITS_SHIFT) | ||
436 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_BIT8 \ | ||
437 | (TEGRA30_SPDIF_CIF_BIT8 << TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_BITS_SHIFT) | ||
438 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_BIT12 \ | ||
439 | (TEGRA30_SPDIF_CIF_BIT12 << TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_BITS_SHIFT) | ||
440 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_BIT16 \ | ||
441 | (TEGRA30_SPDIF_CIF_BIT16 << TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_BITS_SHIFT) | ||
442 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_BIT20 \ | ||
443 | (TEGRA30_SPDIF_CIF_BIT20 << TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_BITS_SHIFT) | ||
444 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_BIT24 \ | ||
445 | (TEGRA30_SPDIF_CIF_BIT24 << TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_BITS_SHIFT) | ||
446 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_BIT28 \ | ||
447 | (TEGRA30_SPDIF_CIF_BIT28 << TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_BITS_SHIFT) | ||
448 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_BIT32 \ | ||
449 | (TEGRA30_SPDIF_CIF_BIT32 << TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_BITS_SHIFT) | ||
450 | |||
451 | |||
452 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_CH_SHIFT 16 | ||
453 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_CH_MASK \ | ||
454 | (0x7 << TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_CH_SHIFT) | ||
455 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_CH1 \ | ||
456 | (TEGRA30_SPDIF_CIF_CH1 << TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_CH_SHIFT) | ||
457 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_CH2 \ | ||
458 | (TEGRA30_SPDIF_CIF_CH2 << TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_CH_SHIFT) | ||
459 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_CH3 \ | ||
460 | (TEGRA30_SPDIF_CIF_CH3 << TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_CH_SHIFT) | ||
461 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_CH4 \ | ||
462 | (TEGRA30_SPDIF_CIF_CH4 << TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_CH_SHIFT) | ||
463 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_CH5 \ | ||
464 | (TEGRA30_SPDIF_CIF_CH5 << TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_CH_SHIFT) | ||
465 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_CH6 \ | ||
466 | (TEGRA30_SPDIF_CIF_CH6 << TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_CH_SHIFT) | ||
467 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_CH7 \ | ||
468 | (TEGRA30_SPDIF_CIF_CH7 << TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_CH_SHIFT) | ||
469 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_CH8 \ | ||
470 | (TEGRA30_SPDIF_CIF_CH8 << TEGRA30_SPDIF_CIF_TXU_CTRL_CLIENT_CH_SHIFT) | ||
471 | |||
472 | |||
473 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_CH_SHIFT 24 | ||
474 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_CH_MASK \ | ||
475 | (0x7 << TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_CH_SHIFT) | ||
476 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_CH1 \ | ||
477 | (TEGRA30_SPDIF_CIF_CH1 << TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_CH_SHIFT) | ||
478 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_CH2 \ | ||
479 | (TEGRA30_SPDIF_CIF_CH2 << TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_CH_SHIFT) | ||
480 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_CH3 \ | ||
481 | (TEGRA30_SPDIF_CIF_CH3 << TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_CH_SHIFT) | ||
482 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_CH4 \ | ||
483 | (TEGRA30_SPDIF_CIF_CH4 << TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_CH_SHIFT) | ||
484 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_CH5 \ | ||
485 | (TEGRA30_SPDIF_CIF_CH5 << TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_CH_SHIFT) | ||
486 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_CH6 \ | ||
487 | (TEGRA30_SPDIF_CIF_CH6 << TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_CH_SHIFT) | ||
488 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_CH7 \ | ||
489 | (TEGRA30_SPDIF_CIF_CH7 << TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_CH_SHIFT) | ||
490 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_CH8 \ | ||
491 | (TEGRA30_SPDIF_CIF_CH8 << TEGRA30_SPDIF_CIF_TXU_CTRL_AUDIO_CH_SHIFT) | ||
492 | |||
493 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_FIFO_TH_SHIFT 28 | ||
494 | #define TEGRA30_SPDIF_CIF_TXU_CTRL_FIFO_TH_MASK (0x7 << TEGRA30_SPDIF_CIF_TXU_CTRL_FIFO_TH_SHIFT) | ||
495 | |||
496 | /* Fields in TEGRA30_TEGRA30_SPDIF_CIF_RXU_CTRL */ | ||
497 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_MONO_CONV_COPY (1<<0) | ||
498 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_TRUNCATE_CHOP (1<<1) | ||
499 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_DIRECTION_RXCIF (1<<2) | ||
500 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_REPLICATE_ENABLE (1<<3) | ||
501 | |||
502 | |||
503 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_STEREO_CONV_SHIFT 4 | ||
504 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_STEREO_CONV_MASK \ | ||
505 | (0x3 << TEGRA30_SPDIF_CIF_RXU_CTRL_0_STEREO_CONV_SHIFT) | ||
506 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_STEREO_CONV_CH0 \ | ||
507 | (TEGRA30_SPDIF_CIF_STEREO_CH0 << TEGRA30_SPDIF_CIF_RXU_CTRL_0_STEREO_CONV_SHIFT) | ||
508 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_STEREO_CONV_CH1 \ | ||
509 | (TEGRA30_SPDIF_CIF_STEREO_CH1 << TEGRA30_SPDIF_CIF_RXU_CTRL_0_STEREO_CONV_SHIFT) | ||
510 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_STEREO_CONV_AVG \ | ||
511 | (TEGRA30_SPDIF_CIF_STEREO_AVG << TEGRA30_SPDIF_CIF_RXU_CTRL_0_STEREO_CONV_SHIFT) | ||
512 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_STEREO_CONV_RSVD \ | ||
513 | (TEGRA30_SPDIF_CIF_STEREO_RSVD << TEGRA30_SPDIF_CIF_RXU_CTRL_0_STEREO_CONV_SHIFT) | ||
514 | |||
515 | |||
516 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_EXPAND_SHIFT 6 | ||
517 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_EXPAND_MASK \ | ||
518 | (0x3 << TEGRA30_SPDIF_CIF_RXU_CTRL_EXPAND_SHIFT) | ||
519 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_EXPAND_ZERO \ | ||
520 | (TEGRA30_SPDIF_CIF_EXPAND_ZERO << TEGRA30_SPDIF_CIF_RXU_CTRL_EXPAND_SHIFT) | ||
521 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_EXPAND_ONE \ | ||
522 | (TEGRA30_SPDIF_CIF_EXPAND_ONE << TEGRA30_SPDIF_CIF_RXU_CTRL_EXPAND_SHIFT) | ||
523 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_EXPAND_LFSR \ | ||
524 | (TEGRA30_SPDIF_CIF_EXPAND_LFSR << TEGRA30_SPDIF_CIF_RXU_CTRL_EXPAND_SHIFT) | ||
525 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_EXPAND_RSVD \ | ||
526 | (TEGRA30_SPDIF_CIF_EXPAND_RSVD << TEGRA30_SPDIF_CIF_RXU_CTRL_EXPAND_SHIFT) | ||
527 | |||
528 | |||
529 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_BITS_SHIFT 8 | ||
530 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_BITS_MASK \ | ||
531 | (0x7 << TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_BITS_SHIFT) | ||
532 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_BIT4 \ | ||
533 | (TEGRA30_SPDIF_CIF_BIT4 << TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_BITS_SHIFT) | ||
534 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_BIT8 \ | ||
535 | (TEGRA30_SPDIF_CIF_BIT8 << TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_BITS_SHIFT) | ||
536 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_BIT12 \ | ||
537 | (TEGRA30_SPDIF_CIF_BIT12 << TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_BITS_SHIFT) | ||
538 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_BIT16 \ | ||
539 | (TEGRA30_SPDIF_CIF_BIT16 << TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_BITS_SHIFT) | ||
540 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_BIT20 \ | ||
541 | (TEGRA30_SPDIF_CIF_BIT20 << TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_BITS_SHIFT) | ||
542 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_BIT24 \ | ||
543 | (TEGRA30_SPDIF_CIF_BIT24 << TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_BITS_SHIFT) | ||
544 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_BIT28 \ | ||
545 | (TEGRA30_SPDIF_CIF_BIT28 << TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_BITS_SHIFT) | ||
546 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_BIT32 \ | ||
547 | (TEGRA30_SPDIF_CIF_BIT32 << TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_BITS_SHIFT) | ||
548 | |||
549 | |||
550 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_BITS_SHIFT 12 | ||
551 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_BITS_MASK \ | ||
552 | (0x7 << TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_BITS_SHIFT) | ||
553 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_BIT4 \ | ||
554 | (TEGRA30_SPDIF_CIF_BIT4 << TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_BITS_SHIFT) | ||
555 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_BIT8 \ | ||
556 | (TEGRA30_SPDIF_CIF_BIT8 << TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_BITS_SHIFT) | ||
557 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_BIT12 \ | ||
558 | (TEGRA30_SPDIF_CIF_BIT12 << TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_BITS_SHIFT) | ||
559 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_BIT16 \ | ||
560 | (TEGRA30_SPDIF_CIF_BIT16 << TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_BITS_SHIFT) | ||
561 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_BIT20 \ | ||
562 | (TEGRA30_SPDIF_CIF_BIT20 << TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_BITS_SHIFT) | ||
563 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_BIT24 \ | ||
564 | (TEGRA30_SPDIF_CIF_BIT24 << TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_BITS_SHIFT) | ||
565 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_BIT28 \ | ||
566 | (TEGRA30_SPDIF_CIF_BIT28 << TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_BITS_SHIFT) | ||
567 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_BIT32 \ | ||
568 | (TEGRA30_SPDIF_CIF_BIT32 << TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_BITS_SHIFT) | ||
569 | |||
570 | |||
571 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_CH_SHIFT 16 | ||
572 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_CH_MASK \ | ||
573 | (0x7 << TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_CH_SHIFT) | ||
574 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_CH1 \ | ||
575 | (TEGRA30_SPDIF_CIF_CH1 << TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_CH_SHIFT) | ||
576 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_CH2 \ | ||
577 | (TEGRA30_SPDIF_CIF_CH2 << TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_CH_SHIFT) | ||
578 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_CH3 \ | ||
579 | (TEGRA30_SPDIF_CIF_CH3 << TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_CH_SHIFT) | ||
580 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_CH4 \ | ||
581 | (TEGRA30_SPDIF_CIF_CH4 << TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_CH_SHIFT) | ||
582 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_CH5 \ | ||
583 | (TEGRA30_SPDIF_CIF_CH5 << TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_CH_SHIFT) | ||
584 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_CH6 \ | ||
585 | (TEGRA30_SPDIF_CIF_CH6 << TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_CH_SHIFT) | ||
586 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_CH7 \ | ||
587 | (TEGRA30_SPDIF_CIF_CH7 << TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_CH_SHIFT) | ||
588 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_CH8 \ | ||
589 | (TEGRA30_SPDIF_CIF_CH8 << TEGRA30_SPDIF_CIF_RXU_CTRL_CLIENT_CH_SHIFT) | ||
590 | |||
591 | |||
592 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_CH_SHIFT 24 | ||
593 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_CH_MASK \ | ||
594 | (0x7 << TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_CH_SHIFT) | ||
595 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_CH1 \ | ||
596 | (TEGRA30_SPDIF_CIF_CH1 << TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_CH_SHIFT) | ||
597 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_CH2 \ | ||
598 | (TEGRA30_SPDIF_CIF_CH2 << TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_CH_SHIFT) | ||
599 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_CH3 \ | ||
600 | (TEGRA30_SPDIF_CIF_CH3 << TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_CH_SHIFT) | ||
601 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_CH4 \ | ||
602 | (TEGRA30_SPDIF_CIF_CH4 << TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_CH_SHIFT) | ||
603 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_CH5 \ | ||
604 | (TEGRA30_SPDIF_CIF_CH5 << TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_CH_SHIFT) | ||
605 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_CH6 \ | ||
606 | (TEGRA30_SPDIF_CIF_CH6 << TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_CH_SHIFT) | ||
607 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_CH7 \ | ||
608 | (TEGRA30_SPDIF_CIF_CH7 << TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_CH_SHIFT) | ||
609 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_CH8 \ | ||
610 | (TEGRA30_SPDIF_CIF_CH8 << TEGRA30_SPDIF_CIF_RXU_CTRL_AUDIO_CH_SHIFT) | ||
611 | |||
612 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_FIFO_TH_SHIFT 28 | ||
613 | #define TEGRA30_SPDIF_CIF_RXU_CTRL_FIFO_TH_MASK (0x7 << TEGRA30_SPDIF_CIF_RXU_CTRL_FIFO_TH_SHIFT) | ||
614 | |||
615 | /* Fields in TEGRA30_SPDIF_CH_STA_RX_A */ | ||
616 | /* Fields in TEGRA30_SPDIF_CH_STA_RX_B */ | ||
617 | /* Fields in TEGRA30_SPDIF_CH_STA_RX_C */ | ||
618 | /* Fields in TEGRA30_SPDIF_CH_STA_RX_D */ | ||
619 | /* Fields in TEGRA30_SPDIF_CH_STA_RX_E */ | ||
620 | /* Fields in TEGRA30_SPDIF_CH_STA_RX_F */ | ||
621 | |||
622 | /* | ||
623 | * The 6-word receive channel data page buffer holds a block (192 frames) of | ||
624 | * channel status information. The order of receive is from LSB to MSB | ||
625 | * bit, and from CH_STA_RX_A to CH_STA_RX_F then back to CH_STA_RX_A. | ||
626 | */ | ||
627 | |||
628 | /* Fields in TEGRA30_SPDIF_CH_STA_TX_A */ | ||
629 | #define TEGRA30_SPDIF_CH_STA_TX_A_SF_22050 0x4 | ||
630 | #define TEGRA30_SPDIF_CH_STA_TX_A_SF_24000 0x6 | ||
631 | #define TEGRA30_SPDIF_CH_STA_TX_A_SF_32000 0x3 | ||
632 | #define TEGRA30_SPDIF_CH_STA_TX_A_SF_44100 0x0 | ||
633 | #define TEGRA30_SPDIF_CH_STA_TX_A_SF_48000 0x2 | ||
634 | #define TEGRA30_SPDIF_CH_STA_TX_A_SF_88200 0x8 | ||
635 | #define TEGRA30_SPDIF_CH_STA_TX_A_SF_96000 0xA | ||
636 | #define TEGRA30_SPDIF_CH_STA_TX_A_SF_176400 0xC | ||
637 | #define TEGRA30_SPDIF_CH_STA_TX_A_SF_192000 0xE | ||
638 | |||
639 | #define TEGRA30_SPDIF_CH_STA_TX_A_SAMP_FREQ_SHIFT 24 | ||
640 | #define TEGRA30_SPDIF_CH_STA_TX_A_SAMP_FREQ_MASK \ | ||
641 | (0xF << TEGRA30_SPDIF_CH_STA_TX_A_SAMP_FREQ_SHIFT) | ||
642 | #define TEGRA30_SPDIF_CH_STA_TX_A_SAMP_FREQ_22050 \ | ||
643 | (TEGRA30_SPDIF_CH_STA_TX_A_SF_22050 << TEGRA30_SPDIF_CH_STA_TX_A_SAMP_FREQ_SHIFT) | ||
644 | #define TEGRA30_SPDIF_CH_STA_TX_A_SAMP_FREQ_24000 \ | ||
645 | (TEGRA30_SPDIF_CH_STA_TX_A_SF_24000 << TEGRA30_SPDIF_CH_STA_TX_A_SAMP_FREQ_SHIFT) | ||
646 | #define TEGRA30_SPDIF_CH_STA_TX_A_SAMP_FREQ_32000 \ | ||
647 | (TEGRA30_SPDIF_CH_STA_TX_A_SF_32000 << TEGRA30_SPDIF_CH_STA_TX_A_SAMP_FREQ_SHIFT) | ||
648 | #define TEGRA30_SPDIF_CH_STA_TX_A_SAMP_FREQ_44100 \ | ||
649 | (TEGRA30_SPDIF_CH_STA_TX_A_SF_44100 << TEGRA30_SPDIF_CH_STA_TX_A_SAMP_FREQ_SHIFT) | ||
650 | #define TEGRA30_SPDIF_CH_STA_TX_A_SAMP_FREQ_48000 \ | ||
651 | (TEGRA30_SPDIF_CH_STA_TX_A_SF_48000 << TEGRA30_SPDIF_CH_STA_TX_A_SAMP_FREQ_SHIFT) | ||
652 | #define TEGRA30_SPDIF_CH_STA_TX_A_SAMP_FREQ_88200 \ | ||
653 | (TEGRA30_SPDIF_CH_STA_TX_A_SF_88200 << TEGRA30_SPDIF_CH_STA_TX_A_SAMP_FREQ_SHIFT) | ||
654 | #define TEGRA30_SPDIF_CH_STA_TX_A_SAMP_FREQ_96000 \ | ||
655 | (TEGRA30_SPDIF_CH_STA_TX_A_SF_96000 << TEGRA30_SPDIF_CH_STA_TX_A_SAMP_FREQ_SHIFT) | ||
656 | #define TEGRA30_SPDIF_CH_STA_TX_A_SAMP_FREQ_176400 \ | ||
657 | (TEGRA30_SPDIF_CH_STA_TX_A_SF_176400 << TEGRA30_SPDIF_CH_STA_TX_A_SAMP_FREQ_SHIFT) | ||
658 | #define TEGRA30_SPDIF_CH_STA_TX_A_SAMP_FREQ_192000 \ | ||
659 | (TEGRA30_SPDIF_CH_STA_TX_A_SF_192000 << TEGRA30_SPDIF_CH_STA_TX_A_SAMP_FREQ_SHIFT) | ||
660 | |||
661 | /* Fields in TEGRA30_SPDIF_CH_STA_TX_B */ | ||
662 | #define TEGRA30_SPDIF_CH_STA_TX_B_SF_8000 0x6 | ||
663 | #define TEGRA30_SPDIF_CH_STA_TX_B_SF_11025 0xA | ||
664 | #define TEGRA30_SPDIF_CH_STA_TX_B_SF_12000 0x2 | ||
665 | #define TEGRA30_SPDIF_CH_STA_TX_B_SF_16000 0x8 | ||
666 | #define TEGRA30_SPDIF_CH_STA_TX_B_SF_22050 0xB | ||
667 | #define TEGRA30_SPDIF_CH_STA_TX_B_SF_24000 0x9 | ||
668 | #define TEGRA30_SPDIF_CH_STA_TX_B_SF_32000 0xC | ||
669 | #define TEGRA30_SPDIF_CH_STA_TX_B_SF_44100 0xF | ||
670 | #define TEGRA30_SPDIF_CH_STA_TX_B_SF_48000 0xD | ||
671 | #define TEGRA30_SPDIF_CH_STA_TX_B_SF_88200 0x7 | ||
672 | #define TEGRA30_SPDIF_CH_STA_TX_B_SF_96000 0x5 | ||
673 | #define TEGRA30_SPDIF_CH_STA_TX_B_SF_176400 0x3 | ||
674 | #define TEGRA30_SPDIF_CH_STA_TX_B_SF_192000 0x1 | ||
675 | |||
676 | #define TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_SHIFT 4 | ||
677 | #define TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_MASK \ | ||
678 | (0xF << TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_SHIFT) | ||
679 | #define TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_8000 \ | ||
680 | (TEGRA30_SPDIF_CH_STA_TX_B_SF_8000 << TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_SHIFT) | ||
681 | #define TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_11025 \ | ||
682 | (TEGRA30_SPDIF_CH_STA_TX_B_SF_11025 << TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_SHIFT) | ||
683 | #define TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_12000 \ | ||
684 | (TEGRA30_SPDIF_CH_STA_TX_B_SF_12000 << TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_SHIFT) | ||
685 | #define TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_16000 \ | ||
686 | (TEGRA30_SPDIF_CH_STA_TX_B_SF_16000 << TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_SHIFT) | ||
687 | #define TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_22050 \ | ||
688 | (TEGRA30_SPDIF_CH_STA_TX_B_SF_22025 << TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_SHIFT) | ||
689 | #define TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_24000 \ | ||
690 | (TEGRA30_SPDIF_CH_STA_TX_B_SF_24000 << TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_SHIFT) | ||
691 | #define TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_32000 \ | ||
692 | (TEGRA30_SPDIF_CH_STA_TX_B_SF_32000 << TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_SHIFT) | ||
693 | #define TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_44100 \ | ||
694 | (TEGRA30_SPDIF_CH_STA_TX_B_SF_44100 << TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_SHIFT) | ||
695 | #define TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_48000 \ | ||
696 | (TEGRA30_SPDIF_CH_STA_TX_B_SF_48000 << TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_SHIFT) | ||
697 | #define TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_88200 \ | ||
698 | (TEGRA30_SPDIF_CH_STA_TX_B_SF_88200 << TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_SHIFT) | ||
699 | #define TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_96000 \ | ||
700 | (TEGRA30_SPDIF_CH_STA_TX_B_SF_96000 << TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_SHIFT) | ||
701 | #define TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_176400 \ | ||
702 | (TEGRA30_SPDIF_CH_STA_TX_B_SF_176400 << TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_SHIFT) | ||
703 | #define TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_192000 \ | ||
704 | (TEGRA30_SPDIF_CH_STA_TX_B_SF_192000 << TEGRA30_SPDIF_CH_STA_TX_B_ORIG_SAMP_FREQ_SHIFT) | ||
705 | |||
706 | /* Fields in TEGRA30_SPDIF_CH_STA_TX_C */ | ||
707 | /* Fields in TEGRA30_SPDIF_CH_STA_TX_D */ | ||
708 | /* Fields in TEGRA30_SPDIF_CH_STA_TX_E */ | ||
709 | /* Fields in TEGRA30_SPDIF_CH_STA_TX_F */ | ||
710 | |||
711 | /* Fields in TEGRA30_SPDIF_FLOWCTL_CTRL */ | ||
712 | #define TEGRA30_SPDIF_FLOWCTL_CTRL_FILTER_QUAD (1<<31) | ||
713 | |||
714 | /* Fields in TEGRA30_SPDIF_TX_STEP */ | ||
715 | #define TEGRA30_SPDIF_TX_STEP_STEP_SIZE_SHIFT 0 | ||
716 | #define TEGRA30_SPDIF_TX_STEP_STEP_SIZE_MASK (0xffff << TEGRA30_SPDIF_TX_STEP_STEP_SIZE_SHIFT) | ||
717 | |||
718 | /* Fields in TEGRA30_SPDIF_FLOW_STATUS */ | ||
719 | #define TEGRA30_SPDIF_FLOW_STATUS_COUNTER_EN_ENABLE (1<<1) | ||
720 | #define TEGRA30_SPDIF_FLOW_STATUS_MONITOR_CLR_CLEAR (1<<2) | ||
721 | #define TEGRA30_SPDIF_FLOW_STATUS_COUNTER_CLR_CLEAR (1<<3) | ||
722 | #define TEGRA30_SPDIF_FLOW_STATUS_MONITOR_INT_EN_ENABLE (1<<4) | ||
723 | #define TEGRA30_SPDIF_FLOW_STATUS_FLOW_OVERFLOW_OVER (1<<30) | ||
724 | #define TEGRA30_SPDIF_FLOW_STATUS_FLOW_UNDERFLOW_UNDER (1<<31) | ||
725 | |||
726 | /* Fields in TEGRA30_SPDIF_FLOW_TOTAL */ | ||
727 | /* Fields in TEGRA30_SPDIF_FLOW_OVER */ | ||
728 | /* Fields in TEGRA30_SPDIF_FLOW_UNDER */ | ||
729 | |||
730 | /* Fields in TEGRA30_SPDIF_LCOEF_1_4_0 */ | ||
731 | #define TEGRA30_SPDIF_LCOEF_1_4_0_COEF_SHIFT 0 | ||
732 | #define TEGRA30_SPDIF_LCOEF_1_4_0_COEF_MASK (0xffff << TEGRA30_TEGRA30_SPDIF_LCOEF_1_4_0_COEF_SHIFT) | ||
733 | |||
734 | /* Fields in TEGRA30_SPDIF_LCOEF_1_4_1 */ | ||
735 | #define TEGRA30_SPDIF_LCOEF_1_4_1_COEF_SHIFT 0 | ||
736 | #define TEGRA30_SPDIF_LCOEF_1_4_1_COEF_MASK (0xffff << TEGRA30_SPDIF_LCOEF_1_4_1_COEF_SHIFT) | ||
737 | |||
738 | /* Fields in TEGRA30_SPDIF_LCOEF_1_4_2 */ | ||
739 | #define TEGRA30_SPDIF_LCOEF_1_4_2_COEF_SHIFT 0 | ||
740 | #define TEGRA30_SPDIF_LCOEF_1_4_2_COEF_MASK (0xffff << TEGRA30_SPDIF_LCOEF_1_4_2_COEF_SHIFT) | ||
741 | |||
742 | /* Fields in TEGRA30_SPDIF_LCOEF_1_4_3 */ | ||
743 | #define TEGRA30_SPDIF_LCOEF_1_4_3_COEF_SHIFT 0 | ||
744 | #define TEGRA30_SPDIF_LCOEF_1_4_3_COEF_MASK (0xffff << TEGRA30_SPDIF_LCOEF_1_4_3_COEF_SHIFT) | ||
745 | |||
746 | /* Fields in TEGRA30_SPDIF_LCOEF_1_4_4 */ | ||
747 | #define TEGRA30_SPDIF_LCOEF_1_4_4_COEF_SHIFT 0 | ||
748 | #define TEGRA30_SPDIF_LCOEF_1_4_4_COEF_MASK (0xffff << TEGRA30_SPDIF_LCOEF_1_4_4_COEF_SHIFT) | ||
749 | |||
750 | /* Fields in TEGRA30_SPDIF_LCOEF_1_4_5 */ | ||
751 | #define TEGRA30_SPDIF_LCOEF_1_4_5_COEF_SHIFT 0 | ||
752 | #define TEGRA30_SPDIF_LCOEF_1_4_5_COEF_MASK (0xffff << TEGRA30_SPDIF_LCOEF_1_4_5_COEF_SHIFT) | ||
753 | |||
754 | /* Fields in TEGRA30_SPDIF_LCOEF_2_4_0 */ | ||
755 | #define TEGRA30_SPDIF_LCOEF_2_4_0_COEF_SHIFT 0 | ||
756 | #define TEGRA30_SPDIF_LCOEF_2_4_0_COEF_MASK (0xffff << TEGRA30_SPDIF_LCOEF_2_4_0_COEF_SHIFT) | ||
757 | |||
758 | /* Fields in TEGRA30_SPDIF_LCOEF_2_4_1 */ | ||
759 | #define TEGRA30_SPDIF_LCOEF_2_4_1_COEF_SHIFT 0 | ||
760 | #define TEGRA30_SPDIF_LCOEF_2_4_1_COEF_MASK (0xffff << TEGRA30_SPDIF_LCOEF_2_4_1_COEF_SHIFT) | ||
761 | |||
762 | /* Fields in TEGRA30_SPDIF_LCOEF_2_4_2 */ | ||
763 | #define TEGRA30_SPDIF_LCOEF_2_4_2_COEF_SHIFT 0 | ||
764 | #define TEGRA30_SPDIF_LCOEF_2_4_2_COEF_MASK (0xffff << SPDIF_LCOEF_2_4_2_COEF_SHIFT) | ||
765 | |||
766 | struct tegra30_spdif { | ||
767 | struct clk *clk_spdif_out; | ||
768 | enum tegra30_ahub_txcif txcif; | ||
769 | struct tegra_pcm_dma_params playback_dma_data; | ||
770 | void __iomem *regs; | ||
771 | struct dentry *debug; | ||
772 | u32 reg_ctrl; | ||
773 | u32 reg_ch_sta_a; | ||
774 | u32 reg_ch_sta_b; | ||
775 | }; | ||
776 | |||
777 | #endif | ||