Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/sound/soc/amd/acp/amd-acp63-acpi-match.c
26481 views
1
// SPDX-License-Identifier: GPL-2.0-only
2
/*
3
* amd-acp63-acpi-match.c - tables and support for ACP 6.3 platform
4
* ACPI enumeration.
5
*
6
* Copyright 2024 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 acp63_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_link_adr acp63_rt722_only[] = {
107
{
108
.mask = BIT(0),
109
.num_adr = ARRAY_SIZE(rt722_0_single_adr),
110
.adr_d = rt722_0_single_adr,
111
},
112
{}
113
};
114
115
struct snd_soc_acpi_mach snd_soc_acpi_amd_acp63_sof_sdw_machines[] = {
116
{
117
.link_mask = BIT(0) | BIT(1),
118
.links = acp63_4_in_1_sdca,
119
.drv_name = "amd_sof_sdw",
120
.sof_tplg_filename = "sof-acp_6_3-rt711-l0-rt1316-l0-rt714-l1.tplg",
121
.fw_filename = "sof-acp_6_3.ri",
122
},
123
{},
124
};
125
EXPORT_SYMBOL(snd_soc_acpi_amd_acp63_sof_sdw_machines);
126
127
struct snd_soc_acpi_mach snd_soc_acpi_amd_acp63_sdw_machines[] = {
128
{
129
.link_mask = BIT(0),
130
.links = acp63_rt722_only,
131
.drv_name = "amd_sdw",
132
},
133
{
134
.link_mask = BIT(0) | BIT(1),
135
.links = acp63_4_in_1_sdca,
136
.drv_name = "amd_sdw",
137
},
138
{},
139
};
140
EXPORT_SYMBOL(snd_soc_acpi_amd_acp63_sdw_machines);
141
142
MODULE_DESCRIPTION("AMD ACP6.3 tables and support for ACPI enumeration");
143
MODULE_LICENSE("GPL");
144
MODULE_AUTHOR("[email protected]");
145
146