Files
linux-nv-oot/include/dt-bindings/sound/tegra-asoc-dais.h
Sameer Pujar 943cc4d854 arm64: tegra: Enable APE sound card
Enable APE sound card with following changes:

  - Add DAI link DTSI files and enable OOT machine driver.

  - Some of the AHUB drivers are present in v5.15, however
    these are not feature complete yet. Use OOT driver
    versions for now and enable these by using OOT specific
    compatibles.

  - ADSP is disabled for now as it is not required for L4T production
    releases. There are dependencies on AGIC and ADMA patches which
    are not yet upstreamed. This will be taken up when this becomes
    a requirement.

  - Add 'nvidia,ahub-i2s-id' property to I2S devices. Presently
    this is being used to identify I2S instances and thus add
    few mixer controls from machine driver.

Bug 3583581

Change-Id: I8ce7cab1997c6464d1b30fc19f840e11ed877b21
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2774943
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-10-05 20:00:42 -07:00

312 lines
6.9 KiB
C

// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2019-2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#ifndef __DT_TEGRA_ASOC_DAIS_H
#define __DT_TEGRA_ASOC_DAIS_H
/*
* DAI links can have one of these value
* PCM_LINK : optional, if nothing is specified link is treated as PCM link
* COMPR_LINK : required, if link is used with compress device
* C2C_LINK : required, for any other back end codec-to-codec links
*/
#define PCM_LINK 0
#define COMPR_LINK 1
#define C2C_LINK 2
/*
* Following DAI indices are derived from respective module drivers.
* Thus below values have to be in sync with the DAI arrays defined
* in the drivers.
*/
/* common XBAR dais */
#define XBAR_ADMAIF1 0
#define XBAR_ADMAIF2 1
#define XBAR_ADMAIF3 2
#define XBAR_ADMAIF4 3
#define XBAR_ADMAIF5 4
#define XBAR_ADMAIF6 5
#define XBAR_ADMAIF7 6
#define XBAR_ADMAIF8 7
#define XBAR_ADMAIF9 8
#define XBAR_ADMAIF10 9
#define XBAR_I2S1 10
#define XBAR_I2S2 11
#define XBAR_I2S3 12
#define XBAR_I2S4 13
#define XBAR_I2S5 14
#define XBAR_SFC1 15
#define XBAR_SFC2 16
#define XBAR_SFC3 17
#define XBAR_SFC4 18
#define XBAR_MIXER_IF1 19
#define XBAR_MIXER_IF2 20
#define XBAR_MIXER_IF3 21
#define XBAR_MIXER_IF4 22
#define XBAR_MIXER_IF5 23
#define XBAR_MIXER_IF6 24
#define XBAR_MIXER_IF7 25
#define XBAR_MIXER_IF8 26
#define XBAR_MIXER_IF9 27
#define XBAR_MIXER_IF10 28
#define XBAR_AFC1 29
#define XBAR_AFC2 30
#define XBAR_AFC3 31
#define XBAR_AFC4 32
#define XBAR_AFC5 33
#define XBAR_AFC6 34
#define XBAR_OPE1 35
#define XBAR_SPKPROT 36
#define XBAR_MVC1 37
#define XBAR_MVC2 38
#define XBAR_IQC1_1 39
#define XBAR_IQC1_2 40
#define XBAR_IQC2_1 41
#define XBAR_IQC2_2 42
#define XBAR_DMIC1 43
#define XBAR_DMIC2 44
#define XBAR_DMIC3 45
#define XBAR_AMX1_OUT 46
#define XBAR_AMX1_IN1 47
#define XBAR_AMX1_IN2 48
#define XBAR_AMX1_IN3 49
#define XBAR_AMX1_IN4 50
#define XBAR_AMX2_OUT 51
#define XBAR_AMX2_IN1 52
#define XBAR_AMX2_IN2 53
#define XBAR_AMX2_IN3 54
#define XBAR_AMX2_IN4 55
#define XBAR_ADX1_OUT1 56
#define XBAR_ADX1_OUT2 57
#define XBAR_ADX1_OUT3 58
#define XBAR_ADX1_OUT4 59
#define XBAR_ADX1_IN 60
#define XBAR_ADX2_OUT1 61
#define XBAR_ADX2_OUT2 62
#define XBAR_ADX2_OUT3 63
#define XBAR_ADX2_OUT4 64
#define XBAR_ADX2_IN 65
/* Tegra210 specific XBAR DAIs */
#define XBAR_OPE2 66
/* Tegra186 specific XBAR DAIs */
#define XBAR_ADMAIF11 66
#define XBAR_ADMAIF12 67
#define XBAR_ADMAIF13 68
#define XBAR_ADMAIF14 69
#define XBAR_ADMAIF15 70
#define XBAR_ADMAIF16 71
#define XBAR_ADMAIF17 72
#define XBAR_ADMAIF18 73
#define XBAR_ADMAIF19 74
#define XBAR_ADMAIF20 75
#define XBAR_I2S6 76
#define XBAR_AMX3_OUT 77
#define XBAR_AMX3_IN1 78
#define XBAR_AMX3_IN2 79
#define XBAR_AMX3_IN3 80
#define XBAR_AMX3_IN4 81
#define XBAR_AMX4_OUT 82
#define XBAR_AMX4_IN1 83
#define XBAR_AMX4_IN2 84
#define XBAR_AMX4_IN3 85
#define XBAR_AMX4_IN4 86
#define XBAR_ADX3_OUT1 87
#define XBAR_ADX3_OUT2 88
#define XBAR_ADX3_OUT3 89
#define XBAR_ADX3_OUT4 90
#define XBAR_ADX3_IN 91
#define XBAR_ADX4_OUT1 92
#define XBAR_ADX4_OUT2 93
#define XBAR_ADX4_OUT3 94
#define XBAR_ADX4_OUT4 95
#define XBAR_ADX4_IN 96
#define XBAR_DMIC4 97
#define XBAR_ASRC_IF1 98
#define XBAR_ASRC_IF2 99
#define XBAR_ASRC_IF3 100
#define XBAR_ASRC_IF4 101
#define XBAR_ASRC_IF5 102
#define XBAR_ASRC_IF6 103
#define XBAR_ASRC_IF7 104
#define XBAR_ARAD 105
#define XBAR_DSPK1 106
#define XBAR_DSPK2 107
/* common ADMAIF DAIs */
#define ADMAIF1 0
#define ADMAIF2 1
#define ADMAIF3 2
#define ADMAIF4 3
#define ADMAIF5 4
#define ADMAIF6 5
#define ADMAIF7 6
#define ADMAIF8 7
#define ADMAIF9 8
#define ADMAIF10 9
/* Tegra186 specific ADMAIF DAIs */
#define ADMAIF11 10
#define ADMAIF12 11
#define ADMAIF13 12
#define ADMAIF14 13
#define ADMAIF15 14
#define ADMAIF16 15
#define ADMAIF17 16
#define ADMAIF18 17
#define ADMAIF19 18
#define ADMAIF20 19
/*
* ADMAIF_FIFO: DAIs used for DAI links between ADMAIF and ADSP.
* Offset depends on the number of ADMAIF channels for a chip.
* The DAI indices for these are derived from below offsets.
*/
#define TEGRA210_ADMAIF_FIFO_OFFSET 10
#define TEGRA186_ADMAIF_FIFO_OFFSET 20
/*
* ADMAIF_CIF: DAIs used for codec-to-codec links between ADMAIF and XBAR.
* Offset depends on the number of ADMAIF channels for a chip.
* The DAI indices for these are derived from below offsets.
*/
#define TEGRA210_ADMAIF_CIF_OFFSET 20
#define TEGRA186_ADMAIF_CIF_OFFSET 40
/* I2S */
#define I2S_CIF 0
#define I2S_DAP 1
#define I2S_DUMMY 2
/* DMIC */
#define DMIC_CIF 0
#define DMIC_DAP 1
#define DMIC_DUMMY 2
/* DSPK */
#define DSPK_CIF 0
#define DSPK_DAP 1
#define DSPK_DUMMY 4
/* SFC */
#define SFC_IN 0
#define SFC_OUT 1
/* MIXER */
#define MIXER_IN1 0
#define MIXER_IN2 1
#define MIXER_IN3 2
#define MIXER_IN4 3
#define MIXER_IN5 4
#define MIXER_IN6 5
#define MIXER_IN7 6
#define MIXER_IN8 7
#define MIXER_IN9 8
#define MIXER_IN10 9
#define MIXER_OUT1 10
#define MIXER_OUT2 11
#define MIXER_OUT3 12
#define MIXER_OUT4 13
#define MIXER_OUT5 14
/* AFC */
#define AFC_IN 0
#define AFC_OUT 1
/* OPE */
#define OPE_IN 0
#define OPE_OUT 1
/* MVC */
#define MVC_IN 0
#define MVC_OUT 1
/* AMX */
#define AMX_IN1 0
#define AMX_IN2 1
#define AMX_IN3 2
#define AMX_IN4 3
#define AMX_OUT 4
/* ADX */
#define ADX_OUT1 0
#define ADX_OUT2 1
#define ADX_OUT3 2
#define ADX_OUT4 3
#define ADX_IN 4
/* ASRC */
#define ASRC_IN1 0
#define ASRC_IN2 1
#define ASRC_IN3 2
#define ASRC_IN4 3
#define ASRC_IN5 4
#define ASRC_IN6 5
#define ASRC_IN7 6
#define ASRC_OUT1 7
#define ASRC_OUT2 8
#define ASRC_OUT3 9
#define ASRC_OUT4 10
#define ASRC_OUT5 11
#define ASRC_OUT6 12
/* ARAD */
#define ARAD 0
/* ADSP */
#define ADSP_FE1 0
#define ADSP_FE2 1
#define ADSP_FE3 2
#define ADSP_FE4 3
#define ADSP_FE5 4
#define ADSP_FE6 5
#define ADSP_FE7 6
#define ADSP_FE8 7
#define ADSP_FE9 8
#define ADSP_FE10 9
#define ADSP_FE11 10
#define ADSP_FE12 11
#define ADSP_FE13 12
#define ADSP_FE14 13
#define ADSP_FE15 14
#define ADSP_EAVB_CODEC 15
#define ADSP_ADMAIF1 16
#define ADSP_ADMAIF2 17
#define ADSP_ADMAIF3 18
#define ADSP_ADMAIF4 19
#define ADSP_ADMAIF5 20
#define ADSP_ADMAIF6 21
#define ADSP_ADMAIF7 22
#define ADSP_ADMAIF8 23
#define ADSP_ADMAIF9 24
#define ADSP_ADMAIF10 25
#define ADSP_ADMAIF11 26
#define ADSP_ADMAIF12 27
#define ADSP_ADMAIF13 28
#define ADSP_ADMAIF14 29
#define ADSP_ADMAIF15 30
#define ADSP_ADMAIF16 31
#define ADSP_ADMAIF17 32
#define ADSP_ADMAIF18 33
#define ADSP_ADMAIF19 34
#define ADSP_ADMAIF20 35
#define ADSP_PCM1 36
#define ADSP_PCM2 37
#define ADSP_PCM3 38
#define ADSP_PCM4 39
#define ADSP_PCM5 40
#define ADSP_PCM6 41
#define ADSP_PCM7 42
#define ADSP_PCM8 43
#define ADSP_PCM9 44
#define ADSP_PCM10 45
#define ADSP_PCM11 46
#define ADSP_PCM12 47
#define ADSP_PCM13 48
#define ADSP_PCM14 49
#define ADSP_PCM15 50
#define ADSP_COMPR1 51
#define ADSP_COMPR2 52
#define ADSP_EAVB 53
#endif