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