brintos

brintos / linux-shallow public Read only

0
0
Text · 2.1 KiB · f99cf6c Raw
96 lines · c
1// SPDX-License-Identifier: GPL-2.0-only2/*3 * soc-acpi-intel-bxt-match.c - tables and support for BXT ACPI enumeration.4 *5 * Copyright (c) 2018, Intel Corporation.6 *7 */8 9#include <linux/dmi.h>10#include <sound/soc-acpi.h>11#include <sound/soc-acpi-intel-match.h>12 13enum {14	APL_RVP,15};16 17static const struct dmi_system_id apl_table[] = {18	{19		.matches = {20			DMI_MATCH(DMI_SYS_VENDOR, "Intel Corp."),21			DMI_MATCH(DMI_BOARD_NAME, "Apollolake RVP1A"),22		},23		.driver_data = (void *)(APL_RVP),24	},25	{}26};27 28static struct snd_soc_acpi_mach *apl_quirk(void *arg)29{30	struct snd_soc_acpi_mach *mach = arg;31	const struct dmi_system_id *dmi_id;32	unsigned long apl_machine_id;33 34	dmi_id = dmi_first_match(apl_table);35	if (dmi_id) {36		apl_machine_id = (unsigned long)dmi_id->driver_data;37		if (apl_machine_id == APL_RVP)38			return NULL;39	}40 41	return mach;42}43 44static const struct snd_soc_acpi_codecs essx_83x6 = {45	.num_codecs = 3,46	.codecs = { "ESSX8316", "ESSX8326", "ESSX8336"},47};48 49static const struct snd_soc_acpi_codecs bxt_codecs = {50	.num_codecs = 1,51	.codecs = {"MX98357A"}52};53 54struct snd_soc_acpi_mach snd_soc_acpi_intel_bxt_machines[] = {55	{56		.id = "INT343A",57		.drv_name = "bxt_alc298s_i2s",58		.fw_filename = "intel/dsp_fw_bxtn.bin",59		.sof_tplg_filename = "sof-apl-rt298.tplg",60	},61	{62		.id = "DLGS7219",63		.drv_name = "bxt_da7219_mx98357a",64		.fw_filename = "intel/dsp_fw_bxtn.bin",65		.machine_quirk = snd_soc_acpi_codec_list,66		.quirk_data = &bxt_codecs,67		.sof_tplg_filename = "sof-apl-da7219.tplg",68	},69	{70		.id = "104C5122",71		.drv_name = "sof_pcm512x",72		.sof_tplg_filename = "sof-apl-pcm512x.tplg",73	},74	{75		.id = "1AEC8804",76		.drv_name = "sof-wm8804",77		.sof_tplg_filename = "sof-apl-wm8804.tplg",78	},79	{80		.id = "INT34C3",81		.drv_name = "bxt_tdf8532",82		.machine_quirk = apl_quirk,83		.sof_tplg_filename = "sof-apl-tdf8532.tplg",84	},85	{86		.comp_ids = &essx_83x6,87		.drv_name = "sof-essx8336",88		.sof_tplg_filename = "sof-apl-es8336", /* the tplg suffix is added at run time */89		.tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER |90					SND_SOC_ACPI_TPLG_INTEL_SSP_MSB |91					SND_SOC_ACPI_TPLG_INTEL_DMIC_NUMBER,92	},93	{},94};95EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_bxt_machines);96