Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/sound/soc/amd/acp/amd-acp70-acpi-match.c
26481 views
1
// SPDX-License-Identifier: GPL-2.0-only
2
/*
3
* amd-acp70-acpi-match.c - tables and support for ACP 7.0 & ACP7.1
4
* ACPI enumeration.
5
*
6
* Copyright 2025 Advanced Micro Devices, Inc.
7
*/
8
9
#include <sound/soc-acpi.h>
10
#include "../mach-config.h"
11
12
static const struct snd_soc_acpi_endpoint single_endpoint = {
13
.num = 0,
14
.aggregated = 0,
15
.group_position = 0,
16
.group_id = 0
17
};
18
19
static const struct snd_soc_acpi_endpoint spk_l_endpoint = {
20
.num = 0,
21
.aggregated = 1,
22
.group_position = 0,
23
.group_id = 1
24
};
25
26
static const struct snd_soc_acpi_endpoint spk_r_endpoint = {
27
.num = 0,
28
.aggregated = 1,
29
.group_position = 1,
30
.group_id = 1
31
};
32
33
static const struct snd_soc_acpi_adr_device rt711_rt1316_group_adr[] = {
34
{
35
.adr = 0x000030025D071101ull,
36
.num_endpoints = 1,
37
.endpoints = &single_endpoint,
38
.name_prefix = "rt711"
39
},
40
{
41
.adr = 0x000030025D131601ull,
42
.num_endpoints = 1,
43
.endpoints = &spk_l_endpoint,
44
.name_prefix = "rt1316-1"
45
},
46
{
47
.adr = 0x000032025D131601ull,
48
.num_endpoints = 1,
49
.endpoints = &spk_r_endpoint,
50
.name_prefix = "rt1316-2"
51
},
52
};
53
54
static const struct snd_soc_acpi_adr_device rt714_adr[] = {
55
{
56
.adr = 0x130025d071401ull,
57
.num_endpoints = 1,
58
.endpoints = &single_endpoint,
59
.name_prefix = "rt714"
60
}
61
};
62
63
static const struct snd_soc_acpi_link_adr acp70_4_in_1_sdca[] = {
64
{ .mask = BIT(0),
65
.num_adr = ARRAY_SIZE(rt711_rt1316_group_adr),
66
.adr_d = rt711_rt1316_group_adr,
67
},
68
{
69
.mask = BIT(1),
70
.num_adr = ARRAY_SIZE(rt714_adr),
71
.adr_d = rt714_adr,
72
},
73
{}
74
};
75
76
static const struct snd_soc_acpi_endpoint rt722_endpoints[] = {
77
{
78
.num = 0,
79
.aggregated = 0,
80
.group_position = 0,
81
.group_id = 0,
82
},
83
{
84
.num = 1,
85
.aggregated = 0,
86
.group_position = 0,
87
.group_id = 0,
88
},
89
{
90
.num = 2,
91
.aggregated = 0,
92
.group_position = 0,
93
.group_id = 0,
94
},
95
};
96
97
static const struct snd_soc_acpi_adr_device rt722_0_single_adr[] = {
98
{
99
.adr = 0x000030025d072201ull,
100
.num_endpoints = ARRAY_SIZE(rt722_endpoints),
101
.endpoints = rt722_endpoints,
102
.name_prefix = "rt722"
103
}
104
};
105
106
static const struct snd_soc_acpi_adr_device rt1320_1_single_adr[] = {
107
{
108
.adr = 0x000130025D132001ull,
109
.num_endpoints = 1,
110
.endpoints = &single_endpoint,
111
.name_prefix = "rt1320-1"
112
}
113
};
114
115
static const struct snd_soc_acpi_link_adr acp70_rt722_only[] = {
116
{
117
.mask = BIT(0),
118
.num_adr = ARRAY_SIZE(rt722_0_single_adr),
119
.adr_d = rt722_0_single_adr,
120
},
121
{}
122
};
123
124
static const struct snd_soc_acpi_link_adr acp70_rt722_l0_rt1320_l1[] = {
125
{
126
.mask = BIT(0),
127
.num_adr = ARRAY_SIZE(rt722_0_single_adr),
128
.adr_d = rt722_0_single_adr,
129
},
130
{
131
.mask = BIT(1),
132
.num_adr = ARRAY_SIZE(rt1320_1_single_adr),
133
.adr_d = rt1320_1_single_adr,
134
},
135
{}
136
};
137
138
struct snd_soc_acpi_mach snd_soc_acpi_amd_acp70_sdw_machines[] = {
139
{
140
.link_mask = BIT(0) | BIT(1),
141
.links = acp70_rt722_l0_rt1320_l1,
142
.drv_name = "amd_sdw",
143
},
144
{
145
.link_mask = BIT(0),
146
.links = acp70_rt722_only,
147
.drv_name = "amd_sdw",
148
},
149
{
150
.link_mask = BIT(0) | BIT(1),
151
.links = acp70_4_in_1_sdca,
152
.drv_name = "amd_sdw",
153
},
154
{},
155
};
156
EXPORT_SYMBOL(snd_soc_acpi_amd_acp70_sdw_machines);
157
158
struct snd_soc_acpi_mach snd_soc_acpi_amd_acp70_sof_sdw_machines[] = {
159
{
160
.link_mask = BIT(0),
161
.links = acp70_rt722_only,
162
.drv_name = "amd_sof_sdw",
163
.sof_tplg_filename = "sof-acp_7_0-rt722-l0.tplg",
164
.fw_filename = "sof-acp_7_0.ri",
165
},
166
{},
167
};
168
EXPORT_SYMBOL(snd_soc_acpi_amd_acp70_sof_sdw_machines);
169
170
MODULE_DESCRIPTION("AMD ACP7.0 & ACP7.1 tables and support for ACPI enumeration");
171
MODULE_LICENSE("GPL");
172
MODULE_AUTHOR("[email protected]");
173
174