]> asedeno.scripts.mit.edu Git - linux.git/blob - sound/soc/intel/common/soc-acpi-intel-icl-match.c
67e9da4635f2541151d6776bdb0d9f0dbcb49133
[linux.git] / sound / soc / intel / common / soc-acpi-intel-icl-match.c
1 // SPDX-License-Identifier: GPL-2.0
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 struct skl_machine_pdata icl_pdata = {
14         .use_tplg_pcm = true,
15 };
16
17 struct snd_soc_acpi_mach snd_soc_acpi_intel_icl_machines[] = {
18         {
19                 .id = "INT34C2",
20                 .drv_name = "icl_rt274",
21                 .fw_filename = "intel/dsp_fw_icl.bin",
22                 .pdata = &icl_pdata,
23                 .sof_fw_filename = "sof-icl.ri",
24                 .sof_tplg_filename = "sof-icl-rt274.tplg",
25         },
26         {
27                 .id = "10EC5682",
28                 .drv_name = "sof_rt5682",
29                 .sof_fw_filename = "sof-icl.ri",
30                 .sof_tplg_filename = "sof-icl-rt5682.tplg",
31         },
32         {},
33 };
34 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_icl_machines);
35
36 static const u64 rt700_0_adr[] = {
37         0x000010025D070000
38 };
39
40 static const struct snd_soc_acpi_link_adr icl_rvp[] = {
41         {
42                 .mask = BIT(0),
43                 .num_adr = ARRAY_SIZE(rt700_0_adr),
44                 .adr = rt700_0_adr,
45         },
46         {}
47 };
48
49 static const u64 rt711_0_adr[] = {
50         0x000010025D071100
51 };
52
53 static const u64 rt1308_1_adr[] = {
54         0x000110025D130800
55 };
56
57 static const u64 rt1308_2_adr[] = {
58         0x000210025D130800
59 };
60
61 static const u64 rt715_3_adr[] = {
62         0x000310025D715000
63 };
64
65 static const struct snd_soc_acpi_link_adr icl_3_in_1_default[] = {
66         {
67                 .mask = BIT(0),
68                 .num_adr = ARRAY_SIZE(rt711_0_adr),
69                 .adr = rt711_0_adr,
70         },
71         {
72                 .mask = BIT(1),
73                 .num_adr = ARRAY_SIZE(rt1308_1_adr),
74                 .adr = rt1308_1_adr,
75         },
76         {
77                 .mask = BIT(2),
78                 .num_adr = ARRAY_SIZE(rt1308_2_adr),
79                 .adr = rt1308_2_adr,
80         },
81         {
82                 .mask = BIT(3),
83                 .num_adr = ARRAY_SIZE(rt715_3_adr),
84                 .adr = rt715_3_adr,
85         },
86         {}
87 };
88
89 static const struct snd_soc_acpi_link_adr icl_3_in_1_mono_amp[] = {
90         {
91                 .mask = BIT(0),
92                 .num_adr = ARRAY_SIZE(rt711_0_adr),
93                 .adr = rt711_0_adr,
94         },
95         {
96                 .mask = BIT(1),
97                 .num_adr = ARRAY_SIZE(rt1308_1_adr),
98                 .adr = rt1308_1_adr,
99         },
100         {
101                 .mask = BIT(3),
102                 .num_adr = ARRAY_SIZE(rt715_3_adr),
103                 .adr = rt715_3_adr,
104         },
105         {}
106 };
107
108 struct snd_soc_acpi_mach snd_soc_acpi_intel_icl_sdw_machines[] = {
109         {
110                 .link_mask = 0xF, /* 4 active links required */
111                 .links = icl_3_in_1_default,
112                 .drv_name = "sdw_rt711_rt1308_rt715",
113                 .sof_fw_filename = "sof-icl.ri",
114                 .sof_tplg_filename = "sof-icl-rt711-rt1308-rt715.tplg",
115         },
116         {
117                 .link_mask = 0xB, /* 3 active links required */
118                 .links = icl_3_in_1_mono_amp,
119                 .drv_name = "sdw_rt711_rt1308_rt715",
120                 .sof_fw_filename = "sof-icl.ri",
121                 .sof_tplg_filename = "sof-icl-rt711-rt1308-rt715-mono.tplg",
122         },
123         {
124                 .link_mask = 0x1, /* rt700 connected on link0 */
125                 .links = icl_rvp,
126                 .drv_name = "sdw_rt700",
127                 .sof_fw_filename = "sof-icl.ri",
128                 .sof_tplg_filename = "sof-icl-rt700.tplg",
129         },
130         {},
131 };
132 EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_icl_sdw_machines);
133
134 MODULE_LICENSE("GPL v2");
135 MODULE_DESCRIPTION("Intel Common ACPI Match module");