diff --git a/sound/soc/tegra-alt/Kconfig b/sound/soc/tegra-alt/Kconfig new file mode 100644 index 00000000..92ce7ae1 --- /dev/null +++ b/sound/soc/tegra-alt/Kconfig @@ -0,0 +1,308 @@ +if SND_SOC + +config SND_SOC_TEGRA_ALT_186 + def_bool y + depends on SND_SOC_TEGRA_ALT + depends on ARCH_TEGRA_18x_SOC + +config SND_SOC_TEGRA186_DSPK_ALT + tristate "Tegra186 DSPK driver" + depends on SND_SOC_TEGRA_ALT && SND_SOC_TEGRA_ALT_186 + help + Say Y or M if you want to add support for Tegra186 DSPK module. + +config SND_SOC_TEGRA186_ASRC_ALT + tristate "Tegra186 ASRC driver" + depends on SND_SOC_TEGRA_ALT && SND_SOC_TEGRA_ALT_186 + help + Say Y or M if you want to add support for Tegra186 ASRC module. + +config SND_SOC_TEGRA186_ARAD_ALT + tristate "Tegra186 ARAD driver" + depends on SND_SOC_TEGRA_ALT && SND_SOC_TEGRA_ALT_186 + help + Say Y or M if you want to add support for Tegra186 ARAD module. + +config SND_SOC_TEGRA_ALT_FORCE_CARD_REG + tristate "Enable sound card even if audio codec is missing on board" + depends on SND_SOC_TEGRA_ALT + help + Say Y or M if you want to register the sound card even if audio codec + is not connected/present on board. + +config SND_SOC_TEGRA_T186REF_P4573_ALT + tristate "SoC Audio support for P4573 with CS53L30 and RT5658" + depends on SND_SOC_TEGRA_T186REF_ALT + select SND_SOC_CS53L30 + select SND_SOC_RT5659 + help + Say Y or M here. + +config SND_SOC_TEGRA_T186REF_AUTO_ALT + tristate "SoC Audio support for T186Ref Automotive" + depends on SND_SOC_TEGRA_T186REF_ALT + help + Say Y or M here. + +config SND_SOC_TEGRA_T186REF_M3420_ALT + tristate "SoC Audio support for T186 M3420" + depends on SND_SOC_TEGRA_T186REF_ALT + select SND_SOC_AD193X_I2C + help + Say Y or M here. + +config SND_SOC_TEGRA186_ARAD_WAR + def_bool y + depends on SND_SOC_TEGRA186_ARAD_ALT + depends on TEGRA186_AHC + +config SND_SOC_TEGRA186_ASRC_WAR + def_bool n + depends on SND_SOC_TEGRA186_ASRC_ALT + depends on SND_SOC_TEGRA186_ARAD_WAR + +config TEGRA186_ASRC_INT_CLEAR_WAR + def_bool y + depends on SND_SOC_TEGRA186_ASRC_ALT + +config SND_SOC_TEGRA_ALT + tristate "Alternative DAPM-based SoC audio support for the Tegra System-on-Chip" + depends on ARCH_TEGRA + depends on SND_DMAENGINE_PCM + select REGMAP_MMIO + select SND_DYNAMIC_MINORS + help + Say Y or M here if you want support for SoC audio on Tegra, using the + alternative driver that exposes to user-space the full routing capabilities + of the AHUB (Audio HUB) hardware module. + +config SND_SOC_TEGRA_ALT_210 + def_bool y + depends on SND_SOC_TEGRA_ALT + +config SND_SOC_TEGRA210_XBAR_ALT + tristate "Tegra210 XBAR driver" + depends on SND_SOC_TEGRA_ALT && SND_SOC_TEGRA_ALT_210 + help + Say Y or M if you want to add support for Tegra210 XBAR module. + +config SND_SOC_TEGRA210_ADMAIF_ALT + tristate "Tegra210 ADMIF driver" + depends on SND_SOC_TEGRA_ALT && SND_SOC_TEGRA_ALT_210 + help + Say Y or M if you want to add support for Tegra210 APBIF module. + +config SND_SOC_TEGRA210_I2S_ALT + tristate "Tegra210 I2S driver" + depends on SND_SOC_TEGRA_ALT && SND_SOC_TEGRA_ALT_210 + help + Say Y or M if you want to add support for Tegra210 I2S module. + +config SND_SOC_TEGRA210_DMIC_ALT + tristate "Tegra210 DMIC driver" + depends on SND_SOC_TEGRA_ALT && SND_SOC_TEGRA_ALT_210 + help + Say Y or M if you want to add support for Tegra210 DMIC module. + +config SND_SOC_TEGRA210_AMX_ALT + tristate "Tegra210 AMX driver" + depends on SND_SOC_TEGRA_ALT && SND_SOC_TEGRA_ALT_210 + help + Say Y or M if you want to add support for Tegra210 AMX module. + +config SND_SOC_TEGRA210_ADX_ALT + tristate "Tegra210 ADX driver" + depends on SND_SOC_TEGRA_ALT && SND_SOC_TEGRA_ALT_210 + help + Say Y or M if you want to add support for Tegra210 ADX module. + +config SND_SOC_TEGRA210_MIXER_ALT + tristate "Tegra210 MIXER driver" + depends on SND_SOC_TEGRA_ALT && SND_SOC_TEGRA_ALT_210 + help + Say Y or M if you want to add support for Tegra210 MIXER module. + +config SND_SOC_TEGRA210_SFC_ALT + tristate "Tegra210 SFC driver" + depends on SND_SOC_TEGRA_ALT && SND_SOC_TEGRA_ALT_210 + help + Say Y or M if you want to add support for Tegra210 SFC module. + +config SND_SOC_TEGRA210_AFC_ALT + tristate "Tegra210 AFC driver" + depends on SND_SOC_TEGRA_ALT && SND_SOC_TEGRA_ALT_210 + help + Say Y or M if you want to add support for Tegra210 AFC module. + +config SND_SOC_TEGRA210_MVC_ALT + tristate "Tegra210 MVC driver" + depends on SND_SOC_TEGRA_ALT && SND_SOC_TEGRA_ALT_210 + help + Say Y or M if you want to add support for Tegra210 MVC module. + +config SND_SOC_TEGRA210_IQC_ALT + tristate "Tegra210 IQC driver" + depends on SND_SOC_TEGRA_ALT && SND_SOC_TEGRA_ALT_210 + help + Say Y or M if you want to add support for Tegra210 IQC module. + +config SND_SOC_TEGRA210_SPDIF_ALT + tristate "Tegra210 SPDIF driver" + depends on SND_SOC_TEGRA_ALT && SND_SOC_TEGRA_ALT_210 + help + Say Y or M if you want to add support for Tegra210 SPDIF module. + +config SND_SOC_TEGRA210_OPE_ALT + tristate "Tegra210 OPE driver" + depends on SND_SOC_TEGRA_ALT && SND_SOC_TEGRA_ALT_210 + help + Say Y or M if you want to add support for Tegra210 OPE module. + +config SND_SOC_TEGRA210_ADSP_ALT + tristate "Tegra210 ADSP driver" + depends on SND_SOC_TEGRA_ALT && SND_SOC_TEGRA_ALT_210 && TEGRA_NVADSP + select SND_SOC_COMPRESS + help + Say Y or M if you want to add support for Tegra210 ADSP module. + +config SND_SOC_TEGRA_ASOC_MACHINE_ALT + tristate "Tegra ASoC machine driver" + depends on SND_SOC_TEGRA_ALT + help + Say Y or M if you want to add support for Tegra ASoC machine driver + +config SND_SOC_TEGRA_T210REF_MOBILE_ALT + tristate "SoC Audio support for T210Ref mobile" + depends on SND_SOC_TEGRA_ALT && I2C + depends on ARCH_TEGRA_210_SOC + select SND_SOC_TEGRA210_XBAR_ALT + select SND_SOC_TEGRA210_PCM_ALT + select SND_SOC_TEGRA210_ADMA_ALT + select SND_SOC_TEGRA210_ADMAIF_ALT + select SND_SOC_TEGRA210_I2S_ALT + select SND_SOC_TEGRA210_DMIC_ALT + select SND_SOC_TEGRA210_AMX_ALT + select SND_SOC_TEGRA210_ADX_ALT + select SND_SOC_TEGRA210_MIXER_ALT + select SND_SOC_TEGRA210_SFC_ALT + select SND_SOC_TEGRA210_AFC_ALT + select SND_SOC_TEGRA210_MVC_ALT + select SND_SOC_TEGRA210_OPE_ALT + select SND_SOC_TEGRA210_SPDIF_ALT + select SND_SOC_TEGRA210_ADSP_ALT if TEGRA_NVADSP + select SND_SOC_SPDIF + select SND_SOC_RT5640 + select SND_SOC_RT5659 + select SND_SOC_TEGRA_ASOC_MACHINE_ALT + help + Say Y or M here. + +config SND_SOC_TEGRA_T210REF_ALT + tristate "SoC Audio support for T210Ref" + depends on SND_SOC_TEGRA_ALT + depends on ARCH_TEGRA_210_SOC + select SND_SOC_TEGRA210_XBAR_ALT + select SND_SOC_TEGRA210_PCM_ALT + select SND_SOC_TEGRA210_ADMA_ALT + select SND_SOC_TEGRA210_ADMAIF_ALT + select SND_SOC_TEGRA210_I2S_ALT + select SND_SOC_TEGRA210_DMIC_ALT + select SND_SOC_TEGRA210_AMX_ALT + select SND_SOC_TEGRA210_ADX_ALT + select SND_SOC_TEGRA210_MIXER_ALT + select SND_SOC_TEGRA210_SFC_ALT + select SND_SOC_TEGRA210_AFC_ALT + select SND_SOC_TEGRA210_MVC_ALT + select SND_SOC_TEGRA210_OPE_ALT + select SND_SOC_TEGRA210_SPDIF_ALT + select SND_SOC_TEGRA210_ADSP_ALT if TEGRA_NVADSP + select SND_SOC_TEGRA_ASOC_HWDEP_ALT + select SND_SOC_SPDIF + select SND_SOC_AD193X_I2C + select SND_SOC_TEGRA_ASOC_MACHINE_ALT + help + Say Y or M here. + +config SND_SOC_TEGRA_T186REF_ALT + tristate "SoC Audio support for T186Ref" + depends on SND_SOC_TEGRA_ALT + depends on ARCH_TEGRA_18x_SOC + select SND_SOC_TEGRA210_XBAR_ALT + select SND_SOC_TEGRA210_PCM_ALT + select SND_SOC_TEGRA210_ADMA_ALT + select SND_SOC_TEGRA210_ADMAIF_ALT + select SND_SOC_TEGRA210_I2S_ALT + select SND_SOC_TEGRA210_DMIC_ALT + select SND_SOC_TEGRA210_AMX_ALT + select SND_SOC_TEGRA210_ADX_ALT + select SND_SOC_TEGRA210_MIXER_ALT + select SND_SOC_TEGRA210_SFC_ALT + select SND_SOC_TEGRA210_AFC_ALT + select SND_SOC_TEGRA210_MVC_ALT + select SND_SOC_TEGRA210_OPE_ALT + select SND_SOC_TEGRA210_SPDIF_ALT + select SND_SOC_TEGRA210_ADSP_ALT if TEGRA_NVADSP + select SND_SOC_TEGRA186_ASRC_ALT + select SND_SOC_TEGRA186_ARAD_ALT + select SND_SOC_TEGRA186_DSPK_ALT + select SND_SOC_TEGRA_ASOC_HWDEP_ALT + select SND_SOC_SPDIF + select SND_SOC_TEGRA_ASOC_MACHINE_ALT + select SND_SOC_COMPRESS + help + Say Y or M here. + +config SND_SOC_TEGRA_T186REF_MOBILE_ALT + tristate "SoC Audio support for T186Ref Mobile" + depends on SND_SOC_TEGRA_ALT + depends on ARCH_TEGRA_18x_SOC + select SND_SOC_TEGRA210_XBAR_ALT + select SND_SOC_TEGRA210_PCM_ALT + select SND_SOC_TEGRA210_ADMA_ALT + select SND_SOC_TEGRA210_ADMAIF_ALT + select SND_SOC_TEGRA210_I2S_ALT + select SND_SOC_TEGRA210_DMIC_ALT + select SND_SOC_TEGRA210_AMX_ALT + select SND_SOC_TEGRA210_ADX_ALT + select SND_SOC_TEGRA210_MIXER_ALT + select SND_SOC_TEGRA210_SFC_ALT + select SND_SOC_TEGRA210_AFC_ALT + select SND_SOC_TEGRA210_MVC_ALT + select SND_SOC_TEGRA210_OPE_ALT + select SND_SOC_TEGRA210_SPDIF_ALT + select SND_SOC_TEGRA210_ADSP_ALT if TEGRA_NVADSP + select SND_SOC_TEGRA186_ASRC_ALT + select SND_SOC_TEGRA186_ARAD_ALT + select SND_SOC_TEGRA186_DSPK_ALT + select SND_SOC_TEGRA_ASOC_HWDEP_ALT + select SND_SOC_SPDIF + select SND_SOC_RT5659 + select SND_SOC_COMPRESS + select SND_SOC_TEGRA_ASOC_MACHINE_ALT + help + Say Y or M here. + +config SND_SOC_TEGRA_T210REF_P2382_ALT + tristate "SoC Audio support for P2382Ref T210" + depends on SND_SOC_TEGRA_ALT + depends on ARCH_TEGRA_210_SOC + select SND_SOC_TEGRA210_XBAR_ALT + select SND_SOC_TEGRA210_PCM_ALT + select SND_SOC_TEGRA210_ADMA_ALT + select SND_SOC_TEGRA210_ADMAIF_ALT + select SND_SOC_TEGRA210_I2S_ALT + select SND_SOC_TEGRA210_AMX_ALT + select SND_SOC_TEGRA210_ADX_ALT + select SND_SOC_TEGRA210_MIXER_ALT + select SND_SOC_TEGRA210_SFC_ALT + select SND_SOC_TEGRA210_AFC_ALT + select SND_SOC_TEGRA210_MVC_ALT + select SND_SOC_TEGRA210_OPE_ALT + select SND_SOC_TEGRA210_ADSP_ALT if TEGRA_NVADSP + select SND_SOC_TEGRA_ASOC_HWDEP_ALT + select SND_SOC_SPDIF + select SND_SOC_TEGRA_ASOC_MACHINE_ALT + help + Say Y or M here + +endif diff --git a/sound/soc/tegra-alt/Makefile b/sound/soc/tegra-alt/Makefile new file mode 100644 index 00000000..3594cef9 --- /dev/null +++ b/sound/soc/tegra-alt/Makefile @@ -0,0 +1,94 @@ +GCOV_PROFILE := y + +subdir-ccflags-y := -Werror + +subdir-ccflags-y += -I$(srctree) +subdir-ccflags-y += -I$(srctree)/sound/soc/codecs/ +subdir-ccflags-y += -I$(srctree)/../nvidia +subdir-ccflags-y += -I$(srctree)/../nvidia/sound/soc/tegra-virt-alt/ +subdir-ccflags-y += -I$(srctree)/../nvidia/sound/soc/tegra-alt/include/ + +#----------------------------- utility drivers -------------------------------------- +CFLAGS_tegra_pcm_alt.o += -Wno-shift-count-overflow + +snd-soc-tegra-alt-utils-objs := utils/tegra_asoc_utils_alt.o \ + utils/tegra_pcm_alt.o \ + utils/tegra_asoc_machine_alt.o \ + utils/tegra_isomgr_bw_alt.o \ + utils/ahub_unit_fpga_clock.o \ + utils/tegra210_xbar_utils_alt.o + +obj-$(CONFIG_SND_SOC_TEGRA_ALT) += snd-soc-tegra-alt-utils.o + +#----------------------------- platform drivers ------------------------------------- +snd-soc-tegra210-alt-admaif-objs := tegra210_admaif_alt.o +snd-soc-tegra210-alt-xbar-objs := tegra210_xbar_alt.o + +# required to fool lkm loader (can be removed later) +ifeq ($(CONFIG_SND_SOC_TEGRA210_XBAR_ALT),m) + snd-soc-tegra186-alt-xbar-objs := tegra210_xbar_alt.o +endif + +snd-soc-tegra210-alt-i2s-objs := tegra210_i2s_alt.o +snd-soc-tegra210-alt-dmic-objs := tegra210_dmic_alt.o +snd-soc-tegra210-alt-amx-objs := tegra210_amx_alt.o +snd-soc-tegra210-alt-adx-objs := tegra210_adx_alt.o +snd-soc-tegra210-alt-mixer-objs := tegra210_mixer_alt.o +snd-soc-tegra210-alt-sfc-objs := tegra210_sfc_alt.o +snd-soc-tegra210-alt-afc-objs := tegra210_afc_alt.o +snd-soc-tegra210-alt-mvc-objs := tegra210_mvc_alt.o +snd-soc-tegra210-alt-iqc-objs := tegra210_iqc_alt.o +snd-soc-tegra210-alt-spdif-objs := tegra210_spdif_alt.o +snd-soc-tegra210-alt-adsp-objs := tegra210_adsp_alt.o +snd-soc-tegra186-alt-asrc-objs := tegra186_asrc_alt.o +snd-soc-tegra186-alt-arad-objs := tegra186_arad_alt.o +snd-soc-tegra186-alt-dspk-objs := tegra186_dspk_alt.o +snd-soc-tegra210-alt-ope-objs := tegra210_ope_alt.o \ + tegra210_peq_alt.o \ + tegra210_mbdrc_alt.o + +obj-$(CONFIG_SND_SOC_TEGRA210_ADMAIF_ALT) += snd-soc-tegra210-alt-admaif.o +obj-$(CONFIG_SND_SOC_TEGRA210_XBAR_ALT) += snd-soc-tegra210-alt-xbar.o + +ifeq ($(CONFIG_SND_SOC_TEGRA210_XBAR_ALT),m) + obj-$(CONFIG_SND_SOC_TEGRA210_XBAR_ALT) += snd-soc-tegra186-alt-xbar.o +endif + +obj-$(CONFIG_SND_SOC_TEGRA210_I2S_ALT) += snd-soc-tegra210-alt-i2s.o +obj-$(CONFIG_SND_SOC_TEGRA210_DMIC_ALT) += snd-soc-tegra210-alt-dmic.o +obj-$(CONFIG_SND_SOC_TEGRA210_AMX_ALT) += snd-soc-tegra210-alt-amx.o +obj-$(CONFIG_SND_SOC_TEGRA210_ADX_ALT) += snd-soc-tegra210-alt-adx.o +obj-$(CONFIG_SND_SOC_TEGRA210_MIXER_ALT) += snd-soc-tegra210-alt-mixer.o +obj-$(CONFIG_SND_SOC_TEGRA210_SFC_ALT) += snd-soc-tegra210-alt-sfc.o +obj-$(CONFIG_SND_SOC_TEGRA210_AFC_ALT) += snd-soc-tegra210-alt-afc.o +obj-$(CONFIG_SND_SOC_TEGRA210_MVC_ALT) += snd-soc-tegra210-alt-mvc.o +obj-$(CONFIG_SND_SOC_TEGRA210_IQC_ALT) += snd-soc-tegra210-alt-iqc.o +obj-$(CONFIG_SND_SOC_TEGRA210_SPDIF_ALT) += snd-soc-tegra210-alt-spdif.o +obj-$(CONFIG_SND_SOC_TEGRA210_OPE_ALT) += snd-soc-tegra210-alt-ope.o +obj-$(CONFIG_SND_SOC_TEGRA210_ADSP_ALT) += snd-soc-tegra210-alt-adsp.o +obj-$(CONFIG_SND_SOC_TEGRA186_ARAD_ALT) += snd-soc-tegra186-alt-arad.o +obj-$(CONFIG_SND_SOC_TEGRA186_ASRC_ALT) += snd-soc-tegra186-alt-asrc.o +obj-$(CONFIG_SND_SOC_TEGRA186_DSPK_ALT) += snd-soc-tegra186-alt-dspk.o + +#------------------------------------ machine drivers --------------------------------------- +snd-soc-tegra-alt-p1889ref-objs := machine_drivers/tegra_p1889ref_alt.o +snd-soc-tegra-alt-t210ref-objs := machine_drivers/tegra_t210ref_alt.o +snd-soc-tegra-alt-t186ref-objs := machine_drivers/tegra_t186ref_alt.o +snd-soc-tegra-machine-driver-mobile-objs := machine_drivers/tegra_machine_driver_mobile.o +snd-soc-tegra-alt-t186ref-p2382-objs := machine_drivers/tegra_t186ref_p2382_alt.o +snd-soc-tegra-alt-t186ref-bali-objs := machine_drivers/tegra_t186ref_bali_alt.o +snd-soc-tegra-alt-t186ref-p4573-objs := machine_drivers/tegra_t186ref_p4573_alt.o +snd-soc-tegra-alt-t186ref-m3420-objs := machine_drivers/tegra_t186ref_m3420_alt.o +snd-soc-tegra-alt-t210ref-p2382-objs := machine_drivers/tegra_t210ref_p2382_alt.o \ + machine_drivers/tegra_maui_alt.o + +obj-$(CONFIG_SND_SOC_TEGRA_P1889REF_ALT) += snd-soc-tegra-alt-p1889ref.o +obj-$(CONFIG_SND_SOC_TEGRA_T210REF_ALT) += snd-soc-tegra-alt-t210ref.o +obj-$(CONFIG_SND_SOC_TEGRA_T210REF_P2382_ALT) += snd-soc-tegra-alt-t210ref-p2382.o +obj-$(CONFIG_SND_SOC_TEGRA_T186REF_FPGA_ALT) += snd-soc-tegra-alt-t186ref.o +obj-$(CONFIG_SND_SOC_TEGRA_T210REF_MOBILE_ALT) += snd-soc-tegra-machine-driver-mobile.o +obj-$(CONFIG_SND_SOC_TEGRA_T186REF_MOBILE_ALT) += snd-soc-tegra-machine-driver-mobile.o +obj-$(CONFIG_SND_SOC_TEGRA_T186REF_AUTO_ALT) += snd-soc-tegra-alt-t186ref-p2382.o +obj-$(CONFIG_SND_SOC_TEGRA_T186REF_AUTO_ALT) += snd-soc-tegra-alt-t186ref-bali.o +obj-$(CONFIG_SND_SOC_TEGRA_T186REF_P4573_ALT) += snd-soc-tegra-alt-t186ref-p4573.o +obj-$(CONFIG_SND_SOC_TEGRA_T186REF_M3420_ALT) += snd-soc-tegra-alt-t186ref-m3420.o