xref: /linux/sound/soc/tegra/tegra210_admaif.h (revision ab93e0dd72c37d378dd936f031ffb83ff2bd87ce)
14a91fe4cSSheetal /* SPDX-License-Identifier: GPL-2.0-only
24a91fe4cSSheetal  * SPDX-FileCopyrightText: Copyright (c) 2020-2025 NVIDIA CORPORATION & AFFILIATES.
34a91fe4cSSheetal  * All rights reserved.
4f74028e1SSameer Pujar  *
54a91fe4cSSheetal  * tegra210_admaif.h - Tegra ADMAIF registers
6f74028e1SSameer Pujar  *
7f74028e1SSameer Pujar  */
8f74028e1SSameer Pujar 
9f74028e1SSameer Pujar #ifndef __TEGRA_ADMAIF_H__
10f74028e1SSameer Pujar #define __TEGRA_ADMAIF_H__
11f74028e1SSameer Pujar 
12f74028e1SSameer Pujar #define TEGRA_ADMAIF_CHANNEL_REG_STRIDE			0x40
13f74028e1SSameer Pujar /* Tegra210 specific */
14f74028e1SSameer Pujar #define TEGRA210_ADMAIF_LAST_REG			0x75f
15f74028e1SSameer Pujar #define TEGRA210_ADMAIF_CHANNEL_COUNT			10
16f74028e1SSameer Pujar #define TEGRA210_ADMAIF_RX_BASE				0x0
17f74028e1SSameer Pujar #define TEGRA210_ADMAIF_TX_BASE				0x300
18f74028e1SSameer Pujar #define TEGRA210_ADMAIF_GLOBAL_BASE			0x700
19*7668c637SSheetal #define TEGRA210_ADMAIF_MAX_CHANNEL			16
20f74028e1SSameer Pujar /* Tegra186 specific */
21f74028e1SSameer Pujar #define TEGRA186_ADMAIF_LAST_REG			0xd5f
22f74028e1SSameer Pujar #define TEGRA186_ADMAIF_CHANNEL_COUNT			20
23f74028e1SSameer Pujar #define TEGRA186_ADMAIF_RX_BASE				0x0
24f74028e1SSameer Pujar #define TEGRA186_ADMAIF_TX_BASE				0x500
25f74028e1SSameer Pujar #define TEGRA186_ADMAIF_GLOBAL_BASE			0xd00
26*7668c637SSheetal #define TEGRA186_ADMAIF_MAX_CHANNEL			16
27*7668c637SSheetal /* Tegra264 specific */
28*7668c637SSheetal #define TEGRA264_ADMAIF_LAST_REG			0x205f
29*7668c637SSheetal #define TEGRA264_ADMAIF_CHANNEL_COUNT			32
30*7668c637SSheetal #define TEGRA264_ADMAIF_RX_BASE				0x0
31*7668c637SSheetal #define TEGRA264_ADMAIF_TX_BASE				0x1000
32*7668c637SSheetal #define TEGRA264_ADMAIF_GLOBAL_BASE			0x2000
33*7668c637SSheetal #define TEGRA264_ADMAIF_MAX_CHANNEL			32
34f74028e1SSameer Pujar /* Global registers */
35f74028e1SSameer Pujar #define TEGRA_ADMAIF_GLOBAL_ENABLE			0x0
36f74028e1SSameer Pujar #define TEGRA_ADMAIF_GLOBAL_CG_0			0x8
37f74028e1SSameer Pujar #define TEGRA_ADMAIF_GLOBAL_STATUS			0x10
38f74028e1SSameer Pujar #define TEGRA_ADMAIF_GLOBAL_RX_ENABLE_STATUS		0x20
39f74028e1SSameer Pujar #define TEGRA_ADMAIF_GLOBAL_TX_ENABLE_STATUS		0x24
40f74028e1SSameer Pujar /* RX channel registers */
41f74028e1SSameer Pujar #define TEGRA_ADMAIF_RX_ENABLE				0x0
42f74028e1SSameer Pujar #define TEGRA_ADMAIF_RX_SOFT_RESET			0x4
43f74028e1SSameer Pujar #define TEGRA_ADMAIF_RX_STATUS				0xc
44f74028e1SSameer Pujar #define TEGRA_ADMAIF_RX_INT_STATUS			0x10
45f74028e1SSameer Pujar #define TEGRA_ADMAIF_RX_INT_MASK			0x14
46f74028e1SSameer Pujar #define TEGRA_ADMAIF_RX_INT_SET				0x18
47f74028e1SSameer Pujar #define TEGRA_ADMAIF_RX_INT_CLEAR			0x1c
48f74028e1SSameer Pujar #define TEGRA_ADMAIF_CH_ACIF_RX_CTRL			0x20
49f74028e1SSameer Pujar #define TEGRA_ADMAIF_RX_FIFO_CTRL			0x28
50f74028e1SSameer Pujar #define TEGRA_ADMAIF_RX_FIFO_READ			0x2c
51f74028e1SSameer Pujar /* TX channel registers */
52f74028e1SSameer Pujar #define TEGRA_ADMAIF_TX_ENABLE				0x0
53f74028e1SSameer Pujar #define TEGRA_ADMAIF_TX_SOFT_RESET			0x4
54f74028e1SSameer Pujar #define TEGRA_ADMAIF_TX_STATUS				0xc
55f74028e1SSameer Pujar #define TEGRA_ADMAIF_TX_INT_STATUS			0x10
56f74028e1SSameer Pujar #define TEGRA_ADMAIF_TX_INT_MASK			0x14
57f74028e1SSameer Pujar #define TEGRA_ADMAIF_TX_INT_SET				0x18
58f74028e1SSameer Pujar #define TEGRA_ADMAIF_TX_INT_CLEAR			0x1c
59f74028e1SSameer Pujar #define TEGRA_ADMAIF_CH_ACIF_TX_CTRL			0x20
60f74028e1SSameer Pujar #define TEGRA_ADMAIF_TX_FIFO_CTRL			0x28
61f74028e1SSameer Pujar #define TEGRA_ADMAIF_TX_FIFO_WRITE			0x2c
62f74028e1SSameer Pujar /* Bit fields */
63f74028e1SSameer Pujar #define PACK8_EN_SHIFT					31
64f74028e1SSameer Pujar #define PACK8_EN_MASK					BIT(PACK8_EN_SHIFT)
65f74028e1SSameer Pujar #define PACK8_EN					BIT(PACK8_EN_SHIFT)
66f74028e1SSameer Pujar #define PACK16_EN_SHIFT					30
67f74028e1SSameer Pujar #define PACK16_EN_MASK					BIT(PACK16_EN_SHIFT)
68f74028e1SSameer Pujar #define PACK16_EN					BIT(PACK16_EN_SHIFT)
69f74028e1SSameer Pujar #define TX_ENABLE_SHIFT					0
70f74028e1SSameer Pujar #define TX_ENABLE_MASK					BIT(TX_ENABLE_SHIFT)
71f74028e1SSameer Pujar #define TX_ENABLE					BIT(TX_ENABLE_SHIFT)
72f74028e1SSameer Pujar #define RX_ENABLE_SHIFT					0
73f74028e1SSameer Pujar #define RX_ENABLE_MASK					BIT(RX_ENABLE_SHIFT)
74f74028e1SSameer Pujar #define RX_ENABLE					BIT(RX_ENABLE_SHIFT)
75f74028e1SSameer Pujar #define SW_RESET_MASK					1
76f74028e1SSameer Pujar #define SW_RESET					1
77f74028e1SSameer Pujar /* Default values - Tegra210 */
78*7668c637SSheetal #define TEGRA210_ADMAIF_CIF_REG_DEFAULT			0x00007700
79f74028e1SSameer Pujar #define TEGRA210_ADMAIF_RX1_FIFO_CTRL_REG_DEFAULT	0x00000300
80f74028e1SSameer Pujar #define TEGRA210_ADMAIF_RX2_FIFO_CTRL_REG_DEFAULT	0x00000304
81f74028e1SSameer Pujar #define TEGRA210_ADMAIF_RX3_FIFO_CTRL_REG_DEFAULT	0x00000208
82f74028e1SSameer Pujar #define TEGRA210_ADMAIF_RX4_FIFO_CTRL_REG_DEFAULT	0x0000020b
83f74028e1SSameer Pujar #define TEGRA210_ADMAIF_RX5_FIFO_CTRL_REG_DEFAULT	0x0000020e
84f74028e1SSameer Pujar #define TEGRA210_ADMAIF_RX6_FIFO_CTRL_REG_DEFAULT	0x00000211
85f74028e1SSameer Pujar #define TEGRA210_ADMAIF_RX7_FIFO_CTRL_REG_DEFAULT	0x00000214
86f74028e1SSameer Pujar #define TEGRA210_ADMAIF_RX8_FIFO_CTRL_REG_DEFAULT	0x00000217
87f74028e1SSameer Pujar #define TEGRA210_ADMAIF_RX9_FIFO_CTRL_REG_DEFAULT	0x0000021a
88f74028e1SSameer Pujar #define TEGRA210_ADMAIF_RX10_FIFO_CTRL_REG_DEFAULT	0x0000021d
89f74028e1SSameer Pujar #define TEGRA210_ADMAIF_TX1_FIFO_CTRL_REG_DEFAULT	0x02000300
90f74028e1SSameer Pujar #define TEGRA210_ADMAIF_TX2_FIFO_CTRL_REG_DEFAULT	0x02000304
91f74028e1SSameer Pujar #define TEGRA210_ADMAIF_TX3_FIFO_CTRL_REG_DEFAULT	0x01800208
92f74028e1SSameer Pujar #define TEGRA210_ADMAIF_TX4_FIFO_CTRL_REG_DEFAULT	0x0180020b
93f74028e1SSameer Pujar #define TEGRA210_ADMAIF_TX5_FIFO_CTRL_REG_DEFAULT	0x0180020e
94f74028e1SSameer Pujar #define TEGRA210_ADMAIF_TX6_FIFO_CTRL_REG_DEFAULT	0x01800211
95f74028e1SSameer Pujar #define TEGRA210_ADMAIF_TX7_FIFO_CTRL_REG_DEFAULT	0x01800214
96f74028e1SSameer Pujar #define TEGRA210_ADMAIF_TX8_FIFO_CTRL_REG_DEFAULT	0x01800217
97f74028e1SSameer Pujar #define TEGRA210_ADMAIF_TX9_FIFO_CTRL_REG_DEFAULT	0x0180021a
98f74028e1SSameer Pujar #define TEGRA210_ADMAIF_TX10_FIFO_CTRL_REG_DEFAULT	0x0180021d
99f74028e1SSameer Pujar /* Default values - Tegra186 */
100*7668c637SSheetal #define TEGRA186_ADMAIF_CIF_REG_DEFAULT			0x00007700
101f74028e1SSameer Pujar #define TEGRA186_ADMAIF_RX1_FIFO_CTRL_REG_DEFAULT	0x00000300
102f74028e1SSameer Pujar #define TEGRA186_ADMAIF_RX2_FIFO_CTRL_REG_DEFAULT	0x00000304
103f74028e1SSameer Pujar #define TEGRA186_ADMAIF_RX3_FIFO_CTRL_REG_DEFAULT	0x00000308
104f74028e1SSameer Pujar #define TEGRA186_ADMAIF_RX4_FIFO_CTRL_REG_DEFAULT	0x0000030c
105f74028e1SSameer Pujar #define TEGRA186_ADMAIF_RX5_FIFO_CTRL_REG_DEFAULT	0x00000210
106f74028e1SSameer Pujar #define TEGRA186_ADMAIF_RX6_FIFO_CTRL_REG_DEFAULT	0x00000213
107f74028e1SSameer Pujar #define TEGRA186_ADMAIF_RX7_FIFO_CTRL_REG_DEFAULT	0x00000216
108f74028e1SSameer Pujar #define TEGRA186_ADMAIF_RX8_FIFO_CTRL_REG_DEFAULT	0x00000219
109f74028e1SSameer Pujar #define TEGRA186_ADMAIF_RX9_FIFO_CTRL_REG_DEFAULT	0x0000021c
110f74028e1SSameer Pujar #define TEGRA186_ADMAIF_RX10_FIFO_CTRL_REG_DEFAULT	0x0000021f
111f74028e1SSameer Pujar #define TEGRA186_ADMAIF_RX11_FIFO_CTRL_REG_DEFAULT	0x00000222
112f74028e1SSameer Pujar #define TEGRA186_ADMAIF_RX12_FIFO_CTRL_REG_DEFAULT	0x00000225
113f74028e1SSameer Pujar #define TEGRA186_ADMAIF_RX13_FIFO_CTRL_REG_DEFAULT	0x00000228
114f74028e1SSameer Pujar #define TEGRA186_ADMAIF_RX14_FIFO_CTRL_REG_DEFAULT	0x0000022b
115f74028e1SSameer Pujar #define TEGRA186_ADMAIF_RX15_FIFO_CTRL_REG_DEFAULT	0x0000022e
116f74028e1SSameer Pujar #define TEGRA186_ADMAIF_RX16_FIFO_CTRL_REG_DEFAULT	0x00000231
117f74028e1SSameer Pujar #define TEGRA186_ADMAIF_RX17_FIFO_CTRL_REG_DEFAULT	0x00000234
118f74028e1SSameer Pujar #define TEGRA186_ADMAIF_RX18_FIFO_CTRL_REG_DEFAULT	0x00000237
119f74028e1SSameer Pujar #define TEGRA186_ADMAIF_RX19_FIFO_CTRL_REG_DEFAULT	0x0000023a
120f74028e1SSameer Pujar #define TEGRA186_ADMAIF_RX20_FIFO_CTRL_REG_DEFAULT	0x0000023d
121f74028e1SSameer Pujar #define TEGRA186_ADMAIF_TX1_FIFO_CTRL_REG_DEFAULT	0x02000300
122f74028e1SSameer Pujar #define TEGRA186_ADMAIF_TX2_FIFO_CTRL_REG_DEFAULT	0x02000304
123f74028e1SSameer Pujar #define TEGRA186_ADMAIF_TX3_FIFO_CTRL_REG_DEFAULT	0x02000308
124f74028e1SSameer Pujar #define TEGRA186_ADMAIF_TX4_FIFO_CTRL_REG_DEFAULT	0x0200030c
125f74028e1SSameer Pujar #define TEGRA186_ADMAIF_TX5_FIFO_CTRL_REG_DEFAULT	0x01800210
126f74028e1SSameer Pujar #define TEGRA186_ADMAIF_TX6_FIFO_CTRL_REG_DEFAULT	0x01800213
127f74028e1SSameer Pujar #define TEGRA186_ADMAIF_TX7_FIFO_CTRL_REG_DEFAULT	0x01800216
128f74028e1SSameer Pujar #define TEGRA186_ADMAIF_TX8_FIFO_CTRL_REG_DEFAULT	0x01800219
129f74028e1SSameer Pujar #define TEGRA186_ADMAIF_TX9_FIFO_CTRL_REG_DEFAULT	0x0180021c
130f74028e1SSameer Pujar #define TEGRA186_ADMAIF_TX10_FIFO_CTRL_REG_DEFAULT	0x0180021f
131f74028e1SSameer Pujar #define TEGRA186_ADMAIF_TX11_FIFO_CTRL_REG_DEFAULT	0x01800222
132f74028e1SSameer Pujar #define TEGRA186_ADMAIF_TX12_FIFO_CTRL_REG_DEFAULT	0x01800225
133f74028e1SSameer Pujar #define TEGRA186_ADMAIF_TX13_FIFO_CTRL_REG_DEFAULT	0x01800228
134f74028e1SSameer Pujar #define TEGRA186_ADMAIF_TX14_FIFO_CTRL_REG_DEFAULT	0x0180022b
135f74028e1SSameer Pujar #define TEGRA186_ADMAIF_TX15_FIFO_CTRL_REG_DEFAULT	0x0180022e
136f74028e1SSameer Pujar #define TEGRA186_ADMAIF_TX16_FIFO_CTRL_REG_DEFAULT	0x01800231
137f74028e1SSameer Pujar #define TEGRA186_ADMAIF_TX17_FIFO_CTRL_REG_DEFAULT	0x01800234
138f74028e1SSameer Pujar #define TEGRA186_ADMAIF_TX18_FIFO_CTRL_REG_DEFAULT	0x01800237
139f74028e1SSameer Pujar #define TEGRA186_ADMAIF_TX19_FIFO_CTRL_REG_DEFAULT	0x0180023a
140f74028e1SSameer Pujar #define TEGRA186_ADMAIF_TX20_FIFO_CTRL_REG_DEFAULT	0x0180023d
141*7668c637SSheetal /* Default values - Tegra264 */
142*7668c637SSheetal #define TEGRA264_ADMAIF_CIF_REG_DEFAULT			0x00003f00
143*7668c637SSheetal #define TEGRA264_ADMAIF_RX1_FIFO_CTRL_REG_DEFAULT	0x00000200
144*7668c637SSheetal #define TEGRA264_ADMAIF_RX2_FIFO_CTRL_REG_DEFAULT	0x00000203
145*7668c637SSheetal #define TEGRA264_ADMAIF_RX3_FIFO_CTRL_REG_DEFAULT	0x00000206
146*7668c637SSheetal #define TEGRA264_ADMAIF_RX4_FIFO_CTRL_REG_DEFAULT	0x00000209
147*7668c637SSheetal #define TEGRA264_ADMAIF_RX5_FIFO_CTRL_REG_DEFAULT	0x0000020c
148*7668c637SSheetal #define TEGRA264_ADMAIF_RX6_FIFO_CTRL_REG_DEFAULT	0x0000020f
149*7668c637SSheetal #define TEGRA264_ADMAIF_RX7_FIFO_CTRL_REG_DEFAULT	0x00000212
150*7668c637SSheetal #define TEGRA264_ADMAIF_RX8_FIFO_CTRL_REG_DEFAULT	0x00000215
151*7668c637SSheetal #define TEGRA264_ADMAIF_RX9_FIFO_CTRL_REG_DEFAULT	0x00000218
152*7668c637SSheetal #define TEGRA264_ADMAIF_RX10_FIFO_CTRL_REG_DEFAULT	0x0000021b
153*7668c637SSheetal #define TEGRA264_ADMAIF_RX11_FIFO_CTRL_REG_DEFAULT	0x0000021e
154*7668c637SSheetal #define TEGRA264_ADMAIF_RX12_FIFO_CTRL_REG_DEFAULT	0x00000221
155*7668c637SSheetal #define TEGRA264_ADMAIF_RX13_FIFO_CTRL_REG_DEFAULT	0x00000224
156*7668c637SSheetal #define TEGRA264_ADMAIF_RX14_FIFO_CTRL_REG_DEFAULT	0x00000227
157*7668c637SSheetal #define TEGRA264_ADMAIF_RX15_FIFO_CTRL_REG_DEFAULT	0x0000022a
158*7668c637SSheetal #define TEGRA264_ADMAIF_RX16_FIFO_CTRL_REG_DEFAULT	0x0000022d
159*7668c637SSheetal #define TEGRA264_ADMAIF_RX17_FIFO_CTRL_REG_DEFAULT	0x00000230
160*7668c637SSheetal #define TEGRA264_ADMAIF_RX18_FIFO_CTRL_REG_DEFAULT	0x00000233
161*7668c637SSheetal #define TEGRA264_ADMAIF_RX19_FIFO_CTRL_REG_DEFAULT	0x00000236
162*7668c637SSheetal #define TEGRA264_ADMAIF_RX20_FIFO_CTRL_REG_DEFAULT	0x00000239
163*7668c637SSheetal #define TEGRA264_ADMAIF_RX21_FIFO_CTRL_REG_DEFAULT	0x0000023c
164*7668c637SSheetal #define TEGRA264_ADMAIF_RX22_FIFO_CTRL_REG_DEFAULT	0x0000023f
165*7668c637SSheetal #define TEGRA264_ADMAIF_RX23_FIFO_CTRL_REG_DEFAULT	0x00000242
166*7668c637SSheetal #define TEGRA264_ADMAIF_RX24_FIFO_CTRL_REG_DEFAULT	0x00000245
167*7668c637SSheetal #define TEGRA264_ADMAIF_RX25_FIFO_CTRL_REG_DEFAULT	0x00000248
168*7668c637SSheetal #define TEGRA264_ADMAIF_RX26_FIFO_CTRL_REG_DEFAULT	0x0000024b
169*7668c637SSheetal #define TEGRA264_ADMAIF_RX27_FIFO_CTRL_REG_DEFAULT	0x0000024e
170*7668c637SSheetal #define TEGRA264_ADMAIF_RX28_FIFO_CTRL_REG_DEFAULT	0x00000251
171*7668c637SSheetal #define TEGRA264_ADMAIF_RX29_FIFO_CTRL_REG_DEFAULT	0x00000254
172*7668c637SSheetal #define TEGRA264_ADMAIF_RX30_FIFO_CTRL_REG_DEFAULT	0x00000257
173*7668c637SSheetal #define TEGRA264_ADMAIF_RX31_FIFO_CTRL_REG_DEFAULT	0x0000025a
174*7668c637SSheetal #define TEGRA264_ADMAIF_RX32_FIFO_CTRL_REG_DEFAULT	0x0000025d
175*7668c637SSheetal #define TEGRA264_ADMAIF_TX1_FIFO_CTRL_REG_DEFAULT	0x01800200
176*7668c637SSheetal #define TEGRA264_ADMAIF_TX2_FIFO_CTRL_REG_DEFAULT	0x01800203
177*7668c637SSheetal #define TEGRA264_ADMAIF_TX3_FIFO_CTRL_REG_DEFAULT	0x01800206
178*7668c637SSheetal #define TEGRA264_ADMAIF_TX4_FIFO_CTRL_REG_DEFAULT	0x01800209
179*7668c637SSheetal #define TEGRA264_ADMAIF_TX5_FIFO_CTRL_REG_DEFAULT	0x0180020c
180*7668c637SSheetal #define TEGRA264_ADMAIF_TX6_FIFO_CTRL_REG_DEFAULT	0x0180020f
181*7668c637SSheetal #define TEGRA264_ADMAIF_TX7_FIFO_CTRL_REG_DEFAULT	0x01800212
182*7668c637SSheetal #define TEGRA264_ADMAIF_TX8_FIFO_CTRL_REG_DEFAULT	0x01800215
183*7668c637SSheetal #define TEGRA264_ADMAIF_TX9_FIFO_CTRL_REG_DEFAULT	0x01800218
184*7668c637SSheetal #define TEGRA264_ADMAIF_TX10_FIFO_CTRL_REG_DEFAULT	0x0180021b
185*7668c637SSheetal #define TEGRA264_ADMAIF_TX11_FIFO_CTRL_REG_DEFAULT	0x0180021e
186*7668c637SSheetal #define TEGRA264_ADMAIF_TX12_FIFO_CTRL_REG_DEFAULT	0x01800221
187*7668c637SSheetal #define TEGRA264_ADMAIF_TX13_FIFO_CTRL_REG_DEFAULT	0x01800224
188*7668c637SSheetal #define TEGRA264_ADMAIF_TX14_FIFO_CTRL_REG_DEFAULT	0x01800227
189*7668c637SSheetal #define TEGRA264_ADMAIF_TX15_FIFO_CTRL_REG_DEFAULT	0x0180022a
190*7668c637SSheetal #define TEGRA264_ADMAIF_TX16_FIFO_CTRL_REG_DEFAULT	0x0180022d
191*7668c637SSheetal #define TEGRA264_ADMAIF_TX17_FIFO_CTRL_REG_DEFAULT	0x01800230
192*7668c637SSheetal #define TEGRA264_ADMAIF_TX18_FIFO_CTRL_REG_DEFAULT	0x01800233
193*7668c637SSheetal #define TEGRA264_ADMAIF_TX19_FIFO_CTRL_REG_DEFAULT	0x01800236
194*7668c637SSheetal #define TEGRA264_ADMAIF_TX20_FIFO_CTRL_REG_DEFAULT	0x01800239
195*7668c637SSheetal #define TEGRA264_ADMAIF_TX21_FIFO_CTRL_REG_DEFAULT	0x0180023c
196*7668c637SSheetal #define TEGRA264_ADMAIF_TX22_FIFO_CTRL_REG_DEFAULT	0x0180023f
197*7668c637SSheetal #define TEGRA264_ADMAIF_TX23_FIFO_CTRL_REG_DEFAULT	0x01800242
198*7668c637SSheetal #define TEGRA264_ADMAIF_TX24_FIFO_CTRL_REG_DEFAULT	0x01800245
199*7668c637SSheetal #define TEGRA264_ADMAIF_TX25_FIFO_CTRL_REG_DEFAULT	0x01800248
200*7668c637SSheetal #define TEGRA264_ADMAIF_TX26_FIFO_CTRL_REG_DEFAULT	0x0180024b
201*7668c637SSheetal #define TEGRA264_ADMAIF_TX27_FIFO_CTRL_REG_DEFAULT	0x0180024e
202*7668c637SSheetal #define TEGRA264_ADMAIF_TX28_FIFO_CTRL_REG_DEFAULT	0x01800251
203*7668c637SSheetal #define TEGRA264_ADMAIF_TX29_FIFO_CTRL_REG_DEFAULT	0x01800254
204*7668c637SSheetal #define TEGRA264_ADMAIF_TX30_FIFO_CTRL_REG_DEFAULT	0x01800257
205*7668c637SSheetal #define TEGRA264_ADMAIF_TX31_FIFO_CTRL_REG_DEFAULT	0x0180025a
206*7668c637SSheetal #define TEGRA264_ADMAIF_TX32_FIFO_CTRL_REG_DEFAULT	0x0180025d
207f74028e1SSameer Pujar 
208f74028e1SSameer Pujar enum {
209f74028e1SSameer Pujar 	DATA_8BIT,
210f74028e1SSameer Pujar 	DATA_16BIT,
211f74028e1SSameer Pujar 	DATA_32BIT
212f74028e1SSameer Pujar };
213f74028e1SSameer Pujar 
214f74028e1SSameer Pujar enum {
215f74028e1SSameer Pujar 	ADMAIF_RX_PATH,
216f74028e1SSameer Pujar 	ADMAIF_TX_PATH,
217f74028e1SSameer Pujar 	ADMAIF_PATHS,
218f74028e1SSameer Pujar };
219f74028e1SSameer Pujar 
220f74028e1SSameer Pujar struct tegra_admaif_soc_data {
221f74028e1SSameer Pujar 	const struct snd_soc_component_driver *cmpnt;
222f74028e1SSameer Pujar 	const struct regmap_config *regmap_conf;
223f74028e1SSameer Pujar 	struct snd_soc_dai_driver *dais;
224f74028e1SSameer Pujar 	unsigned int global_base;
225f74028e1SSameer Pujar 	unsigned int tx_base;
226f74028e1SSameer Pujar 	unsigned int rx_base;
227f74028e1SSameer Pujar 	unsigned int num_ch;
228*7668c637SSheetal 	unsigned int max_stream_ch;
229f74028e1SSameer Pujar };
230f74028e1SSameer Pujar 
231f74028e1SSameer Pujar struct tegra_admaif {
232f74028e1SSameer Pujar 	struct snd_dmaengine_dai_dma_data *capture_dma_data;
233f74028e1SSameer Pujar 	struct snd_dmaengine_dai_dma_data *playback_dma_data;
234f74028e1SSameer Pujar 	const struct tegra_admaif_soc_data *soc_data;
235f74028e1SSameer Pujar 	unsigned int *mono_to_stereo[ADMAIF_PATHS];
236f74028e1SSameer Pujar 	unsigned int *stereo_to_mono[ADMAIF_PATHS];
237f74028e1SSameer Pujar 	struct regmap *regmap;
2384a91fe4cSSheetal 	struct tegra_adma_isomgr *adma_isomgr;
239f74028e1SSameer Pujar };
240f74028e1SSameer Pujar 
241f74028e1SSameer Pujar #endif
242