2020-05-01 09:58:50 -05:00
// SPDX-License-Identifier: GPL-2.0-only
2018-11-30 18:54:37 -06:00
/*
2019-07-25 07:35:23 +02:00
* soc - acpi - intel - icl - match . c - tables and support for ICL ACPI enumeration .
2018-11-30 18:54:37 -06:00
*
* Copyright ( c ) 2018 , Intel Corporation .
*
*/
# include <sound/soc-acpi.h>
# include <sound/soc-acpi-intel-match.h>
# include "../skylake/skl.h"
static struct skl_machine_pdata icl_pdata = {
. use_tplg_pcm = true ,
} ;
struct snd_soc_acpi_mach snd_soc_acpi_intel_icl_machines [ ] = {
{
. id = " INT34C2 " ,
. drv_name = " icl_rt274 " ,
. fw_filename = " intel/dsp_fw_icl.bin " ,
. pdata = & icl_pdata ,
2019-02-08 17:45:48 -06:00
. sof_fw_filename = " sof-icl.ri " ,
. sof_tplg_filename = " sof-icl-rt274.tplg " ,
2018-11-30 18:54:37 -06:00
} ,
2019-04-30 17:37:44 -05:00
{
. id = " 10EC5682 " ,
. drv_name = " sof_rt5682 " ,
. sof_fw_filename = " sof-icl.ri " ,
. sof_tplg_filename = " sof-icl-rt5682.tplg " ,
} ,
2018-11-30 18:54:37 -06:00
{ } ,
} ;
EXPORT_SYMBOL_GPL ( snd_soc_acpi_intel_icl_machines ) ;
2020-03-25 16:50:17 -05:00
static const struct snd_soc_acpi_endpoint single_endpoint = {
. num = 0 ,
. aggregated = 0 ,
. group_position = 0 ,
. group_id = 0 ,
} ;
static const struct snd_soc_acpi_endpoint spk_l_endpoint = {
. num = 0 ,
. aggregated = 1 ,
. group_position = 0 ,
. group_id = 1 ,
} ;
static const struct snd_soc_acpi_endpoint spk_r_endpoint = {
. num = 0 ,
. aggregated = 1 ,
. group_position = 1 ,
. group_id = 1 ,
} ;
static const struct snd_soc_acpi_adr_device rt700_0_adr [ ] = {
{
. adr = 0x000010025D070000 ,
. num_endpoints = 1 ,
. endpoints = & single_endpoint ,
2020-09-23 11:05:11 +03:00
. name_prefix = " rt700 "
2020-03-25 16:50:17 -05:00
}
2020-01-10 16:25:27 -06:00
} ;
static const struct snd_soc_acpi_link_adr icl_rvp [ ] = {
{
. mask = BIT ( 0 ) ,
. num_adr = ARRAY_SIZE ( rt700_0_adr ) ,
2020-03-25 16:50:17 -05:00
. adr_d = rt700_0_adr ,
2020-01-10 16:25:27 -06:00
} ,
{ }
} ;
2020-03-25 16:50:17 -05:00
static const struct snd_soc_acpi_adr_device rt711_0_adr [ ] = {
{
2020-08-21 14:55:48 -05:00
. adr = 0x000020025D071100 ,
2020-03-25 16:50:17 -05:00
. num_endpoints = 1 ,
. endpoints = & single_endpoint ,
2020-09-23 11:05:11 +03:00
. name_prefix = " rt711 "
2020-03-25 16:50:17 -05:00
}
} ;
static const struct snd_soc_acpi_adr_device rt1308_1_adr [ ] = {
{
2020-08-21 14:55:48 -05:00
. adr = 0x000120025D130800 ,
2020-03-25 16:50:17 -05:00
. num_endpoints = 1 ,
. endpoints = & single_endpoint ,
2020-09-23 11:05:11 +03:00
. name_prefix = " rt1308-1 "
2020-03-25 16:50:17 -05:00
}
2020-01-10 16:25:27 -06:00
} ;
2020-03-25 16:50:17 -05:00
static const struct snd_soc_acpi_adr_device rt1308_1_group1_adr [ ] = {
{
2020-08-21 14:55:48 -05:00
. adr = 0x000120025D130800 ,
2020-03-25 16:50:17 -05:00
. num_endpoints = 1 ,
. endpoints = & spk_l_endpoint ,
2020-09-23 11:05:11 +03:00
. name_prefix = " rt1308-1 "
2020-03-25 16:50:17 -05:00
}
2020-01-10 16:25:27 -06:00
} ;
2020-03-25 16:50:17 -05:00
static const struct snd_soc_acpi_adr_device rt1308_2_group1_adr [ ] = {
{
2020-08-21 14:55:48 -05:00
. adr = 0x000220025D130800 ,
2020-03-25 16:50:17 -05:00
. num_endpoints = 1 ,
. endpoints = & spk_r_endpoint ,
2020-09-23 11:05:11 +03:00
. name_prefix = " rt1308-2 "
2020-03-25 16:50:17 -05:00
}
} ;
static const struct snd_soc_acpi_adr_device rt715_3_adr [ ] = {
{
2020-08-21 14:55:48 -05:00
. adr = 0x000320025D071500 ,
2020-03-25 16:50:17 -05:00
. num_endpoints = 1 ,
. endpoints = & single_endpoint ,
2020-09-23 11:05:11 +03:00
. name_prefix = " rt715 "
2020-03-25 16:50:17 -05:00
}
2020-01-10 16:25:27 -06:00
} ;
static const struct snd_soc_acpi_link_adr icl_3_in_1_default [ ] = {
{
. mask = BIT ( 0 ) ,
. num_adr = ARRAY_SIZE ( rt711_0_adr ) ,
2020-03-25 16:50:17 -05:00
. adr_d = rt711_0_adr ,
2020-01-10 16:25:27 -06:00
} ,
{
. mask = BIT ( 1 ) ,
2020-03-25 16:50:17 -05:00
. num_adr = ARRAY_SIZE ( rt1308_1_group1_adr ) ,
. adr_d = rt1308_1_group1_adr ,
2020-01-10 16:25:27 -06:00
} ,
{
. mask = BIT ( 2 ) ,
2020-03-25 16:50:17 -05:00
. num_adr = ARRAY_SIZE ( rt1308_2_group1_adr ) ,
. adr_d = rt1308_2_group1_adr ,
2020-01-10 16:25:27 -06:00
} ,
{
. mask = BIT ( 3 ) ,
. num_adr = ARRAY_SIZE ( rt715_3_adr ) ,
2020-03-25 16:50:17 -05:00
. adr_d = rt715_3_adr ,
2020-01-10 16:25:27 -06:00
} ,
{ }
} ;
static const struct snd_soc_acpi_link_adr icl_3_in_1_mono_amp [ ] = {
{
. mask = BIT ( 0 ) ,
. num_adr = ARRAY_SIZE ( rt711_0_adr ) ,
2020-03-25 16:50:17 -05:00
. adr_d = rt711_0_adr ,
2020-01-10 16:25:27 -06:00
} ,
{
. mask = BIT ( 1 ) ,
. num_adr = ARRAY_SIZE ( rt1308_1_adr ) ,
2020-03-25 16:50:17 -05:00
. adr_d = rt1308_1_adr ,
2020-01-10 16:25:27 -06:00
} ,
{
. mask = BIT ( 3 ) ,
. num_adr = ARRAY_SIZE ( rt715_3_adr ) ,
2020-03-25 16:50:17 -05:00
. adr_d = rt715_3_adr ,
2020-01-10 16:25:27 -06:00
} ,
{ }
} ;
struct snd_soc_acpi_mach snd_soc_acpi_intel_icl_sdw_machines [ ] = {
{
. link_mask = 0xF , /* 4 active links required */
. links = icl_3_in_1_default ,
2020-03-25 17:07:43 -05:00
. drv_name = " sof_sdw " ,
2020-01-10 16:25:27 -06:00
. sof_fw_filename = " sof-icl.ri " ,
. sof_tplg_filename = " sof-icl-rt711-rt1308-rt715.tplg " ,
} ,
{
. link_mask = 0xB , /* 3 active links required */
. links = icl_3_in_1_mono_amp ,
2020-03-25 17:07:43 -05:00
. drv_name = " sof_sdw " ,
2020-01-10 16:25:27 -06:00
. sof_fw_filename = " sof-icl.ri " ,
. sof_tplg_filename = " sof-icl-rt711-rt1308-rt715-mono.tplg " ,
} ,
{
. link_mask = 0x1 , /* rt700 connected on link0 */
. links = icl_rvp ,
2020-03-25 17:07:43 -05:00
. drv_name = " sof_sdw " ,
2020-01-10 16:25:27 -06:00
. sof_fw_filename = " sof-icl.ri " ,
. sof_tplg_filename = " sof-icl-rt700.tplg " ,
} ,
{ } ,
} ;
EXPORT_SYMBOL_GPL ( snd_soc_acpi_intel_icl_sdw_machines ) ;
2018-11-30 18:54:37 -06:00
MODULE_LICENSE ( " GPL v2 " ) ;
MODULE_DESCRIPTION ( " Intel Common ACPI Match module " ) ;