~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/sound/soc/intel/common/soc-acpi-intel-icl-match.c

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 // SPDX-License-Identifier: GPL-2.0-only
  2 /*
  3  * soc-acpi-intel-icl-match.c - tables and support for ICL ACPI enumeration.
  4  *
  5  * Copyright (c) 2018, Intel Corporation.
  6  *
  7  */
  8 
  9 #include <sound/soc-acpi.h>
 10 #include <sound/soc-acpi-intel-match.h>
 11 #include "../skylake/skl.h"
 12 
 13 static const struct snd_soc_acpi_codecs essx_83x6 = {
 14         .num_codecs = 3,
 15         .codecs = { "ESSX8316", "ESSX8326", "ESSX8336"},
 16 };
 17 
 18 static struct skl_machine_pdata icl_pdata = {
 19         .use_tplg_pcm = true,
 20 };
 21 
 22 struct snd_soc_acpi_mach snd_soc_acpi_intel_icl_machines[] = {
 23         {
 24                 .id = "INT34C2",
 25                 .drv_name = "icl_rt274",
 26                 .fw_filename = "intel/dsp_fw_icl.bin",
 27                 .pdata = &icl_pdata,
 28                 .sof_tplg_filename = "sof-icl-rt274.tplg",
 29         },
 30         {
 31                 .id = "10EC5682",
 32                 .drv_name = "icl_rt5682_def",
 33                 .sof_tplg_filename = "sof-icl-rt5682.tplg",
 34         },
 35         {
 36                 .comp_ids = &essx_83x6,
 37                 .drv_name = "sof-essx8336",
 38                 .sof_tplg_filename = "sof-icl-es8336", /* the tplg suffix is added at run time */
 39                 .tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER |
 40                                         SND_SOC_ACPI_TPLG_INTEL_SSP_MSB |
 41                                         SND_SOC_ACPI_TPLG_INTEL_DMIC_NUMBER,
 42         },
 43         {},
 44 };
 45 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_icl_machines);
 46 
 47 static const struct snd_soc_acpi_endpoint single_endpoint = {
 48         .num = 0,
 49         .aggregated = 0,
 50         .group_position = 0,
 51         .group_id = 0,
 52 };
 53 
 54 static const struct snd_soc_acpi_endpoint spk_l_endpoint = {
 55         .num = 0,
 56         .aggregated = 1,
 57         .group_position = 0,
 58         .group_id = 1,
 59 };
 60 
 61 static const struct snd_soc_acpi_endpoint spk_r_endpoint = {
 62         .num = 0,
 63         .aggregated = 1,
 64         .group_position = 1,
 65         .group_id = 1,
 66 };
 67 
 68 static const struct snd_soc_acpi_adr_device rt700_0_adr[] = {
 69         {
 70                 .adr = 0x000010025D070000ull,
 71                 .num_endpoints = 1,
 72                 .endpoints = &single_endpoint,
 73                 .name_prefix = "rt700"
 74         }
 75 };
 76 
 77 static const struct snd_soc_acpi_link_adr icl_rvp[] = {
 78         {
 79                 .mask = BIT(0),
 80                 .num_adr = ARRAY_SIZE(rt700_0_adr),
 81                 .adr_d = rt700_0_adr,
 82         },
 83         {}
 84 };
 85 
 86 static const struct snd_soc_acpi_adr_device rt711_0_adr[] = {
 87         {
 88                 .adr = 0x000020025D071100ull,
 89                 .num_endpoints = 1,
 90                 .endpoints = &single_endpoint,
 91                 .name_prefix = "rt711"
 92         }
 93 };
 94 
 95 static const struct snd_soc_acpi_adr_device rt1308_1_adr[] = {
 96         {
 97                 .adr = 0x000120025D130800ull,
 98                 .num_endpoints = 1,
 99                 .endpoints = &single_endpoint,
100                 .name_prefix = "rt1308-1"
101         }
102 };
103 
104 static const struct snd_soc_acpi_adr_device rt1308_1_group1_adr[] = {
105         {
106                 .adr = 0x000120025D130800ull,
107                 .num_endpoints = 1,
108                 .endpoints = &spk_l_endpoint,
109                 .name_prefix = "rt1308-1"
110         }
111 };
112 
113 static const struct snd_soc_acpi_adr_device rt1308_2_group1_adr[] = {
114         {
115                 .adr = 0x000220025D130800ull,
116                 .num_endpoints = 1,
117                 .endpoints = &spk_r_endpoint,
118                 .name_prefix = "rt1308-2"
119         }
120 };
121 
122 static const struct snd_soc_acpi_adr_device rt715_3_adr[] = {
123         {
124                 .adr = 0x000320025D071500ull,
125                 .num_endpoints = 1,
126                 .endpoints = &single_endpoint,
127                 .name_prefix = "rt715"
128         }
129 };
130 
131 static const struct snd_soc_acpi_link_adr icl_3_in_1_default[] = {
132         {
133                 .mask = BIT(0),
134                 .num_adr = ARRAY_SIZE(rt711_0_adr),
135                 .adr_d = rt711_0_adr,
136         },
137         {
138                 .mask = BIT(1),
139                 .num_adr = ARRAY_SIZE(rt1308_1_group1_adr),
140                 .adr_d = rt1308_1_group1_adr,
141         },
142         {
143                 .mask = BIT(2),
144                 .num_adr = ARRAY_SIZE(rt1308_2_group1_adr),
145                 .adr_d = rt1308_2_group1_adr,
146         },
147         {
148                 .mask = BIT(3),
149                 .num_adr = ARRAY_SIZE(rt715_3_adr),
150                 .adr_d = rt715_3_adr,
151         },
152         {}
153 };
154 
155 static const struct snd_soc_acpi_link_adr icl_3_in_1_mono_amp[] = {
156         {
157                 .mask = BIT(0),
158                 .num_adr = ARRAY_SIZE(rt711_0_adr),
159                 .adr_d = rt711_0_adr,
160         },
161         {
162                 .mask = BIT(1),
163                 .num_adr = ARRAY_SIZE(rt1308_1_adr),
164                 .adr_d = rt1308_1_adr,
165         },
166         {
167                 .mask = BIT(3),
168                 .num_adr = ARRAY_SIZE(rt715_3_adr),
169                 .adr_d = rt715_3_adr,
170         },
171         {}
172 };
173 
174 struct snd_soc_acpi_mach snd_soc_acpi_intel_icl_sdw_machines[] = {
175         {
176                 .link_mask = 0xF, /* 4 active links required */
177                 .links = icl_3_in_1_default,
178                 .drv_name = "sof_sdw",
179                 .sof_tplg_filename = "sof-icl-rt711-rt1308-rt715.tplg",
180         },
181         {
182                 .link_mask = 0xB, /* 3 active links required */
183                 .links = icl_3_in_1_mono_amp,
184                 .drv_name = "sof_sdw",
185                 .sof_tplg_filename = "sof-icl-rt711-rt1308-rt715-mono.tplg",
186         },
187         {
188                 .link_mask = 0x1, /* rt700 connected on link0 */
189                 .links = icl_rvp,
190                 .drv_name = "sof_sdw",
191                 .sof_tplg_filename = "sof-icl-rt700.tplg",
192         },
193         {},
194 };
195 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_icl_sdw_machines);
196 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php